@iamproperty/components 3.1.0 → 3.4.4
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/README.md +141 -16
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/favicons/manifest.json +31 -31
- package/assets/js/main.js +57 -57
- package/assets/js/modules/accordion.js +33 -32
- package/assets/js/modules/alert.js +41 -57
- package/assets/js/modules/carousel.js +76 -102
- package/assets/js/modules/chart.js +151 -218
- package/assets/js/modules/drawer.js +10 -16
- package/assets/js/modules/file-upload.js +33 -48
- package/assets/js/modules/form.js +122 -168
- package/assets/js/modules/helpers.js +90 -119
- package/assets/js/modules/modal.js +69 -90
- package/assets/js/modules/nav.js +18 -28
- package/assets/js/modules/orderablelist.js +91 -122
- package/assets/js/modules/table.js +451 -585
- package/assets/js/modules/testimonial.js +64 -83
- package/assets/js/modules/youtubevideo.js +114 -145
- package/assets/js/scripts.bundle.js +895 -955
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +3 -3
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/sass/_components.scss +14 -14
- package/assets/sass/_corefiles.scss +40 -40
- package/assets/sass/_fonts.scss +16 -16
- package/assets/sass/_forms.scss +10 -10
- package/assets/sass/_func.scss +12 -12
- package/assets/sass/_functions/functions.scss +141 -141
- package/assets/sass/_functions/mixins.scss +170 -170
- package/assets/sass/_functions/utilities.scss +143 -143
- package/assets/sass/_functions/variables.scss +467 -467
- package/assets/sass/_print.scss +61 -61
- package/assets/sass/_tests/{sass.spec.js → colours.spec.js} +9 -9
- package/assets/sass/_tests/colours.spec.scss +44 -44
- package/assets/sass/_tests/func.spec.js +9 -0
- package/assets/sass/_tests/func.spec.scss +232 -232
- package/assets/sass/_tests/mixins.spec.js +9 -0
- package/assets/sass/_tests/mixins.spec.scss +194 -194
- package/assets/sass/_tests/typography.spec.js +9 -0
- package/assets/sass/_tests/typography.spec.scss +35 -35
- package/assets/sass/components/accordion.scss +197 -197
- package/assets/sass/components/alert.scss +98 -98
- package/assets/sass/{elements → components}/buttons.scss +251 -251
- package/assets/sass/{elements → components}/card.scss +288 -288
- package/assets/sass/components/cardDeck.scss +107 -107
- package/assets/sass/components/carousel.scss +234 -234
- package/assets/sass/components/charts.scss +569 -569
- package/assets/sass/{elements → components}/container.scss +236 -236
- package/assets/sass/components/drawer.scss +46 -46
- package/assets/sass/{elements → components}/forms.scss +261 -261
- package/assets/sass/components/header.scss +63 -63
- package/assets/sass/{elements → components}/links.scss +97 -97
- package/assets/sass/{elements → components}/lists.scss +159 -159
- package/assets/sass/components/modal.scss +136 -136
- package/assets/sass/components/nav.scss +960 -960
- package/assets/sass/{elements → components}/panel.scss +161 -161
- package/assets/sass/components/property-searchbar.scss +143 -143
- package/assets/sass/components/snapshot.scss +70 -70
- package/assets/sass/components/stepper.scss +164 -164
- package/assets/sass/{elements → components}/tables.scss +290 -290
- package/assets/sass/components/tabs.scss +87 -87
- package/assets/sass/components/testimonial.scss +132 -132
- package/assets/sass/components/timeline.scss +95 -95
- package/assets/sass/{elements → components}/tooltips.scss +84 -84
- package/assets/sass/core.scss +6 -6
- package/assets/sass/email.scss +65 -65
- package/assets/sass/error.scss +4 -4
- package/assets/sass/foundations/brand.scss +76 -72
- package/assets/sass/foundations/circles.scss +74 -74
- package/assets/sass/foundations/icons.scss +80 -80
- package/assets/sass/foundations/media.scss +50 -50
- package/assets/sass/foundations/reboot.scss +130 -130
- package/assets/sass/foundations/root.scss +125 -125
- package/assets/sass/{elements → foundations}/type.scss +136 -136
- package/assets/sass/main.scss +7 -7
- package/assets/svg/icons.svg +598 -598
- package/assets/svg/logo.svg +49 -43
- package/assets/ts/main.ts +68 -68
- package/assets/ts/modules/accordion.ts +44 -43
- package/assets/ts/modules/alert.ts +58 -0
- package/assets/ts/modules/carousel.ts +103 -0
- package/assets/ts/modules/chart.ts +219 -0
- package/assets/ts/modules/drawer.ts +17 -0
- package/assets/ts/modules/file-upload.ts +49 -0
- package/assets/ts/modules/form.ts +169 -0
- package/assets/ts/modules/helpers.ts +120 -0
- package/assets/ts/modules/modal.ts +91 -0
- package/assets/ts/modules/nav.ts +29 -0
- package/assets/ts/modules/orderablelist.ts +123 -0
- package/assets/ts/modules/table.ts +586 -0
- package/assets/ts/modules/testimonial.ts +84 -0
- package/assets/ts/modules/youtubevideo.ts +146 -0
- package/dist/components.es.js +493 -509
- package/dist/components.umd.js +15 -15
- package/package.json +109 -108
- package/src/components/Accordion/Accordion.spec.js +63 -63
- package/src/components/Accordion/Accordion.vue +22 -22
- package/src/components/Accordion/AccordionItem.vue +52 -52
- package/src/components/Accordion/README.md +34 -34
- package/src/components/Alert/Alert.spec.js +49 -49
- package/src/components/Alert/Alert.vue +39 -39
- package/src/components/Alert/README.md +28 -28
- package/src/components/Banner/Banner.spec.js +28 -28
- package/src/components/Banner/Banner.vue +38 -38
- package/src/components/Banner/README.md +23 -23
- package/src/{elements → components}/Card/Card.vue +122 -122
- package/src/{elements/FileUploads → components/Card}/README.md +24 -24
- package/src/components/CardDeck/CardDeck.spec.js +99 -99
- package/src/components/CardDeck/CardDeck.vue +77 -77
- package/src/components/CardDeck/README.md +24 -24
- package/src/components/Carousel/Carousel.spec.js +45 -45
- package/src/components/Carousel/Carousel.vue +85 -85
- package/src/components/Carousel/README.md +19 -19
- package/src/components/Chart/Chart.spec.js +201 -201
- package/src/components/Chart/Chart.vue +88 -88
- package/src/components/Chart/README.md +17 -17
- package/src/components/Drawer/Drawer.vue +53 -53
- package/src/components/Drawer/README.md +22 -22
- package/src/{elements → components}/FileUploads/FileUploads.vue +48 -48
- package/src/{elements/Card → components/FileUploads}/README.md +24 -24
- package/src/components/Header/Header.spec.js +33 -33
- package/src/components/Header/Header.vue +38 -38
- package/src/components/Header/README.md +27 -27
- package/src/{elements → components}/Input/Input.vue +272 -272
- package/src/{elements → components}/Input/README.md +19 -19
- package/src/components/Modal/Modal.spec.js +22 -22
- package/src/components/Modal/Modal.vue +43 -43
- package/src/components/Modal/README.md +19 -19
- package/src/components/Nav/Nav.spec.js +35 -35
- package/src/components/Nav/Nav.vue +215 -215
- package/src/components/Nav/README.md +22 -22
- package/src/components/NoteFeed/NoteFeed.vue +79 -79
- package/src/components/NoteFeed/README.md +16 -16
- package/src/components/PropertySearchbar/PropertySearchbar.vue +204 -204
- package/src/components/PropertySearchbar/README.md +25 -25
- package/src/components/Snapshot/README.md +20 -20
- package/src/components/Snapshot/Snapshot.vue +32 -32
- package/src/components/Stepper/README.md +32 -32
- package/src/components/Stepper/Step.vue +28 -28
- package/src/components/Stepper/Stepper.spec.js +99 -99
- package/src/components/Stepper/Stepper.vue +33 -33
- package/src/{elements → components}/Table/README.md +62 -62
- package/src/{elements → components}/Table/Table.spec.js +90 -90
- package/src/{elements → components}/Table/Table.vue +129 -129
- package/src/components/Tabs/README.md +27 -27
- package/src/components/Tabs/Tab.vue +32 -32
- package/src/components/Tabs/Tabs.vue +77 -77
- package/src/components/Testimonial/README.md +25 -25
- package/src/components/Testimonial/Testimonial.spec.js +57 -57
- package/src/components/Testimonial/Testimonial.vue +60 -60
- package/src/components/Timeline/README.md +18 -18
- package/src/components/Timeline/Timeline.spec.js +17 -17
- package/src/components/Timeline/Timeline.vue +24 -24
- package/src/foundations/Icon/Icon.spec.js +24 -24
- package/src/foundations/Icon/Icon.vue +24 -24
- package/src/foundations/Icon/README.md +11 -11
- package/src/foundations/Logo/Logo.spec.js +56 -56
- package/src/foundations/Logo/Logo.vue +39 -39
- package/src/foundations/Logo/README.md +20 -20
- package/src/foundations/YoutubeVideo/README.md +11 -11
- package/src/foundations/YoutubeVideo/YoutubeVideo.vue +24 -24
- package/src/helpers/strings.js +12 -12
- package/src/index.js +27 -27
- package/src/vue-shim.d.ts +6 -6
- package/assets/css/email.min.css +0 -1
- package/assets/css/email.min.css.map +0 -1
- package/assets/css/error.min.css +0 -1
- package/assets/css/error.min.css.map +0 -1
- package/assets/ts/main.js +0 -57
- package/assets/ts/main.js.map +0 -1
- package/assets/ts/modules/accordion.js +0 -33
- package/assets/ts/modules/accordion.js.map +0 -1
- package/src/components/Accordion/Accordion.screenshot.vue +0 -57
- package/src/components/Accordion/__screenshots__/win32/laptop/Accordion.png +0 -0
- package/src/components/Accordion/__screenshots__/win32/mobile/Accordion.png +0 -0
- package/src/components/Accordion/__screenshots__/win32/tablet/Accordion.png +0 -0
package/package.json
CHANGED
|
@@ -1,108 +1,109 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@iamproperty/components",
|
|
3
|
-
"description": "Component library for iamproperty",
|
|
4
|
-
"author": {
|
|
5
|
-
"name": "iamproperty"
|
|
6
|
-
},
|
|
7
|
-
"private": false,
|
|
8
|
-
"version": "3.
|
|
9
|
-
"scripts": {
|
|
10
|
-
"dev": "npm run copy && vite --host",
|
|
11
|
-
"build": "npm run compile && vue-tsc --noEmit && vite build --mode lib",
|
|
12
|
-
"prepack": "npm run build",
|
|
13
|
-
"build:docs": "npm run copy && vue-tsc --noEmit && vite build",
|
|
14
|
-
"preview": "vite preview --host",
|
|
15
|
-
"compile:sass": "sass assets/sass/main.scss assets/css/style.min.css --style=compressed && sass assets/sass/core.scss assets/css/core.min.css --style=compressed",
|
|
16
|
-
"compile:ts": "node node_modules/typescript/bin/tsc --project tscompileconfig.json",
|
|
17
|
-
"compile:js": "rollup --environment BUNDLE:true --config rollup.config.js --sourcemap && terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=assets/js/scripts.bundle.js.map,includeSources,url=scripts.bundle.min.js.map\" --output assets/js/scripts.bundle.min.js assets/js/scripts.bundle.js",
|
|
18
|
-
"compile": "npm run compile:sass && npm run compile:ts && npm run compile:js",
|
|
19
|
-
"copy:svg": "copyfiles -u 2 assets/svg/**/* public/svg && copyfiles -u 2 assets/svg/icons.svg public/svg && copyfiles -u 2 assets/svg/logo.svg public/svg",
|
|
20
|
-
"copy:img": "copyfiles -u 2 assets/img/**/* public/img",
|
|
21
|
-
"copy:fonts": "copyfiles -u 2 assets/fonts/**/* public/fonts",
|
|
22
|
-
"copy:icons": "copyfiles -u 2 assets/favicons/**/* public/",
|
|
23
|
-
"copy": "npm run copy:svg && npm run copy:img && npm run copy:fonts && npm run copy:icons",
|
|
24
|
-
"audit": "node local_modules/audit.js",
|
|
25
|
-
"gen:email": "sass assets/sass/email.scss assets/css/email.min.css --style=compressed && node local_modules/email-css.js",
|
|
26
|
-
"gen:error": "sass assets/sass/error.scss assets/css/error.min.css --style=compressed && node local_modules/error-css.js",
|
|
27
|
-
"test:unit": "jest src",
|
|
28
|
-
"test:scss": "jest assets/sass/_tests",
|
|
29
|
-
"
|
|
30
|
-
"visual:docs": "jest tests",
|
|
31
|
-
"visual:approve": "jest tests --updateSnapshot",
|
|
32
|
-
"pull-request": "npm run test:unit && npm run test:scss && npm run visual:approve && npm run compile && npm run audit",
|
|
33
|
-
"deploy:fonts": "copyfiles -u 2 assets/fonts/**/* dist/assets/fonts",
|
|
34
|
-
"deploy:svg": "copyfiles -u 2 assets/svg/icons.svg dist/svg && copyfiles -u 2 assets/svg/logo.svg dist/svg",
|
|
35
|
-
"deploy:404": "node local_modules/create404.js"
|
|
36
|
-
},
|
|
37
|
-
"dependencies": {
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"jest": "^
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"vite": "^
|
|
81
|
-
"vite-plugin-
|
|
82
|
-
"
|
|
83
|
-
"vue-jest": "^
|
|
84
|
-
"vue-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
|
|
90
|
-
"dist/components.
|
|
91
|
-
"dist/
|
|
92
|
-
"
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
"
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@iamproperty/components",
|
|
3
|
+
"description": "Component library for iamproperty",
|
|
4
|
+
"author": {
|
|
5
|
+
"name": "iamproperty"
|
|
6
|
+
},
|
|
7
|
+
"private": false,
|
|
8
|
+
"version": "3.4.4",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"dev": "npm run copy && vite --host",
|
|
11
|
+
"build": "npm run compile && vue-tsc --noEmit && vite build --mode lib",
|
|
12
|
+
"prepack": "npm run build",
|
|
13
|
+
"build:docs": "npm run copy && vue-tsc --noEmit && vite build",
|
|
14
|
+
"preview": "vite preview --host",
|
|
15
|
+
"compile:sass": "sass assets/sass/main.scss assets/css/style.min.css --style=compressed && sass assets/sass/core.scss assets/css/core.min.css --style=compressed",
|
|
16
|
+
"compile:ts": "node node_modules/typescript/bin/tsc --project tscompileconfig.json && fix-esm-import-path assets/js",
|
|
17
|
+
"compile:js": "rollup --environment BUNDLE:true --config rollup.config.js --sourcemap && terser --compress passes=2 --mangle --comments \"/^!/\" --source-map \"content=assets/js/scripts.bundle.js.map,includeSources,url=scripts.bundle.min.js.map\" --output assets/js/scripts.bundle.min.js assets/js/scripts.bundle.js",
|
|
18
|
+
"compile": "npm run compile:sass && npm run compile:ts && npm run compile:js",
|
|
19
|
+
"copy:svg": "copyfiles -u 2 assets/svg/**/* public/svg && copyfiles -u 2 assets/svg/icons.svg public/svg && copyfiles -u 2 assets/svg/logo.svg public/svg",
|
|
20
|
+
"copy:img": "copyfiles -u 2 assets/img/**/* public/img",
|
|
21
|
+
"copy:fonts": "copyfiles -u 2 assets/fonts/**/* public/fonts",
|
|
22
|
+
"copy:icons": "copyfiles -u 2 assets/favicons/**/* public/",
|
|
23
|
+
"copy": "npm run copy:svg && npm run copy:img && npm run copy:fonts && npm run copy:icons",
|
|
24
|
+
"audit": "node local_modules/audit.js",
|
|
25
|
+
"gen:email": "sass assets/sass/email.scss assets/css/email.min.css --style=compressed && node local_modules/email-css.js",
|
|
26
|
+
"gen:error": "sass assets/sass/error.scss assets/css/error.min.css --style=compressed && node local_modules/error-css.js",
|
|
27
|
+
"test:unit": "jest src",
|
|
28
|
+
"test:scss": "jest assets/sass/_tests",
|
|
29
|
+
"test": "npm run test:unit && npm run test:scss",
|
|
30
|
+
"visual:docs": "jest tests",
|
|
31
|
+
"visual:approve": "jest tests --updateSnapshot",
|
|
32
|
+
"pull-request": "npm run test:unit && npm run test:scss && npm run visual:approve && npm run compile && npm run audit",
|
|
33
|
+
"deploy:fonts": "copyfiles -u 2 assets/fonts/**/* dist/assets/fonts",
|
|
34
|
+
"deploy:svg": "copyfiles -u 2 assets/svg/icons.svg dist/svg && copyfiles -u 2 assets/svg/logo.svg dist/svg",
|
|
35
|
+
"deploy:404": "node local_modules/create404.js"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"bootstrap": "^5.2.0"
|
|
39
|
+
},
|
|
40
|
+
"devDependencies": {
|
|
41
|
+
"@babel/cli": "^7.21.0",
|
|
42
|
+
"@babel/core": "^7.21.3",
|
|
43
|
+
"@babel/plugin-transform-runtime": "^7.21.0",
|
|
44
|
+
"@babel/preset-env": "^7.20.2",
|
|
45
|
+
"@babel/preset-typescript": "^7.21.0",
|
|
46
|
+
"@esbuild/linux-x64": "^0.17.17",
|
|
47
|
+
"@fullhuman/postcss-purgecss": "^5.0.0",
|
|
48
|
+
"@rollup/plugin-babel": "^6.0.3",
|
|
49
|
+
"@rollup/plugin-commonjs": "^24.0.1",
|
|
50
|
+
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
51
|
+
"@rollup/plugin-replace": "^5.0.2",
|
|
52
|
+
"@rollup/plugin-typescript": "^11.0.0",
|
|
53
|
+
"@types/jest": "^29.5.0",
|
|
54
|
+
"@vitejs/plugin-vue": "^4.1.0",
|
|
55
|
+
"@vue/test-utils": "^2.3.2",
|
|
56
|
+
"@vue/vue3-jest": "^29.2.3",
|
|
57
|
+
"babel-jest": "^29.5.0",
|
|
58
|
+
"copyfiles": "^2.4.1",
|
|
59
|
+
"cross-env": "^7.0.3",
|
|
60
|
+
"expect-puppeteer": "^8.0.5",
|
|
61
|
+
"fix-esm-import-path": "^1.3.1",
|
|
62
|
+
"jest": "^29.5.0",
|
|
63
|
+
"jest-environment-jsdom": "^29.5.0",
|
|
64
|
+
"jest-environment-node-single-context": "^29.0.0",
|
|
65
|
+
"jest-image-snapshot": "^6.1.0",
|
|
66
|
+
"jest-puppeteer": "^8.0.6",
|
|
67
|
+
"jest-serializer-vue": "^3.1.0",
|
|
68
|
+
"path": "^0.12.7",
|
|
69
|
+
"postcss": "^8.4.21",
|
|
70
|
+
"postcss-css-variables": "^0.18.0",
|
|
71
|
+
"puppeteer": "^19.7.5",
|
|
72
|
+
"sass": "^1.60.0",
|
|
73
|
+
"sass-true": "^7.0.0",
|
|
74
|
+
"terser": "^5.16.6",
|
|
75
|
+
"ts-jest": "^29.0.5",
|
|
76
|
+
"ts-node-dev": "^2.0.0",
|
|
77
|
+
"tslib": "^2.5.0",
|
|
78
|
+
"typescript": "^5.0.2",
|
|
79
|
+
"url": "^0.11.0",
|
|
80
|
+
"vite": "^4.2.1",
|
|
81
|
+
"vite-plugin-vue-markdown": "^0.22.4",
|
|
82
|
+
"vue": "^3.2.47",
|
|
83
|
+
"vue-jest": "^3.0.7",
|
|
84
|
+
"vue-router": "^4.1.6",
|
|
85
|
+
"vue-tsc": "^1.2.0"
|
|
86
|
+
},
|
|
87
|
+
"main": "./dist/components.umd.js",
|
|
88
|
+
"module": "./dist/components.es.js",
|
|
89
|
+
"files": [
|
|
90
|
+
"dist/components.umd.js",
|
|
91
|
+
"dist/components.es.js",
|
|
92
|
+
"dist/style.css",
|
|
93
|
+
"assets/*",
|
|
94
|
+
"src/*"
|
|
95
|
+
],
|
|
96
|
+
"exports": {
|
|
97
|
+
".": {
|
|
98
|
+
"import": "./dist/components.js",
|
|
99
|
+
"require": "./dist/components.umd.cjs"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"license": "UNLICENSED",
|
|
103
|
+
"registry-url": "https://registry.npmjs.com",
|
|
104
|
+
"repository": {
|
|
105
|
+
"type": "git",
|
|
106
|
+
"url": "git://github.com/iamproperty/iamproperty.github.io.git"
|
|
107
|
+
},
|
|
108
|
+
"localURL": "http://192.168.0.69:5173"
|
|
109
|
+
}
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
import { mount } from '@vue/test-utils'
|
|
2
|
-
import Accordion from './Accordion.vue'
|
|
3
|
-
import AccordionItem from './AccordionItem.vue'
|
|
4
|
-
|
|
5
|
-
describe('Accordion component', () => {
|
|
6
|
-
it('renders two details', () => {
|
|
7
|
-
|
|
8
|
-
const test = mount(Accordion, {
|
|
9
|
-
propsData: {
|
|
10
|
-
},
|
|
11
|
-
global: {
|
|
12
|
-
stubs: {
|
|
13
|
-
'AccordionItem': AccordionItem
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
slots: {
|
|
17
|
-
default: `<AccordionItem title="How long does the auction last?" open>
|
|
18
|
-
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
19
|
-
</AccordionItem>
|
|
20
|
-
<AccordionItem title="Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat?">
|
|
21
|
-
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
22
|
-
</AccordionItem>`
|
|
23
|
-
}
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
expect(test.findAll('details').length).toBe(2)
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
it('closes the other items when one opens', async () => {
|
|
31
|
-
const test = mount(Accordion, {
|
|
32
|
-
propsData: {
|
|
33
|
-
|
|
34
|
-
},
|
|
35
|
-
global: {
|
|
36
|
-
stubs: {
|
|
37
|
-
'AccordionItem': AccordionItem
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
slots: {
|
|
41
|
-
default: `<AccordionItem title="How long does the auction last?" open>
|
|
42
|
-
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
43
|
-
</AccordionItem>
|
|
44
|
-
<AccordionItem title="Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat?">
|
|
45
|
-
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
46
|
-
</AccordionItem>`
|
|
47
|
-
}
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
const details = test.findAll('details')
|
|
51
|
-
|
|
52
|
-
const firstDetail = details.at(0)
|
|
53
|
-
const secondDetail = details.at(1)
|
|
54
|
-
const detailButton = secondDetail?.find('summary');
|
|
55
|
-
|
|
56
|
-
expect(firstDetail.attributes('open')).toBe('')
|
|
57
|
-
|
|
58
|
-
await detailButton.trigger('click')
|
|
59
|
-
|
|
60
|
-
expect(firstDetail.attributes('open')).toBe(undefined)
|
|
61
|
-
})
|
|
62
|
-
|
|
63
|
-
})
|
|
1
|
+
import { mount } from '@vue/test-utils'
|
|
2
|
+
import Accordion from './Accordion.vue'
|
|
3
|
+
import AccordionItem from './AccordionItem.vue'
|
|
4
|
+
|
|
5
|
+
describe('Accordion component', () => {
|
|
6
|
+
it('renders two details', () => {
|
|
7
|
+
|
|
8
|
+
const test = mount(Accordion, {
|
|
9
|
+
propsData: {
|
|
10
|
+
},
|
|
11
|
+
global: {
|
|
12
|
+
stubs: {
|
|
13
|
+
'AccordionItem': AccordionItem
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
slots: {
|
|
17
|
+
default: `<AccordionItem title="How long does the auction last?" open>
|
|
18
|
+
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
19
|
+
</AccordionItem>
|
|
20
|
+
<AccordionItem title="Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat?">
|
|
21
|
+
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
22
|
+
</AccordionItem>`
|
|
23
|
+
}
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
expect(test.findAll('details').length).toBe(2)
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
it('closes the other items when one opens', async () => {
|
|
31
|
+
const test = mount(Accordion, {
|
|
32
|
+
propsData: {
|
|
33
|
+
|
|
34
|
+
},
|
|
35
|
+
global: {
|
|
36
|
+
stubs: {
|
|
37
|
+
'AccordionItem': AccordionItem
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
slots: {
|
|
41
|
+
default: `<AccordionItem title="How long does the auction last?" open>
|
|
42
|
+
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
43
|
+
</AccordionItem>
|
|
44
|
+
<AccordionItem title="Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat?">
|
|
45
|
+
<p>Curabitur aliquet quam id dui posuere blandit. Vivamus suscipit tortor eget felis porttitor volutpat. Proin eget tortor risus. Proin eget tortor risus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Proin eget tortor risus. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus.</p><p>Nulla porttitor accumsan tincidunt. Cras ultricies ligula sed magna dictum porta. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Praesent sapien massa, convallis a pellentesque nec, egestas non nisi. Vivamus suscipit tortor eget felis porttitor volutpat. Vivamus suscipit tortor eget felis porttitor volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Vivamus suscipit tortor eget felis porttitor volutpat.</p><p>Donec rutrum congue leo eget malesuada. Pellentesque in ipsum id orci porta dapibus. Curabitur arcu erat, accumsan id imperdiet et, porttitor at sem. Nulla quis lorem ut libero malesuada feugiat. Vivamus magna justo, lacinia eget consectetur sed, convallis at tellus. Vestibulum ac diam sit amet quam vehicula elementum sed sit amet dui. Pellentesque in ipsum id orci porta dapibus. Pellentesque in ipsum id orci porta dapibus.</p>
|
|
46
|
+
</AccordionItem>`
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const details = test.findAll('details')
|
|
51
|
+
|
|
52
|
+
const firstDetail = details.at(0)
|
|
53
|
+
const secondDetail = details.at(1)
|
|
54
|
+
const detailButton = secondDetail?.find('summary');
|
|
55
|
+
|
|
56
|
+
expect(firstDetail.attributes('open')).toBe('')
|
|
57
|
+
|
|
58
|
+
await detailButton.trigger('click')
|
|
59
|
+
|
|
60
|
+
expect(firstDetail.attributes('open')).toBe(undefined)
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
})
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="container accordion" ref="wrapper">
|
|
3
|
-
<slot></slot>
|
|
4
|
-
</div>
|
|
5
|
-
</template>
|
|
6
|
-
|
|
7
|
-
<style lang="scss">
|
|
8
|
-
@import "../../../assets/sass/components/accordion.scss";
|
|
9
|
-
</style>
|
|
10
|
-
|
|
11
|
-
<script>
|
|
12
|
-
import accordion from '../../../assets/
|
|
13
|
-
|
|
14
|
-
export default {
|
|
15
|
-
name: 'Accordion',
|
|
16
|
-
props: {
|
|
17
|
-
},
|
|
18
|
-
mounted(){
|
|
19
|
-
accordion(this.$refs.wrapper);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="container accordion" ref="wrapper">
|
|
3
|
+
<slot></slot>
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<style lang="scss">
|
|
8
|
+
@import "../../../assets/sass/components/accordion.scss";
|
|
9
|
+
</style>
|
|
10
|
+
|
|
11
|
+
<script>
|
|
12
|
+
import accordion from '../../../assets/ts/modules/accordion'
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
name: 'Accordion',
|
|
16
|
+
props: {
|
|
17
|
+
},
|
|
18
|
+
mounted(){
|
|
19
|
+
accordion(this.$refs.wrapper);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
</script>
|
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
|
|
3
|
-
<details class="accordion-item" :id="createID(title)">
|
|
4
|
-
<summary :class="`${titlecolour?`bg-${titlecolour}`:''}`" v-on:click="show = true"><span class="accordion-header accordion-button h4">{{title}}<span v-if="badge" :class="`badge bg-${badgecolour}`">{{badge}}</span></span></summary>
|
|
5
|
-
<div class="accordion-body" v-if="show">
|
|
6
|
-
<slot></slot>
|
|
7
|
-
</div>
|
|
8
|
-
</details>
|
|
9
|
-
</template>
|
|
10
|
-
|
|
11
|
-
<script>
|
|
12
|
-
import { safeID } from '../../helpers/strings.js'
|
|
13
|
-
|
|
14
|
-
export default {
|
|
15
|
-
name: 'AccordionItem',
|
|
16
|
-
props: {
|
|
17
|
-
title: {
|
|
18
|
-
type: String,
|
|
19
|
-
required: true
|
|
20
|
-
},
|
|
21
|
-
titlecolour: {
|
|
22
|
-
type: String,
|
|
23
|
-
required: false
|
|
24
|
-
},
|
|
25
|
-
badge: {
|
|
26
|
-
type: [Number, String],
|
|
27
|
-
required: false
|
|
28
|
-
},
|
|
29
|
-
badgecolour: {
|
|
30
|
-
type: String,
|
|
31
|
-
required: false,
|
|
32
|
-
default: 'light'
|
|
33
|
-
},
|
|
34
|
-
lazy: {
|
|
35
|
-
type: Boolean,
|
|
36
|
-
required: false
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
computed: {
|
|
40
|
-
createID () {
|
|
41
|
-
return (summary) => {
|
|
42
|
-
return `${safeID(summary)}`
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
data() {
|
|
47
|
-
return {
|
|
48
|
-
show: this.lazy ? false : true
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
<details class="accordion-item" :id="createID(title)">
|
|
4
|
+
<summary :class="`${titlecolour?`bg-${titlecolour}`:''}`" v-on:click="show = true"><span class="accordion-header accordion-button h4">{{title}}<span v-if="badge" :class="`badge bg-${badgecolour}`">{{badge}}</span></span></summary>
|
|
5
|
+
<div class="accordion-body" v-if="show">
|
|
6
|
+
<slot></slot>
|
|
7
|
+
</div>
|
|
8
|
+
</details>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script>
|
|
12
|
+
import { safeID } from '../../helpers/strings.js'
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
name: 'AccordionItem',
|
|
16
|
+
props: {
|
|
17
|
+
title: {
|
|
18
|
+
type: String,
|
|
19
|
+
required: true
|
|
20
|
+
},
|
|
21
|
+
titlecolour: {
|
|
22
|
+
type: String,
|
|
23
|
+
required: false
|
|
24
|
+
},
|
|
25
|
+
badge: {
|
|
26
|
+
type: [Number, String],
|
|
27
|
+
required: false
|
|
28
|
+
},
|
|
29
|
+
badgecolour: {
|
|
30
|
+
type: String,
|
|
31
|
+
required: false,
|
|
32
|
+
default: 'light'
|
|
33
|
+
},
|
|
34
|
+
lazy: {
|
|
35
|
+
type: Boolean,
|
|
36
|
+
required: false
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
computed: {
|
|
40
|
+
createID () {
|
|
41
|
+
return (summary) => {
|
|
42
|
+
return `${safeID(summary)}`
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
data() {
|
|
47
|
+
return {
|
|
48
|
+
show: this.lazy ? false : true
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
</script>
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
### Usage
|
|
2
|
-
|
|
3
|
-
```
|
|
4
|
-
<Accordion>
|
|
5
|
-
<AccordionItem title="Question 1">
|
|
6
|
-
<p>Accordion item content</p>
|
|
7
|
-
</AccordionItem>
|
|
8
|
-
<AccordionItem title="Question 2">
|
|
9
|
-
<p>Accordion item content</p>
|
|
10
|
-
</AccordionItem>
|
|
11
|
-
</Accordion>
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
### Class modifiers
|
|
15
|
-
|
|
16
|
-
- Adding a class of **.accordion--keep-open** to the accordion will stop the items from closing when another one is opened.
|
|
17
|
-
- Adding a class of **.accordion--straight** to the accordion will remove the slight indentation of the accordion.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
### Accordion item Properties
|
|
21
|
-
|
|
22
|
-
| Option | Type | Default Value | Description |
|
|
23
|
-
| ------ | ---- | ------------- | ----------- |
|
|
24
|
-
| title | String | - | A question or statement |
|
|
25
|
-
| titlecolour | String | - | Apply a colour the the accordion item title |
|
|
26
|
-
| badge | String | - | Add a highlighted badge/tag to the accordion item title |
|
|
27
|
-
| badgecolour | String | light | Apply a colour the badge |
|
|
28
|
-
| lazy | Boolean | - | If set the content of the tab will not loaded intially and will be loaded after the user has clicked on the accordion link. |
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### Accordion item Slots
|
|
32
|
-
|
|
33
|
-
| Option | Default Value | Description |
|
|
34
|
-
| ------ | ------------- | ----------- |
|
|
1
|
+
### Usage
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
<Accordion>
|
|
5
|
+
<AccordionItem title="Question 1">
|
|
6
|
+
<p>Accordion item content</p>
|
|
7
|
+
</AccordionItem>
|
|
8
|
+
<AccordionItem title="Question 2">
|
|
9
|
+
<p>Accordion item content</p>
|
|
10
|
+
</AccordionItem>
|
|
11
|
+
</Accordion>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### Class modifiers
|
|
15
|
+
|
|
16
|
+
- Adding a class of **.accordion--keep-open** to the accordion will stop the items from closing when another one is opened.
|
|
17
|
+
- Adding a class of **.accordion--straight** to the accordion will remove the slight indentation of the accordion.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Accordion item Properties
|
|
21
|
+
|
|
22
|
+
| Option | Type | Default Value | Description |
|
|
23
|
+
| ------ | ---- | ------------- | ----------- |
|
|
24
|
+
| title | String | - | A question or statement |
|
|
25
|
+
| titlecolour | String | - | Apply a colour the the accordion item title |
|
|
26
|
+
| badge | String | - | Add a highlighted badge/tag to the accordion item title |
|
|
27
|
+
| badgecolour | String | light | Apply a colour the badge |
|
|
28
|
+
| lazy | Boolean | - | If set the content of the tab will not loaded intially and will be loaded after the user has clicked on the accordion link. |
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Accordion item Slots
|
|
32
|
+
|
|
33
|
+
| Option | Default Value | Description |
|
|
34
|
+
| ------ | ------------- | ----------- |
|
|
35
35
|
| default | - | This is the content of the accordion item |
|