@postnord/pn-marketweb-components 2.0.102 → 2.0.104
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/cjs/loader.cjs.js +1 -1
- package/cjs/pn-breakpoints.cjs.entry.js +28 -0
- package/cjs/pn-market-web-components.cjs.js +1 -1
- package/cjs/pn-parcel-tracker.cjs.entry.js +30 -0
- package/cjs/pn-quick-cta.cjs.entry.js +22 -0
- package/cjs/pn-site-footer_2.cjs.entry.js +1 -1
- package/cjs/pn-spotlight.cjs.entry.js +22 -0
- package/cjs/pn-stats-info.cjs.entry.js +1 -1
- package/cjs/pn-teaser-card.cjs.entry.js +6 -2
- package/collection/collection-manifest.json +4 -0
- package/collection/components/cards/pn-teaser-card/pn-teaser-card.css +11 -1
- package/collection/components/cards/pn-teaser-card/pn-teaser-card.js +11 -4
- package/collection/components/cards/pn-teaser-card/pn-teaser-card.stories.js +2 -2
- package/collection/components/cta/pn-parcel-tracker/pn-parcel-tracker.css +55 -0
- package/collection/components/cta/pn-parcel-tracker/pn-parcel-tracker.js +151 -0
- package/collection/components/cta/pn-parcel-tracker/pn-parcel-tracker.stories.js +71 -0
- package/collection/components/cta/pn-quick-cta/pn-quick-cta.css +41 -0
- package/collection/components/cta/pn-quick-cta/pn-quick-cta.js +60 -0
- package/collection/components/cta/pn-quick-cta/pn-quick-cta.stories.js +59 -0
- package/collection/components/cta/pn-spotlight/pn-spotlight.css +103 -0
- package/collection/components/cta/pn-spotlight/pn-spotlight.js +62 -0
- package/collection/components/cta/pn-spotlight/pn-spotlight.stories.js +54 -0
- package/collection/components/data-visualization/pn-stats-info/pn-stats-info.css +0 -2
- package/collection/components/navigation/pn-site-footer/pn-site-footer.css +3 -0
- package/collection/components/utilities/pn-breakpoints/pn-breakpoints.css +72 -0
- package/collection/components/utilities/pn-breakpoints/pn-breakpoints.js +58 -0
- package/custom-elements/index.d.ts +24 -0
- package/custom-elements/index.js +96 -6
- package/esm/loader.js +1 -1
- package/esm/pn-breakpoints.entry.js +24 -0
- package/esm/pn-market-web-components.js +1 -1
- package/esm/pn-parcel-tracker.entry.js +26 -0
- package/esm/pn-quick-cta.entry.js +18 -0
- package/esm/pn-site-footer_2.entry.js +1 -1
- package/esm/pn-spotlight.entry.js +18 -0
- package/esm/pn-stats-info.entry.js +1 -1
- package/esm/pn-teaser-card.entry.js +6 -2
- package/esm-es5/loader.js +1 -1
- package/esm-es5/pn-breakpoints.entry.js +1 -0
- package/esm-es5/pn-market-web-components.js +1 -1
- package/esm-es5/pn-parcel-tracker.entry.js +1 -0
- package/esm-es5/pn-quick-cta.entry.js +1 -0
- package/esm-es5/pn-site-footer_2.entry.js +1 -1
- package/esm-es5/pn-spotlight.entry.js +1 -0
- package/esm-es5/pn-stats-info.entry.js +1 -1
- package/esm-es5/pn-teaser-card.entry.js +1 -1
- package/package.json +1 -1
- package/pn-market-web-components/p-08c6f817.entry.js +1 -0
- package/pn-market-web-components/p-08ea20b0.system.entry.js +1 -0
- package/pn-market-web-components/p-447ef543.system.entry.js +1 -0
- package/pn-market-web-components/p-489412d3.entry.js +1 -0
- package/pn-market-web-components/{p-bc99f2db.entry.js → p-5e3a007c.entry.js} +1 -1
- package/pn-market-web-components/p-65fef4e8.entry.js +1 -0
- package/pn-market-web-components/p-67887512.system.js +1 -1
- package/pn-market-web-components/p-8bb1a8f9.system.entry.js +1 -0
- package/pn-market-web-components/p-910eb3c2.entry.js +1 -0
- package/pn-market-web-components/p-95d13488.system.entry.js +1 -0
- package/pn-market-web-components/p-9854fc3d.system.entry.js +1 -0
- package/pn-market-web-components/p-a2469aa9.entry.js +1 -0
- package/pn-market-web-components/p-d7e3d918.entry.js +1 -0
- package/pn-market-web-components/p-e0a7ab9e.system.entry.js +1 -0
- package/pn-market-web-components/p-e6702d02.system.entry.js +1 -0
- package/pn-market-web-components/pn-market-web-components.esm.js +1 -1
- package/types/components/cards/pn-teaser-card/pn-teaser-card.d.ts +2 -0
- package/types/components/cta/pn-parcel-tracker/pn-parcel-tracker.d.ts +12 -0
- package/types/components/cta/pn-quick-cta/pn-quick-cta.d.ts +6 -0
- package/types/components/cta/pn-spotlight/pn-spotlight.d.ts +6 -0
- package/types/components/utilities/pn-breakpoints/pn-breakpoints.d.ts +8 -0
- package/types/components.d.ts +74 -0
- package/umd/pn-marketweb-init.js +1 -1
- package/umd/pn-marketweb-salesforce.js +2 -2
- package/pn-market-web-components/p-29b86818.system.entry.js +0 -1
- package/pn-market-web-components/p-89e47f9e.system.entry.js +0 -1
- package/pn-market-web-components/p-d29c9c5d.entry.js +0 -1
- package/pn-market-web-components/p-d943f88e.entry.js +0 -1
- package/pn-market-web-components/p-db6984c0.system.entry.js +0 -1
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { Component, Element, h, Host, Listen, Prop, State, } from '@stencil/core';
|
|
2
|
+
export class PnSpotlight {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.formActionUrl = null;
|
|
5
|
+
this.heading = 'Track your parcel';
|
|
6
|
+
this.buttonLabel = null;
|
|
7
|
+
this.locale = 'en';
|
|
8
|
+
this.placeholder = 'Enter shipment ID';
|
|
9
|
+
this.inputName = 'shipmentID';
|
|
10
|
+
this.currentWidth = window.innerWidth;
|
|
11
|
+
}
|
|
12
|
+
handleViewportSizeChange(event) {
|
|
13
|
+
this.currentWidth = event.target.innerWidth;
|
|
14
|
+
}
|
|
15
|
+
render() {
|
|
16
|
+
return (h(Host, null,
|
|
17
|
+
h("div", { class: "pn-parcel-tracker__container" },
|
|
18
|
+
h("form", { method: "GET", action: this.formActionUrl },
|
|
19
|
+
h("h3", { class: "pn-parcel-tracker__container__heading" }, this.heading),
|
|
20
|
+
h("pn-marketweb-input", { name: this.inputName, placeholder: this.placeholder }),
|
|
21
|
+
h("pn-button", { type: "submit", icon: "search", "icon-only": this.currentWidth < 412 }, this.currentWidth >= 412 && this.buttonLabel)))));
|
|
22
|
+
}
|
|
23
|
+
static get is() { return "pn-parcel-tracker"; }
|
|
24
|
+
static get originalStyleUrls() { return {
|
|
25
|
+
"$": ["pn-parcel-tracker.scss"]
|
|
26
|
+
}; }
|
|
27
|
+
static get styleUrls() { return {
|
|
28
|
+
"$": ["pn-parcel-tracker.css"]
|
|
29
|
+
}; }
|
|
30
|
+
static get properties() { return {
|
|
31
|
+
"formActionUrl": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"mutable": false,
|
|
34
|
+
"complexType": {
|
|
35
|
+
"original": "string",
|
|
36
|
+
"resolved": "string",
|
|
37
|
+
"references": {}
|
|
38
|
+
},
|
|
39
|
+
"required": false,
|
|
40
|
+
"optional": false,
|
|
41
|
+
"docs": {
|
|
42
|
+
"tags": [],
|
|
43
|
+
"text": ""
|
|
44
|
+
},
|
|
45
|
+
"attribute": "form-action-url",
|
|
46
|
+
"reflect": false,
|
|
47
|
+
"defaultValue": "null"
|
|
48
|
+
},
|
|
49
|
+
"heading": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"mutable": false,
|
|
52
|
+
"complexType": {
|
|
53
|
+
"original": "string",
|
|
54
|
+
"resolved": "string",
|
|
55
|
+
"references": {}
|
|
56
|
+
},
|
|
57
|
+
"required": false,
|
|
58
|
+
"optional": false,
|
|
59
|
+
"docs": {
|
|
60
|
+
"tags": [],
|
|
61
|
+
"text": ""
|
|
62
|
+
},
|
|
63
|
+
"attribute": "heading",
|
|
64
|
+
"reflect": false,
|
|
65
|
+
"defaultValue": "'Track your parcel'"
|
|
66
|
+
},
|
|
67
|
+
"buttonLabel": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"mutable": false,
|
|
70
|
+
"complexType": {
|
|
71
|
+
"original": "string",
|
|
72
|
+
"resolved": "string",
|
|
73
|
+
"references": {}
|
|
74
|
+
},
|
|
75
|
+
"required": false,
|
|
76
|
+
"optional": false,
|
|
77
|
+
"docs": {
|
|
78
|
+
"tags": [],
|
|
79
|
+
"text": ""
|
|
80
|
+
},
|
|
81
|
+
"attribute": "button-label",
|
|
82
|
+
"reflect": false,
|
|
83
|
+
"defaultValue": "null"
|
|
84
|
+
},
|
|
85
|
+
"locale": {
|
|
86
|
+
"type": "string",
|
|
87
|
+
"mutable": false,
|
|
88
|
+
"complexType": {
|
|
89
|
+
"original": "string",
|
|
90
|
+
"resolved": "string",
|
|
91
|
+
"references": {}
|
|
92
|
+
},
|
|
93
|
+
"required": false,
|
|
94
|
+
"optional": false,
|
|
95
|
+
"docs": {
|
|
96
|
+
"tags": [],
|
|
97
|
+
"text": ""
|
|
98
|
+
},
|
|
99
|
+
"attribute": "locale",
|
|
100
|
+
"reflect": false,
|
|
101
|
+
"defaultValue": "'en'"
|
|
102
|
+
},
|
|
103
|
+
"placeholder": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"mutable": false,
|
|
106
|
+
"complexType": {
|
|
107
|
+
"original": "string",
|
|
108
|
+
"resolved": "string",
|
|
109
|
+
"references": {}
|
|
110
|
+
},
|
|
111
|
+
"required": false,
|
|
112
|
+
"optional": false,
|
|
113
|
+
"docs": {
|
|
114
|
+
"tags": [],
|
|
115
|
+
"text": ""
|
|
116
|
+
},
|
|
117
|
+
"attribute": "placeholder",
|
|
118
|
+
"reflect": false,
|
|
119
|
+
"defaultValue": "'Enter shipment ID'"
|
|
120
|
+
},
|
|
121
|
+
"inputName": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"mutable": false,
|
|
124
|
+
"complexType": {
|
|
125
|
+
"original": "string",
|
|
126
|
+
"resolved": "string",
|
|
127
|
+
"references": {}
|
|
128
|
+
},
|
|
129
|
+
"required": false,
|
|
130
|
+
"optional": false,
|
|
131
|
+
"docs": {
|
|
132
|
+
"tags": [],
|
|
133
|
+
"text": ""
|
|
134
|
+
},
|
|
135
|
+
"attribute": "input-name",
|
|
136
|
+
"reflect": false,
|
|
137
|
+
"defaultValue": "'shipmentID'"
|
|
138
|
+
}
|
|
139
|
+
}; }
|
|
140
|
+
static get states() { return {
|
|
141
|
+
"currentWidth": {}
|
|
142
|
+
}; }
|
|
143
|
+
static get elementRef() { return "hostElement"; }
|
|
144
|
+
static get listeners() { return [{
|
|
145
|
+
"name": "resize",
|
|
146
|
+
"method": "handleViewportSizeChange",
|
|
147
|
+
"target": "window",
|
|
148
|
+
"capture": false,
|
|
149
|
+
"passive": true
|
|
150
|
+
}]; }
|
|
151
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import readme from './readme.md';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'CTA/Parcel tracker',
|
|
5
|
+
parameters: {
|
|
6
|
+
notes: readme,
|
|
7
|
+
layout: 'fullscreen',
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const TemplatePrimary = ({ data, ...args }) => {
|
|
12
|
+
return `
|
|
13
|
+
<pn-breakpoints break-point-class="dotcom"></pn-breakpoints>
|
|
14
|
+
<div id="container" style="margin: 0 auto;">
|
|
15
|
+
<pn-spotlight data-cta-color="blue">
|
|
16
|
+
<h2 slot="mobile-heading">${data[0].heading}</h2>
|
|
17
|
+
<div slot="content">
|
|
18
|
+
<pn-parcel-tracker form-action-url="${data[0].actionUrl}" placeholder="${data[0].placeholder}" heading="${data[0].heading}" button-label="${data[0].buttonLabel}" />
|
|
19
|
+
</div>
|
|
20
|
+
</pn-spotlight>
|
|
21
|
+
</div>
|
|
22
|
+
<br />
|
|
23
|
+
|
|
24
|
+
<div id="container" style="margin: 0 auto;">
|
|
25
|
+
<pn-spotlight data-cta-color="coral">
|
|
26
|
+
<h2 slot="mobile-heading">${data[1].heading}</h2>
|
|
27
|
+
<div slot="content">
|
|
28
|
+
<pn-parcel-tracker form-action-url="${data[1].actionUrl}" placeholder="${data[1].placeholder}"heading="${data[1].heading}" button-label="${data[1].buttonLabel}" />
|
|
29
|
+
</div>
|
|
30
|
+
</pn-spotlight>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<br/>
|
|
34
|
+
|
|
35
|
+
<div id="container" style="margin: 0 auto;">
|
|
36
|
+
<pn-spotlight data-cta-color="green">
|
|
37
|
+
<h2 slot="mobile-heading">${data[2].heading}</h2>
|
|
38
|
+
<div slot="content">
|
|
39
|
+
<pn-parcel-tracker form-action-url="${data[2].actionUrl}" placeholder="${data[2].placeholder}" heading="${data[2].heading}" button-label="${data[2].buttonLabel}" />
|
|
40
|
+
</div>
|
|
41
|
+
</pn-spotlight>
|
|
42
|
+
</div>`;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const Primary = TemplatePrimary.bind({});
|
|
46
|
+
|
|
47
|
+
Primary.args = {
|
|
48
|
+
data: [
|
|
49
|
+
{
|
|
50
|
+
heading: 'Spåra din försändelse',
|
|
51
|
+
actionUrl: 'https://se-integration.postnord.com/vara-verktyg/spara-brev-paket-och-pall',
|
|
52
|
+
buttonLabel: 'Spåra',
|
|
53
|
+
locale: 'sv',
|
|
54
|
+
placeholder: 'Försändelse-ID',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
heading: 'Track your parcel',
|
|
58
|
+
actionUrl: 'https://com-integration.postnord.com/vara-verktyg/spara-brev-paket-och-pall',
|
|
59
|
+
buttonLabel: 'Track',
|
|
60
|
+
locale: 'en',
|
|
61
|
+
placeholder: 'Enter shipment ID',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
heading: 'Spor din pakke',
|
|
65
|
+
actionUrl: 'https://no-integration.postnord.com/pakkesporing',
|
|
66
|
+
buttonLabel: 'Spor',
|
|
67
|
+
locale: 'no',
|
|
68
|
+
placeholder: 'Sendningsnummer',
|
|
69
|
+
},
|
|
70
|
+
],
|
|
71
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
pn-quick-cta {
|
|
2
|
+
width: 100%;
|
|
3
|
+
}
|
|
4
|
+
pn-quick-cta .quick-cta__content {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: row;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: flex-end;
|
|
9
|
+
gap: 2.4rem;
|
|
10
|
+
width: 100%;
|
|
11
|
+
}
|
|
12
|
+
pn-quick-cta .quick-cta__content .quick-cta__content__heading {
|
|
13
|
+
padding: 0;
|
|
14
|
+
margin: 0;
|
|
15
|
+
font-size: 2.4rem;
|
|
16
|
+
font-weight: 500;
|
|
17
|
+
}
|
|
18
|
+
@media screen and (max-width: 768px) {
|
|
19
|
+
pn-quick-cta .quick-cta__content .quick-cta__content__heading {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
@media screen and (min-width: 1640px) {
|
|
24
|
+
pn-quick-cta .quick-cta__content .quick-cta__content__heading {
|
|
25
|
+
font-size: 2.8rem;
|
|
26
|
+
font-weight: 700;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
pn-quick-cta .quick-cta__content .quick-cta__content__preamble {
|
|
30
|
+
font-weight: 400;
|
|
31
|
+
font-size: 1.6rem;
|
|
32
|
+
line-height: 140%;
|
|
33
|
+
padding: 0;
|
|
34
|
+
margin: 0;
|
|
35
|
+
}
|
|
36
|
+
pn-quick-cta .quick-cta__content [slot=quick-cta-cta] a {
|
|
37
|
+
white-space: nowrap;
|
|
38
|
+
}
|
|
39
|
+
pn-quick-cta .quick-cta__content [slot=quick-cta-cta] a:hover {
|
|
40
|
+
text-decoration: none;
|
|
41
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Component, Element, h, Host, Prop, } from '@stencil/core';
|
|
2
|
+
export class PnQuickCta {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.heading = null;
|
|
5
|
+
this.preamble = null;
|
|
6
|
+
}
|
|
7
|
+
render() {
|
|
8
|
+
return (h(Host, null,
|
|
9
|
+
h("div", { class: "quick-cta__content" },
|
|
10
|
+
h("h2", { class: "quick-cta__content__heading" }, this.heading),
|
|
11
|
+
h("p", { class: "quick-cta__content__preamble" }, this.preamble),
|
|
12
|
+
h("slot", { name: "quick-cta-cta" }))));
|
|
13
|
+
}
|
|
14
|
+
static get is() { return "pn-quick-cta"; }
|
|
15
|
+
static get originalStyleUrls() { return {
|
|
16
|
+
"$": ["pn-quick-cta.scss"]
|
|
17
|
+
}; }
|
|
18
|
+
static get styleUrls() { return {
|
|
19
|
+
"$": ["pn-quick-cta.css"]
|
|
20
|
+
}; }
|
|
21
|
+
static get properties() { return {
|
|
22
|
+
"heading": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"mutable": false,
|
|
25
|
+
"complexType": {
|
|
26
|
+
"original": "string",
|
|
27
|
+
"resolved": "string",
|
|
28
|
+
"references": {}
|
|
29
|
+
},
|
|
30
|
+
"required": false,
|
|
31
|
+
"optional": false,
|
|
32
|
+
"docs": {
|
|
33
|
+
"tags": [],
|
|
34
|
+
"text": ""
|
|
35
|
+
},
|
|
36
|
+
"attribute": "heading",
|
|
37
|
+
"reflect": false,
|
|
38
|
+
"defaultValue": "null"
|
|
39
|
+
},
|
|
40
|
+
"preamble": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"mutable": false,
|
|
43
|
+
"complexType": {
|
|
44
|
+
"original": "string",
|
|
45
|
+
"resolved": "string",
|
|
46
|
+
"references": {}
|
|
47
|
+
},
|
|
48
|
+
"required": false,
|
|
49
|
+
"optional": false,
|
|
50
|
+
"docs": {
|
|
51
|
+
"tags": [],
|
|
52
|
+
"text": ""
|
|
53
|
+
},
|
|
54
|
+
"attribute": "preamble",
|
|
55
|
+
"reflect": false,
|
|
56
|
+
"defaultValue": "null"
|
|
57
|
+
}
|
|
58
|
+
}; }
|
|
59
|
+
static get elementRef() { return "hostElement"; }
|
|
60
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import readme from './readme.md';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'CTA/Quick CTA',
|
|
5
|
+
parameters: {
|
|
6
|
+
notes: readme,
|
|
7
|
+
layout: 'fullscreen',
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const TemplatePrimary = ({ ...args }) => {
|
|
12
|
+
return `
|
|
13
|
+
<pn-breakpoints break-point-class="dotcom"></pn-breakpoints>
|
|
14
|
+
<div id="container" style="margin: 0 auto;">
|
|
15
|
+
<pn-spotlight data-cta-color="blue">
|
|
16
|
+
<h2 slot="mobile-heading">${args.heading}</h2>
|
|
17
|
+
<div slot="content">
|
|
18
|
+
<pn-quick-cta heading="${args.heading}" preamble="${args.preamble}">
|
|
19
|
+
<pn-button slot="quick-cta-cta" href="${args.ctaUrl}">${args.ctaLabel}</pn-button>
|
|
20
|
+
</pn-quick-cta>
|
|
21
|
+
</div>
|
|
22
|
+
</pn-spotlight>
|
|
23
|
+
</div>
|
|
24
|
+
|
|
25
|
+
<br/>
|
|
26
|
+
|
|
27
|
+
<div id="container" style="margin: 0 auto;">
|
|
28
|
+
<pn-spotlight data-cta-color="coral">
|
|
29
|
+
<h2 slot="mobile-heading">${args.heading}</h2>
|
|
30
|
+
<div slot="content">
|
|
31
|
+
<pn-quick-cta heading="${args.heading}" preamble="${args.preamble}">
|
|
32
|
+
<pn-button slot="quick-cta-cta" href="${args.ctaUrl}">${args.ctaLabel}</pn-button>
|
|
33
|
+
</pn-quick-cta>
|
|
34
|
+
</div>
|
|
35
|
+
</pn-spotlight>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<br />
|
|
39
|
+
|
|
40
|
+
<div id="container" style="margin: 0 auto;">
|
|
41
|
+
<pn-spotlight data-cta-color="green">
|
|
42
|
+
<h2 slot="mobile-heading">${args.heading}</h2>
|
|
43
|
+
<div slot="content">
|
|
44
|
+
<pn-quick-cta heading="${args.heading}" preamble="${args.preamble}">
|
|
45
|
+
<pn-button slot="quick-cta-cta" href="${args.ctaUrl}">${args.ctaLabel}</pn-button>
|
|
46
|
+
</pn-quick-cta>
|
|
47
|
+
</div>
|
|
48
|
+
</pn-spotlight>
|
|
49
|
+
</div> `;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export const Primary = TemplatePrimary.bind({});
|
|
53
|
+
|
|
54
|
+
Primary.args = {
|
|
55
|
+
heading: 'Interested in sustainable shipping?',
|
|
56
|
+
preamble: 'Talk with our experts',
|
|
57
|
+
ctaUrl: 'http://www.google.se',
|
|
58
|
+
ctaLabel: 'Read more',
|
|
59
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
pn-spotlight .pn-spotlight__container {
|
|
2
|
+
overflow: hidden;
|
|
3
|
+
}
|
|
4
|
+
@media screen and (max-width: 991px) {
|
|
5
|
+
pn-spotlight .pn-spotlight__container {
|
|
6
|
+
margin-left: calc(-50vw + 50%);
|
|
7
|
+
margin-right: calc(-50vw + 50%);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
pn-spotlight [slot=mobile-heading] {
|
|
11
|
+
text-align: center;
|
|
12
|
+
padding-bottom: 1.6rem;
|
|
13
|
+
font-weight: 500;
|
|
14
|
+
}
|
|
15
|
+
@media screen and (min-width: 769px) {
|
|
16
|
+
pn-spotlight [slot=mobile-heading] {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
pn-spotlight .pn-spotlight__container__wrapper {
|
|
21
|
+
position: relative;
|
|
22
|
+
max-width: 100%;
|
|
23
|
+
}
|
|
24
|
+
@media screen and (min-width: 992px) {
|
|
25
|
+
pn-spotlight .pn-spotlight__container__wrapper {
|
|
26
|
+
max-width: 90%;
|
|
27
|
+
margin: 0 auto;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
@media screen and (min-width: 1640px) {
|
|
31
|
+
pn-spotlight .pn-spotlight__container__wrapper {
|
|
32
|
+
max-width: 80%;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
pn-spotlight .pn-spotlight__container__wrapper__content {
|
|
36
|
+
position: relative;
|
|
37
|
+
margin: 0 auto;
|
|
38
|
+
display: flex;
|
|
39
|
+
flex-direction: row;
|
|
40
|
+
left: -57.5px;
|
|
41
|
+
width: calc(100% + 57.5px);
|
|
42
|
+
}
|
|
43
|
+
@media screen and (min-width: 768px) {
|
|
44
|
+
pn-spotlight .pn-spotlight__container__wrapper__content {
|
|
45
|
+
left: -50px;
|
|
46
|
+
width: calc(100% + 50px);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
@media screen and (min-width: 992px) {
|
|
50
|
+
pn-spotlight .pn-spotlight__container__wrapper__content {
|
|
51
|
+
left: 0;
|
|
52
|
+
width: 100%;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
pn-spotlight .pn-spotlight__container__wrapper__content__ball {
|
|
56
|
+
border-radius: 50%;
|
|
57
|
+
min-height: 75px;
|
|
58
|
+
aspect-ratio: 1/1;
|
|
59
|
+
margin-right: 1.5rem;
|
|
60
|
+
}
|
|
61
|
+
@media screen and (min-width: 768px) {
|
|
62
|
+
pn-spotlight .pn-spotlight__container__wrapper__content__ball {
|
|
63
|
+
min-height: 85px;
|
|
64
|
+
margin-right: 2.5rem;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
pn-spotlight [slot=content] {
|
|
68
|
+
display: flex;
|
|
69
|
+
border-top-left-radius: 10rem;
|
|
70
|
+
border-bottom-left-radius: 10rem;
|
|
71
|
+
align-items: center;
|
|
72
|
+
justify-content: right;
|
|
73
|
+
padding: 0 1.5rem;
|
|
74
|
+
padding-left: 50px;
|
|
75
|
+
width: 100%;
|
|
76
|
+
}
|
|
77
|
+
@media screen and (min-width: 992px) {
|
|
78
|
+
pn-spotlight [slot=content] {
|
|
79
|
+
padding: 0 2rem;
|
|
80
|
+
border-radius: 10rem;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
pn-spotlight[data-cta-color=green] [slot=content] {
|
|
85
|
+
background-color: #DCF6E7;
|
|
86
|
+
}
|
|
87
|
+
pn-spotlight[data-cta-color=green] .pn-spotlight__container__wrapper__content__ball {
|
|
88
|
+
background-color: #DCF6E7;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
pn-spotlight[data-cta-color=coral] [slot=content] {
|
|
92
|
+
background-color: #FDEFEE;
|
|
93
|
+
}
|
|
94
|
+
pn-spotlight[data-cta-color=coral] .pn-spotlight__container__wrapper__content__ball {
|
|
95
|
+
background-color: #FDEFEE;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
pn-spotlight[data-cta-color=blue] [slot=content] {
|
|
99
|
+
background-color: #EFFBFF;
|
|
100
|
+
}
|
|
101
|
+
pn-spotlight[data-cta-color=blue] .pn-spotlight__container__wrapper__content__ball {
|
|
102
|
+
background-color: #EFFBFF;
|
|
103
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Component, Element, h, Host, Prop, } from '@stencil/core';
|
|
2
|
+
export class PnSpotlight {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.heading = null;
|
|
5
|
+
this.preamble = null;
|
|
6
|
+
}
|
|
7
|
+
render() {
|
|
8
|
+
return (h(Host, null,
|
|
9
|
+
h("div", { class: "pn-spotlight__container" },
|
|
10
|
+
h("slot", { name: "mobile-heading" }),
|
|
11
|
+
h("div", { class: "pn-spotlight__container__wrapper" },
|
|
12
|
+
h("div", { class: "pn-spotlight__container__wrapper__content" },
|
|
13
|
+
h("div", { class: "pn-spotlight__container__wrapper__content__ball" }),
|
|
14
|
+
h("slot", { name: "content" }))))));
|
|
15
|
+
}
|
|
16
|
+
static get is() { return "pn-spotlight"; }
|
|
17
|
+
static get originalStyleUrls() { return {
|
|
18
|
+
"$": ["pn-spotlight.scss"]
|
|
19
|
+
}; }
|
|
20
|
+
static get styleUrls() { return {
|
|
21
|
+
"$": ["pn-spotlight.css"]
|
|
22
|
+
}; }
|
|
23
|
+
static get properties() { return {
|
|
24
|
+
"heading": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"mutable": false,
|
|
27
|
+
"complexType": {
|
|
28
|
+
"original": "string",
|
|
29
|
+
"resolved": "string",
|
|
30
|
+
"references": {}
|
|
31
|
+
},
|
|
32
|
+
"required": false,
|
|
33
|
+
"optional": false,
|
|
34
|
+
"docs": {
|
|
35
|
+
"tags": [],
|
|
36
|
+
"text": ""
|
|
37
|
+
},
|
|
38
|
+
"attribute": "heading",
|
|
39
|
+
"reflect": false,
|
|
40
|
+
"defaultValue": "null"
|
|
41
|
+
},
|
|
42
|
+
"preamble": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"mutable": false,
|
|
45
|
+
"complexType": {
|
|
46
|
+
"original": "string",
|
|
47
|
+
"resolved": "string",
|
|
48
|
+
"references": {}
|
|
49
|
+
},
|
|
50
|
+
"required": false,
|
|
51
|
+
"optional": false,
|
|
52
|
+
"docs": {
|
|
53
|
+
"tags": [],
|
|
54
|
+
"text": ""
|
|
55
|
+
},
|
|
56
|
+
"attribute": "preamble",
|
|
57
|
+
"reflect": false,
|
|
58
|
+
"defaultValue": "null"
|
|
59
|
+
}
|
|
60
|
+
}; }
|
|
61
|
+
static get elementRef() { return "hostElement"; }
|
|
62
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import readme from './readme.md';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'CTA/Spotlight',
|
|
5
|
+
parameters: {
|
|
6
|
+
notes: readme,
|
|
7
|
+
layout: 'fullscreen',
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const TemplatePrimary = ({ ...args }) => {
|
|
12
|
+
return `
|
|
13
|
+
<pn-breakpoints break-point-class="dotcom"></pn-breakpoints>
|
|
14
|
+
<div id="container" style="margin: 0 auto;">
|
|
15
|
+
<pn-spotlight data-cta-color="blue">
|
|
16
|
+
<h2 slot="mobile-heading">${args.heading}</h2>
|
|
17
|
+
<div slot="content">
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
</pn-spotlight>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<br/>
|
|
24
|
+
|
|
25
|
+
<div id="container" style="margin: 0 auto;">
|
|
26
|
+
<pn-spotlight data-cta-color="coral">
|
|
27
|
+
<h2 slot="mobile-heading">${args.heading}</h2>
|
|
28
|
+
<div slot="content">
|
|
29
|
+
|
|
30
|
+
</div>
|
|
31
|
+
</pn-spotlight>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<br />
|
|
35
|
+
|
|
36
|
+
<div id="container" style="margin: 0 auto;">
|
|
37
|
+
<pn-spotlight data-cta-color="green">
|
|
38
|
+
<h2 slot="mobile-heading">${args.heading}</h2>
|
|
39
|
+
<div slot="content">
|
|
40
|
+
|
|
41
|
+
</div>
|
|
42
|
+
</pn-spotlight>
|
|
43
|
+
</div>
|
|
44
|
+
`;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export const Primary = TemplatePrimary.bind({});
|
|
48
|
+
|
|
49
|
+
Primary.args = {
|
|
50
|
+
heading: 'A Spotlight Moble Header',
|
|
51
|
+
preamble: 'With quick-cta component as content',
|
|
52
|
+
ctaUrl: 'http://www.google.se',
|
|
53
|
+
ctaLabel: 'Read more',
|
|
54
|
+
};
|
|
@@ -101,6 +101,9 @@ pn-site-footer[theme=dotcom] > svg path {
|
|
|
101
101
|
}
|
|
102
102
|
pn-site-footer[theme=dotcom] .pn-sitefooter-top {
|
|
103
103
|
width: 100%;
|
|
104
|
+
position: relative;
|
|
105
|
+
top: -1px;
|
|
106
|
+
background-color: #0D234B;
|
|
104
107
|
}
|
|
105
108
|
pn-site-footer[theme=dotcom] .pn-sitefooter-top .pn-sitefooter-cols {
|
|
106
109
|
display: flex;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
pn-breakpoints {
|
|
2
|
+
width: 100%;
|
|
3
|
+
}
|
|
4
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
5
|
+
width: 100%;
|
|
6
|
+
background-color: aliceblue;
|
|
7
|
+
text-align: center;
|
|
8
|
+
margin-bottom: 2.4rem;
|
|
9
|
+
background-color: aliceblue;
|
|
10
|
+
}
|
|
11
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
12
|
+
content: "less than 321";
|
|
13
|
+
}
|
|
14
|
+
@media screen and (min-width: 321px) {
|
|
15
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
16
|
+
background-color: yellow;
|
|
17
|
+
}
|
|
18
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
19
|
+
content: "321 (xs)";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
@media screen and (min-width: 576px) {
|
|
23
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
24
|
+
background-color: aqua;
|
|
25
|
+
}
|
|
26
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
27
|
+
content: "576 (sm)";
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
@media screen and (min-width: 768px) {
|
|
31
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
32
|
+
background-color: red;
|
|
33
|
+
color: #fff;
|
|
34
|
+
}
|
|
35
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
36
|
+
content: "768 (md)";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
@media screen and (min-width: 992px) {
|
|
40
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
41
|
+
background-color: green;
|
|
42
|
+
color: #fff;
|
|
43
|
+
}
|
|
44
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
45
|
+
content: "992 (lg)";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
@media screen and (min-width: 1200px) {
|
|
49
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
50
|
+
background-color: blue;
|
|
51
|
+
color: #fff;
|
|
52
|
+
}
|
|
53
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
54
|
+
content: "1200 (xl)";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
@media screen and (min-width: 1640px) {
|
|
58
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
59
|
+
background-color: pink;
|
|
60
|
+
}
|
|
61
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
62
|
+
content: "1640 (xxl)";
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
@media screen and (min-width: 1920px) {
|
|
66
|
+
pn-breakpoints .breakpoints--dotcom {
|
|
67
|
+
background-color: orange;
|
|
68
|
+
}
|
|
69
|
+
pn-breakpoints .breakpoints--dotcom .reference::before {
|
|
70
|
+
content: "1920 (fhd)";
|
|
71
|
+
}
|
|
72
|
+
}
|