@worksafevictoria/wcl7.5 1.0.0 → 1.1.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/.env +4 -2
  2. package/.eslintrc.cjs +1 -1
  3. package/.eslintrc.js +2 -1
  4. package/.husky/pre-commit +4 -0
  5. package/.storybook/main.js +4 -2
  6. package/.storybook/preview.js +15 -0
  7. package/README.md +14 -0
  8. package/babel.config.js +7 -6
  9. package/bin/deploy.sh +3 -3
  10. package/ci/build/build_validation.yml +11 -6
  11. package/ci/release/beta.yml +6 -5
  12. package/ci/release/master.yml +6 -5
  13. package/jest.config.js +3 -1
  14. package/package.json +16 -9
  15. package/public/.nojekyll +1 -0
  16. package/src/components/Common/CardGridItem/card-grid-item-icon.vue +1 -1
  17. package/src/components/Common/CardGridItem/index.vue +9 -3
  18. package/src/components/Global/AppHeader/ModalSearch/index.vue +6 -1
  19. package/src/components/Global/AppHeader/index.stories.js +16 -24
  20. package/src/components/Global/AppHeader/index.vue +9 -8
  21. package/src/components/Global/Cookies/{index.storieshide.js → index.stories.js} +5 -16
  22. package/src/components/Global/Cookies/index.vue +122 -136
  23. package/src/components/Global/Cookies/styles.scss +10 -2
  24. package/src/components/Global/DirectoryFilters/SingleTaxonomy/index.vue +53 -47
  25. package/src/components/Global/GlobalNotice/index.stories.js +8 -0
  26. package/src/components/Global/GlobalNotice/index.vue +71 -137
  27. package/src/components/Global/HeroHeader/styles.scss +2 -1
  28. package/src/components/Paragraphs/BrowseContent/index.stories.js +39 -57
  29. package/src/components/Paragraphs/Chart/Constants.js +4790 -0
  30. package/src/components/Paragraphs/Chart/index.mdx +61 -0
  31. package/src/components/Paragraphs/Chart/index.stories.js +31 -0
  32. package/src/components/Paragraphs/Chart/index.vue +331 -0
  33. package/src/components/Paragraphs/ListGroup/Link/list-link.stories.js +34 -39
  34. package/src/components/Paragraphs/ListGroup/list-group.stories.js +34 -31
  35. package/src/components/Paragraphs/ListGroup/navigation-card.stories.js +33 -30
  36. package/src/components/Paragraphs/ScrollSpy/index.stories.js +18 -26
  37. package/src/components/Paragraphs/ScrollSpy/index.vue +2 -1
  38. package/src/components/Paragraphs/TaskFinder/index.stories.js +10 -33
  39. package/src/components/Paragraphs/TaskFinder/pdf/index.vue +1 -1
  40. package/src/components/Paragraphs/TextMedia/index.stories.js +12 -61
  41. package/src/components/Paragraphs/VideoGrid/index.stories.js +16 -32
  42. package/src/components/SubComponents/FormInstance/index.vue +3 -1
  43. package/src/components/SubComponents/FormInstance/stories/mocks/checkbox.json +21 -0
  44. package/src/components/SubComponents/Search/GoogleREST/index.stories.js +50 -0
  45. package/src/components/SubComponents/Search/GoogleSearch/index.stories.js +23 -0
  46. package/src/components/SubComponents/Search/SearchListing/index.vue +69 -9
  47. package/src/components/SubComponents/Search/index.stories.js +19 -16
  48. package/src/components/SubComponents/Search/index.vue +563 -59
  49. package/src/components/SubComponents/VideoThumbnail/index.stories.js +9 -4
  50. package/src/components/SubComponents/VideoThumbnail/index.vue +93 -96
  51. package/src/includes/scss/vars/src/colors.scss +29 -1
  52. package/src/index.js +42 -40
  53. package/vite.config.js +5 -1
  54. package/src/components/SubComponents/GoogleSearch/index.stories.js +0 -8
  55. package/src/components/SubComponents/GoogleSearch/index.vue +0 -405
@@ -20,22 +20,27 @@ export default {
20
20
  argTypes: {
21
21
  video: {
22
22
  control: 'object',
23
- defaultValue: mockData
24
23
  }
24
+ },
25
+ args: {
26
+ video: mockData
25
27
  }
26
28
  }
27
29
 
28
- const Template = (args, { argTypes }) => ({
30
+ const Template = (args) => ({
29
31
  components: { VideoThumbnail, Container, Row, Column },
30
- props: Object.keys(argTypes),
32
+ setup () {
33
+ return { args }
34
+ },
31
35
  template: `
32
36
  <container>
33
37
  <row>
34
38
  <column md="5">
35
- <video-thumbnail v-bind="$props" />
39
+ <video-thumbnail v-bind="args" />
36
40
  </column>
37
41
  </row>
38
42
  </container>
39
43
  `
40
44
  })
45
+
41
46
  export const Default = Template.bind({})
@@ -15,45 +15,37 @@
15
15
  />
16
16
  </div>
17
17
  </a>
18
- <b-modal
19
- :id="`wcl-video-modal`"
20
- v-model="showModal"
21
- scrollable
22
- class="wcl-video-modal__modal"
23
- >
24
- <template #modal-header="{ close }">
25
- <div class="modal-header__wrap">
26
- <!-- Emulate built in modal header close button action -->
27
- <a
28
- href="#"
29
- class="close-button"
30
- :class="{ rtl: video.rtl }"
31
- @click.prevent="close()"
32
- >
33
- <icon-close :src="IconClose" alt="close icon" class="close-icon" />
34
- </a>
18
+ <!-- Modal -->
19
+ <div v-if="showModal" :id="wcl-video-modal" class="modal" tabindex="-1" aria-modal="true" role="dialog" style="display: block;">
20
+ <div class="modal-dialog modal-dialog-scrollable">
21
+ <div class="modal-content">
22
+ <div class="modal-header">
23
+ <button type="button" class="btn-close" @click="showModal = !showModal" aria-label="close"></button>
24
+ </div>
25
+ <div class="modal-body">
26
+ <div class="wcl-video-modal__video">
27
+ <video-media
28
+ :media-title="video.mediaTitle"
29
+ :media-description="video.mediaDescription"
30
+ :video-id="video.id"
31
+ :provider="video.provider"
32
+ :transcript="video.transcript"
33
+ :transcript-title="video.transcriptTitle"
34
+ :fix-width="video.fixWidth"
35
+ :rtl="video.rtl"
36
+ />
37
+ </div>
38
+ </div>
35
39
  </div>
36
- </template>
37
- <div class="wcl-video-modal__video">
38
- <video-media
39
- :media-title="video.mediaTitle"
40
- :media-description="video.mediaDescription"
41
- :video-id="video.id"
42
- :provider="video.provider"
43
- :transcript="video.transcript"
44
- :transcript-title="video.transcriptTitle"
45
- :fix-width="video.fixWidth"
46
- :rtl="video.rtl"
47
- />
48
40
  </div>
49
- </b-modal>
41
+ </div>
50
42
  </div>
51
43
  </template>
52
44
 
53
45
  <script>
54
46
  import VideoMedia from './../../Paragraphs/VideoPlayer/index.vue'
55
- import VideoPlay from './../../../assets/icons/video-play.svg'
56
- import IconClose from './../../../assets/icons/icon-close.svg'
47
+ import VideoPlay from './../../../assets/icons/video-play.svg?url'
48
+ import IconClose from './../../../assets/icons/icon-close.svg?url'
57
49
 
58
50
  export default {
59
51
  name: 'VideoThumbnail',
@@ -112,83 +104,88 @@ export default {
112
104
  <style lang="scss">
113
105
  @import '../../../includes/scss/all';
114
106
  // The modal styling
115
- #wcl-video-modal {
116
- .modal-dialog {
117
- max-width: 1110px;
118
- @media only screen and (max-width: 1150px) {
119
- margin: {
120
- left: 15px;
121
- right: 15px;
122
- top: 15px;
123
- }
124
- }
107
+ .modal {
108
+ background: rgba(0,0,0,0.5)
109
+ }
125
110
 
126
- .modal-content {
127
- position: relative;
128
- border-radius: 8px;
111
+ .modal-backdrop {
112
+ display: none;
113
+ }
114
+ .modal-dialog {
115
+ max-width: 1110px;
116
+ @media only screen and (max-width: 1150px) {
117
+ margin: {
118
+ left: 15px;
119
+ right: 15px;
120
+ top: 15px;
129
121
  }
122
+ }
130
123
 
131
- .modal-header {
132
- position: absolute;
133
- top: 0;
134
- height: 45px;
135
- background: $white;
136
- z-index: 1;
137
- width: 100%;
124
+ .modal-content {
125
+ position: relative;
126
+ border-radius: 8px;
127
+ }
138
128
 
139
- &__wrap {
140
- position: relative;
141
- width: 100%;
142
- a {
143
- position: absolute;
144
- right: 0;
145
- z-index: 1;
146
- &.rtl {
147
- right: auto;
148
- left: 0;
149
- }
150
- svg {
151
- fill: $black;
152
- }
129
+ .modal-header {
130
+ position: absolute;
131
+ top: 0;
132
+ height: 45px;
133
+ background: $white;
134
+ z-index: 1;
135
+ width: 100%;
136
+
137
+ &__wrap {
138
+ position: relative;
139
+ width: 100%;
140
+ a {
141
+ position: absolute;
142
+ right: 0;
143
+ z-index: 1;
144
+ &.rtl {
145
+ right: auto;
146
+ left: 0;
147
+ }
148
+ svg {
149
+ fill: $black;
153
150
  }
154
151
  }
155
152
  }
156
- .modal-body {
157
- padding: 32px;
158
- margin-top: 16px;
159
- .video-player {
160
- @include fp(min-height, 250, 588);
161
- }
153
+ }
154
+ .modal-body {
155
+ padding: 32px;
156
+ margin-top: 16px;
157
+ .video-player {
158
+ @include fp(min-height, 250, 588);
159
+ }
162
160
 
163
- .paragraph--video-media {
164
- margin: 0;
165
- .container {
166
- padding: 0;
167
- width: 100%;
168
- }
169
- h3 {
170
- margin: 0;
171
- font-style: normal;
172
- font-weight: bold;
173
- font-size: 28px;
174
- line-height: 32px;
175
- margin-bottom: 16px;
176
- display: inline-block;
177
- width: 98%;
178
- }
161
+ .paragraph--video-media {
162
+ margin: 0;
163
+ .container {
164
+ padding: 0;
165
+ width: 100%;
179
166
  }
180
- .section-group__block {
181
- max-width: 100%;
167
+ h3 {
168
+ margin: 0;
169
+ font-style: normal;
170
+ font-weight: bold;
171
+ font-size: 28px;
172
+ line-height: 32px;
173
+ margin-bottom: 16px;
174
+ display: inline-block;
175
+ width: 98%;
182
176
  }
183
177
  }
184
- .modal-header,
185
- .modal-footer {
186
- border: none;
187
- }
188
- .modal-footer {
189
- display: none;
178
+ .section-group__block {
179
+ max-width: 100%;
190
180
  }
191
181
  }
182
+ .modal-header,
183
+ .modal-footer {
184
+ border: none;
185
+ }
186
+ .modal-footer {
187
+ display: none;
188
+ }
192
189
  }
193
190
  </style>
194
191
  <style lang="scss" scoped>
@@ -20,6 +20,21 @@ $yellow: #ffd229;
20
20
  $lightyellow: #fff6d4;
21
21
  $outline: #da47ff;
22
22
  $outline-dark: #ffffff;
23
+ // Functional colours
24
+ $wsv-fun-dark-green: #576D2F;
25
+ $wsv-fun-dark-blue: #104f77;
26
+ $wsv-fun-dark-purple: #55356b;
27
+ $wsv-fun-dark-red: #760031;
28
+ $wsv-fun-dark-brown: #763b00;
29
+ $wsv-fun-dark-caramel: #cb7c2d;
30
+ $wsv-fun-light-teal: #7ac2b5;
31
+ $wsv-fun-light-blue: #8ecade;
32
+ $wsv-fun-light-purple: #9871a8;
33
+ $wsv-fun-light-fuchsia: #f16a7e;
34
+ $wsv-fun-light-green: #edeb72;
35
+ $wsv-fun-light-brown: #dbc38b;
36
+
37
+
23
38
 
24
39
  $theme-colors: (
25
40
  'gold': $gold,
@@ -43,7 +58,20 @@ $theme-colors: (
43
58
  'yellow': $yellow,
44
59
  'lightyellow': $lightyellow,
45
60
  'outline': $outline,
46
- 'outline-dark': $outline-dark
61
+ 'outline-dark': $outline-dark,
62
+ // Functional colours
63
+ 'wsv-fun-dark-green':$wsv-fun-dark-green,
64
+ 'wsv-fun-dark-blue':$wsv-fun-dark-blue,
65
+ 'wsv-fun-dark-purple':$wsv-fun-dark-purple,
66
+ 'wsv-fun-dark-red':$wsv-fun-dark-red,
67
+ 'wsv-fun-dark-brown':$wsv-fun-dark-brown,
68
+ 'wsv-fun-dark-caramel':$wsv-fun-dark-caramel,
69
+ 'wsv-fun-light-teal':$wsv-fun-light-teal,
70
+ 'wsv-fun-light-blue':$wsv-fun-light-blue,
71
+ 'wsv-fun-light-purple':$wsv-fun-light-purple,
72
+ 'wsv-fun-light-fuchsia':$wsv-fun-light-fuchsia,
73
+ 'wsv-fun-light-green':$wsv-fun-light-green,
74
+ 'wsv-fun-light-brown':$wsv-fun-light-brown
47
75
  );
48
76
 
49
77
  :export {
package/src/index.js CHANGED
@@ -1,17 +1,17 @@
1
1
  // Global Components
2
- import Container from './components/Containers/Container'
3
- import Row from './components/Containers/Row'
4
- import Column from './components/Containers/Column'
5
- import HomepageHeader from './components/Containers/HomepageHeader'
6
- import Subheader from './components/Containers/Subheader'
7
- import SectionGroup from './components/Containers/SectionGroup'
2
+ import Container from './components/Containers/Container/index.vue'
3
+ import Row from './components/Containers/Row/index.vue'
4
+ import Column from './components/Containers/Column/index.vue'
5
+ import HomepageHeader from './components/Containers/HomepageHeader/index.vue'
6
+ import Subheader from './components/Containers/Subheader/index.vue'
7
+ import SectionGroup from './components/Containers/SectionGroup/index.vue'
8
8
 
9
- import AppHeader from './components/Global/AppHeader'
10
- import AppFooter from './components/Global/AppFooter'
11
- import HeroHeader from './components/Global/HeroHeader'
12
- import SocialShare from './components/Global/SocialShare'
13
- import Strip from './components/Global/Strip'
14
- import AlertStrip from './components/Global/AlertStrip'
9
+ import AppHeader from './components/Global/AppHeader/index.vue'
10
+ import AppFooter from './components/Global/AppFooter/index.vue'
11
+ import HeroHeader from './components/Global/HeroHeader/index.vue'
12
+ import SocialShare from './components/Global/SocialShare/index.vue'
13
+ import Strip from './components/Global/Strip/index.vue'
14
+ import AlertStrip from './components/Global/AlertStrip/index.vue'
15
15
  import CardGrid from './components/Common/CardGrid/index.vue'
16
16
  import CardGridItem from './components/Common/CardGridItem/index.vue'
17
17
  import Cookies from './components/Global/Cookies/index.vue'
@@ -20,35 +20,36 @@ import GlobalNotice from './components/Global/GlobalNotice/index.vue'
20
20
  import ContrastMode from './components/Global/ContrastMode/index.vue'
21
21
 
22
22
  // Paragraphs
23
- import RichText from './components/Paragraphs/RichText'
24
- import TextMedia from './components/Paragraphs/TextMedia'
25
- import Accordion from './components/Paragraphs/Accordion'
26
- import TabbedCards from './components/Paragraphs/TabbedCards'
27
- import BrowseContent from './components/Paragraphs/BrowseContent'
28
- import TaskFinder from './components/Paragraphs/TaskFinder'
29
- import ListGroup from './components/Paragraphs/ListGroup'
30
- import ScrollSpy from './components/Paragraphs/ScrollSpy'
31
- import Directory from './components/Paragraphs/Directory'
32
- import SelectableCards from './components/Paragraphs/SelectableCards'
33
- import VideoMedia from './components/Paragraphs/VideoPlayer'
34
- import VideoGrid from './components/Paragraphs/VideoGrid'
35
- import Statistics from './components/Paragraphs/Statistics'
36
- import ProofPoints from './components/Paragraphs/ProofPoints'
37
- import TabulatedData from './components/Paragraphs/TabulatedData'
38
- import Breakout from './components/Paragraphs/Breakout'
39
- import Tabs from './components/Paragraphs/Tabs'
40
- import MarketingBanner from './components/Paragraphs/MarketingBanner'
41
- import RelatedInformation from './components/Paragraphs/RelatedInformation'
42
- import Calculator from './components/Paragraphs/Calculator'
23
+ import RichText from './components/Paragraphs/RichText/index.vue'
24
+ import TextMedia from './components/Paragraphs/TextMedia/index.vue'
25
+ import Accordion from './components/Paragraphs/Accordion/index.vue'
26
+ import TabbedCards from './components/Paragraphs/TabbedCards/index.vue'
27
+ import BrowseContent from './components/Paragraphs/BrowseContent/index.vue'
28
+ import TaskFinder from './components/Paragraphs/TaskFinder/index.vue'
29
+ import ListGroup from './components/Paragraphs/ListGroup/index.vue'
30
+ import ScrollSpy from './components/Paragraphs/ScrollSpy/index.vue'
31
+ import Directory from './components/Paragraphs/Directory/index.vue'
32
+ import SelectableCards from './components/Paragraphs/SelectableCards/index.vue'
33
+ import VideoMedia from './components/Paragraphs/VideoPlayer/index.vue'
34
+ import VideoGrid from './components/Paragraphs/VideoGrid/index.vue'
35
+ import Statistics from './components/Paragraphs/Statistics/index.vue'
36
+ import ProofPoints from './components/Paragraphs/ProofPoints/index.vue'
37
+ import TabulatedData from './components/Paragraphs/TabulatedData/index.vue'
38
+ import Breakout from './components/Paragraphs/Breakout/index.vue'
39
+ import Tabs from './components/Paragraphs/Tabs/index.vue'
40
+ import MarketingBanner from './components/Paragraphs/MarketingBanner/index.vue'
41
+ import RelatedInformation from './components/Paragraphs/RelatedInformation/index.vue'
42
+ import Calculator from './components/Paragraphs/Calculator/index.vue'
43
+ import Chart from './components/Paragraphs/Chart/index.vue'
43
44
 
44
45
  // SubComponents
45
- import FormAddressPostcode from './components/SubComponents/FormAddressPostcode'
46
- import CtaButton from './components/SubComponents/CtaButton'
47
- import Pagination from './components/SubComponents/Pagination'
48
- import SingleImage from './components/SubComponents/SingleImage'
49
- import Loading from './components/SubComponents/Loading'
50
- import Icon from './components/SubComponents/Icon'
51
- import Breadcrumb from './components/SubComponents/Breadcrumb'
46
+ import FormAddressPostcode from './components/SubComponents/FormAddressPostcode/index.vue'
47
+ import CtaButton from './components/SubComponents/CtaButton/index.vue'
48
+ import Pagination from './components/SubComponents/Pagination/index.vue'
49
+ import SingleImage from './components/SubComponents/SingleImage/index.vue'
50
+ import Loading from './components/SubComponents/Loading/index.vue'
51
+ import Icon from './components/SubComponents/Icon/index.vue'
52
+ import Breadcrumb from './components/SubComponents/Breadcrumb/index.vue'
52
53
  import CardGroup from './components/SubComponents/CardGroup/index.vue'
53
54
  import Search from './components/SubComponents/Search/index.vue'
54
55
  import VideoThumbnail from './components/SubComponents/VideoThumbnail/index.vue'
@@ -98,7 +99,8 @@ export {
98
99
  Tabs,
99
100
  MarketingBanner,
100
101
  RelatedInformation,
101
- Calculator
102
+ Calculator,
103
+ Chart
102
104
  }
103
105
 
104
106
  // Export Sub Components
package/vite.config.js CHANGED
@@ -14,6 +14,10 @@ export default defineConfig({
14
14
  }
15
15
  },
16
16
  define: {
17
- 'process.env.SOME_ENV': `"${process.env.SOME_ENV}"`
17
+ 'process.env.SHOW_COOKIE': `"${process.env.SHOW_COOKIE}"`,
18
+ 'process.env.CONTENT_API_URL': `"${process.env.CONTENT_API_URL}"`,
19
+ 'process.env.IS_STORYBOOK': `"${process.env.IS_STORYBOOK}"`,
20
+ 'process.env.CARETAKER': `"${process.env.CARETAKER}"`,
21
+ 'process.env.SHOW_GLOBAL_NOTICE': `"${process.env.SHOW_GLOBAL_NOTICE}"`
18
22
  }
19
23
  })
@@ -1,8 +0,0 @@
1
- import GoogleSearch from './index.vue'
2
-
3
- export default {
4
- title: 'SubComponents/GoogleSearch',
5
- component: GoogleSearch
6
- }
7
-
8
- export const Default = {}