@ptcwebops/ptcw-design 5.8.0 → 5.8.2

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 (64) hide show
  1. package/dist/cjs/blog-detail-content_21.cjs.entry.js +4 -4
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/ptc-card_2.cjs.entry.js +1 -1
  4. package/dist/cjs/ptc-dynamic-card.cjs.entry.js +61 -18
  5. package/dist/cjs/ptc-ellipsis-dropdown.cjs.entry.js +1 -1
  6. package/dist/cjs/ptc-filter-tag_2.cjs.entry.js +1 -1
  7. package/dist/cjs/ptc-form-checkbox_2.cjs.entry.js +76 -185
  8. package/dist/cjs/ptc-multi-select_2.cjs.entry.js +1 -1
  9. package/dist/cjs/ptc-pricing-tabs.cjs.entry.js +1 -1
  10. package/dist/cjs/ptc-readmore.cjs.entry.js +1 -1
  11. package/dist/cjs/ptcw-design.cjs.js +1 -1
  12. package/dist/cjs/sequential-bundle-example.cjs.entry.js +5 -5
  13. package/dist/collection/components/icon-asset/icon-asset.css +2 -2
  14. package/dist/collection/components/organism-bundles/blog-detail-content/blog-detail-content.css +1 -1
  15. package/dist/collection/components/organism-bundles/blog-detail-layout/blog-detail-layout.css +1 -1
  16. package/dist/collection/components/organism-bundles/sequential-bundle-example/sequential-bundle-example.js +5 -5
  17. package/dist/collection/components/ptc-card/ptc-card.css +1 -1
  18. package/dist/collection/components/ptc-dynamic-card/ptc-dynamic-card.css +7 -22
  19. package/dist/collection/components/ptc-dynamic-card/ptc-dynamic-card.js +115 -20
  20. package/dist/collection/components/ptc-ellipsis-dropdown/ptc-ellipsis-dropdown.js +1 -1
  21. package/dist/collection/components/ptc-form-checkbox/ptc-form-checkbox.css +7 -7
  22. package/dist/collection/components/ptc-jumbotron/ptc-jumbotron.css +2 -2
  23. package/dist/collection/components/ptc-multi-select/ptc-multi-select.css +199 -6
  24. package/dist/collection/components/ptc-pagenation/ptc-pagenation.css +1 -1
  25. package/dist/collection/components/ptc-pricing-tabs/ptc-pricing-tabs.css +2 -2
  26. package/dist/collection/components/ptc-readmore/ptc-readmore.js +1 -1
  27. package/dist/collection/components/ptc-textfield/ptc-textfield.css +34 -51
  28. package/dist/custom-elements/index.js +153 -219
  29. package/dist/esm/blog-detail-content_21.entry.js +4 -4
  30. package/dist/esm/loader.js +1 -1
  31. package/dist/esm/ptc-card_2.entry.js +1 -1
  32. package/dist/esm/ptc-dynamic-card.entry.js +62 -19
  33. package/dist/esm/ptc-ellipsis-dropdown.entry.js +1 -1
  34. package/dist/esm/ptc-filter-tag_2.entry.js +1 -1
  35. package/dist/esm/ptc-form-checkbox_2.entry.js +76 -185
  36. package/dist/esm/ptc-multi-select_2.entry.js +1 -1
  37. package/dist/esm/ptc-pricing-tabs.entry.js +1 -1
  38. package/dist/esm/ptc-readmore.entry.js +1 -1
  39. package/dist/esm/ptcw-design.js +1 -1
  40. package/dist/esm/sequential-bundle-example.entry.js +5 -5
  41. package/dist/ptcw-design/p-1ed632b2.entry.js +1 -0
  42. package/dist/ptcw-design/{p-00980d4d.entry.js → p-20c01caa.entry.js} +1 -1
  43. package/dist/ptcw-design/p-3e5f19f9.entry.js +1 -0
  44. package/dist/ptcw-design/p-40e095bf.entry.js +68 -0
  45. package/dist/ptcw-design/{p-fc51fc29.entry.js → p-657ecf13.entry.js} +1 -1
  46. package/dist/ptcw-design/p-754fe9f4.entry.js +1 -0
  47. package/dist/ptcw-design/p-85cc23f7.entry.js +1 -0
  48. package/dist/ptcw-design/p-9a9d5b49.entry.js +1 -0
  49. package/dist/ptcw-design/p-ab7224b7.entry.js +1 -0
  50. package/dist/ptcw-design/p-d563af49.entry.js +1 -0
  51. package/dist/ptcw-design/ptcw-design.css +1 -1
  52. package/dist/ptcw-design/ptcw-design.esm.js +1 -1
  53. package/dist/types/components/ptc-dynamic-card/ptc-dynamic-card.d.ts +30 -3
  54. package/dist/types/components.d.ts +13 -1
  55. package/package.json +1 -1
  56. package/readme.md +1 -1
  57. package/dist/ptcw-design/p-14122d3f.entry.js +0 -68
  58. package/dist/ptcw-design/p-3dae22b8.entry.js +0 -1
  59. package/dist/ptcw-design/p-510575ce.entry.js +0 -1
  60. package/dist/ptcw-design/p-5af20305.entry.js +0 -1
  61. package/dist/ptcw-design/p-5f78517a.entry.js +0 -1
  62. package/dist/ptcw-design/p-ae0543c8.entry.js +0 -1
  63. package/dist/ptcw-design/p-b1c5404b.entry.js +0 -1
  64. package/dist/ptcw-design/p-e09163f2.entry.js +0 -1
@@ -2,48 +2,92 @@ import { Host, h, getAssetPath } from '@stencil/core';
2
2
  //import navDotSlick from '../../media/svg-imgs/nav-active-dotslick.svg';
3
3
  export class PtcDynamicCard {
4
4
  constructor() {
5
+ /**
6
+ * Open the card
7
+ */
8
+ this.openCard = () => {
9
+ if (!this.isExpanded) {
10
+ this.isExpanded = true;
11
+ this.cardOpened.emit(this.trackerId);
12
+ }
13
+ // If already expanded, do nothing to ensure at least one card remains open
14
+ };
15
+ /**
16
+ * Handle keyboard interactions
17
+ */
18
+ this.handleKeyDown = (event) => {
19
+ switch (event.key) {
20
+ case 'Enter':
21
+ //event.preventDefault();
22
+ this.openCard();
23
+ break;
24
+ default:
25
+ break;
26
+ }
27
+ };
5
28
  this.dotSvg = getAssetPath('./media/nav-active-dotslick.svg');
6
29
  this.cardType = 'sequential';
7
30
  this.cardTitle = 'Card Title Goes Here';
8
31
  this.cardImgSrc = undefined;
9
32
  this.cardImgAlt = undefined;
10
33
  this.cardScreen = 'desktop';
11
- this.isExpanded = undefined;
34
+ this.isExpanded = false;
12
35
  this.overlayExists = true;
13
36
  this.styles = undefined;
14
37
  this.trackerId = undefined;
15
38
  }
16
- // handleClick() {
17
- // this.isExpanded = !this.isExpanded;
18
- // }
39
+ componentDidLoad() {
40
+ // Handle mouse enter and leave for overlay
41
+ this.el.addEventListener('mouseenter', () => (this.overlayExists = false));
42
+ this.el.addEventListener('mouseleave', () => (this.overlayExists = true));
43
+ }
44
+ /**
45
+ * Listen for 'cardOpened' events on the document to close other cards
46
+ */
47
+ handleCardOpened(event) {
48
+ const openedTrackerId = event.detail;
49
+ if (openedTrackerId !== this.trackerId && this.isExpanded) {
50
+ this.isExpanded = false;
51
+ }
52
+ }
53
+ /**
54
+ * Focus the card-wrapper element
55
+ */
56
+ async focusCardWrapper() {
57
+ const cardWrapper = this.el.querySelector('.card-wrapper');
58
+ if (cardWrapper) {
59
+ cardWrapper.focus();
60
+ }
61
+ }
62
+ /**
63
+ * Get CSS class map
64
+ */
65
+ getCssClassMap() {
66
+ return {
67
+ [this.cardType]: true,
68
+ };
69
+ }
70
+ /**
71
+ * Get desktop card based on expansion state
72
+ */
19
73
  getDesktopCard() {
20
74
  if (this.cardScreen === 'desktop' && this.isExpanded) {
21
75
  return [
22
- h("div", { class: "card card-dt-open mf-listen", id: this.trackerId, tabindex: "0", role: "button", "aria-expanded": this.isExpanded }, h("ptc-card-content", { "card-type": "card-dynamic" }, h("div", { class: "card-title" }, h("h3", null, this.cardTitle)), h("div", { class: "card-content" }, h("slot", null))), h("ptc-picture", { alt: this.cardImgAlt, src: this.cardImgSrc, "is-full-width": "true", "is-full-height": "true", "image-alignment": "center" })),
76
+ h("div", { class: "card card-dt-open mf-listen", id: this.trackerId }, h("ptc-card-content", { "card-type": "card-dynamic" }, h("div", { class: "card-title" }, h("h3", null, this.cardTitle)), h("div", { class: "card-content" }, h("slot", null))), h("ptc-picture", { alt: this.cardImgAlt, src: this.cardImgSrc, "is-full-width": "true", "is-full-height": "true", "image-alignment": "center" })),
23
77
  ];
24
78
  }
25
79
  else if (this.cardScreen === 'desktop' && !this.isExpanded) {
26
80
  return [
27
- h("div", { class: "card card-dt-closed mf-listen", id: this.trackerId, role: "button", tabindex: "0", "aria-expanded": this.isExpanded }, h("ptc-picture", { alt: this.cardImgAlt, src: this.cardImgSrc, "image-position": "relative", "is-full-width": true, height: "424" }, this.overlayExists ? h("ptc-overlay", { "filter-color": "solid-black-1" }) : h("ptc-overlay", { "filter-color": "solid-black-2" })), h("div", { class: "closed-content", "card-type": "card-dynamic" }, h("div", { class: "card-title" }, h("h2", null, this.cardTitle)))),
81
+ h("div", { class: "card card-dt-closed mf-listen", id: this.trackerId }, h("ptc-picture", { alt: this.cardImgAlt, src: this.cardImgSrc, "image-position": "relative", "is-full-width": true, height: "424" }, this.overlayExists ? (h("ptc-overlay", { "filter-color": "solid-black-1" })) : (h("ptc-overlay", { "filter-color": "solid-black-2" }))), h("div", { class: "closed-content", "card-type": "card-dynamic" }, h("div", { class: "card-title" }, h("h2", null, this.cardTitle)))),
28
82
  ];
29
83
  }
30
84
  else {
31
85
  return null;
32
86
  }
33
87
  }
34
- componentDidLoad() {
35
- // this.handleResize();
36
- this.el.addEventListener('mouseenter', () => (this.overlayExists = false));
37
- this.el.addEventListener('mouseleave', () => (this.overlayExists = true));
38
- }
39
88
  render() {
40
89
  const classMap = this.getCssClassMap();
41
- return (h(Host, { class: classMap }, this.styles && h("style", null, this.styles), h("div", { class: "card-wrapper" }, this.cardScreen == 'mobile' ? (h("div", { class: "card card-mobile mf-listen", id: this.trackerId, role: "button", "aria-expanded": this.isExpanded }, h("ptc-picture", { height: '287', "is-full-width": true, alt: this.cardImgAlt, src: this.cardImgSrc }), h("ptc-card-content", { "card-type": "card-dynamic", styles: ":host(.card-dynamic){height: auto;}" }, h("div", { class: "card-title" }, h("h3", null, this.cardTitle)), h("div", { class: "card-content" }, h("slot", null))))) : (this.getDesktopCard())), this.cardScreen === 'desktop' && (h("div", { hidden: true }, h("svg", null, h("use", { href: `${this.dotSvg}` }))))));
42
- }
43
- getCssClassMap() {
44
- return {
45
- [this.cardType]: true,
46
- };
90
+ return (h(Host, { class: classMap }, this.styles && h("style", null, this.styles), h("div", { class: "card-wrapper", role: "button", tabindex: "0", "aria-expanded": this.isExpanded, onClick: this.openCard, onKeyDown: this.handleKeyDown }, this.cardScreen === 'mobile' ? (h("div", { class: "card card-mobile mf-listen", id: this.trackerId }, h("ptc-picture", { height: "287", "is-full-width": true, alt: this.cardImgAlt, src: this.cardImgSrc }), h("ptc-card-content", { "card-type": "card-dynamic", styles: ":host(.card-dynamic){height: auto;}" }, h("div", { class: "card-title" }, h("h3", null, this.cardTitle)), h("div", { class: "card-content" }, h("slot", null))))) : (this.getDesktopCard())), this.cardScreen === 'desktop' && (h("div", { hidden: true }, h("svg", null, h("use", { href: `${this.dotSvg}` }))))));
47
91
  }
48
92
  static get is() { return "ptc-dynamic-card"; }
49
93
  static get encapsulation() { return "shadow"; }
@@ -150,20 +194,21 @@ export class PtcDynamicCard {
150
194
  },
151
195
  "isExpanded": {
152
196
  "type": "boolean",
153
- "mutable": false,
197
+ "mutable": true,
154
198
  "complexType": {
155
199
  "original": "boolean",
156
200
  "resolved": "boolean",
157
201
  "references": {}
158
202
  },
159
203
  "required": false,
160
- "optional": true,
204
+ "optional": false,
161
205
  "docs": {
162
206
  "tags": [],
163
207
  "text": "is card expanded?"
164
208
  },
165
209
  "attribute": "is-expanded",
166
- "reflect": false
210
+ "reflect": false,
211
+ "defaultValue": "false"
167
212
  },
168
213
  "styles": {
169
214
  "type": "string",
@@ -206,5 +251,55 @@ export class PtcDynamicCard {
206
251
  "overlayExists": {}
207
252
  };
208
253
  }
254
+ static get events() {
255
+ return [{
256
+ "method": "cardOpened",
257
+ "name": "cardOpened",
258
+ "bubbles": true,
259
+ "cancelable": true,
260
+ "composed": true,
261
+ "docs": {
262
+ "tags": [],
263
+ "text": "Event emitted when this card is opened"
264
+ },
265
+ "complexType": {
266
+ "original": "string",
267
+ "resolved": "string",
268
+ "references": {}
269
+ }
270
+ }];
271
+ }
272
+ static get methods() {
273
+ return {
274
+ "focusCardWrapper": {
275
+ "complexType": {
276
+ "signature": "() => Promise<void>",
277
+ "parameters": [],
278
+ "references": {
279
+ "Promise": {
280
+ "location": "global"
281
+ },
282
+ "HTMLElement": {
283
+ "location": "global"
284
+ }
285
+ },
286
+ "return": "Promise<void>"
287
+ },
288
+ "docs": {
289
+ "text": "Focus the card-wrapper element",
290
+ "tags": []
291
+ }
292
+ }
293
+ };
294
+ }
209
295
  static get elementRef() { return "el"; }
296
+ static get listeners() {
297
+ return [{
298
+ "name": "cardOpened",
299
+ "method": "handleCardOpened",
300
+ "target": "document",
301
+ "capture": false,
302
+ "passive": false
303
+ }];
304
+ }
210
305
  }
@@ -39,7 +39,7 @@ export class PtcEllipsisDropdown {
39
39
  return (h("div", { class: this.dropdownType == 'tab-with-banner' ? "ptc-ellipsis-dropdown tab-with-banner" : "ptc-ellipsis-dropdown default", onClick: (e) => this.dropdownToggle(e) }, (this.isMobile || (this.isIPad && this.dropdownType === 'tab-with-banner')) ? (h("div", { class: 'mob-drop' }, h("span", { class: 'opt-name' }, this.dataItems.map((item) => item.isSelected ? item.text : '')), h("svg", { width: "12", height: "9", viewBox: "0 0 12 9", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M1 1.65723L5.94975 6.60697L10.8995 1.65723", stroke: "#00890B", "stroke-width": "2", "stroke-linecap": "round" })))) : (h("div", { class: isActive || this.isDropdownOpen ? "ellipsis-icon active" : "ellipsis-icon" }, h("icon-asset", { type: "ptc", size: "xxx-small", name: "ellipsis", color: isActive || this.isDropdownOpen ? 'white' : 'black' }))), h("div", { class: "dropdown-container" }, h("slot", { name: "dropdown" }), this.dataItems.map(dataItem => {
40
40
  let activeClass = dataItem.value == this.selectedTab ? 'active' : '';
41
41
  let activeDropdown = dataItem.isSelected ? 'selected-drop' : '';
42
- return (h("dropdown-item", { class: activeClass + activeDropdown }, h("span", { onClick: (e) => {
42
+ return (h("dropdown-item", { class: activeClass + activeDropdown + 'mf-listen' }, h("span", { onClick: (e) => {
43
43
  e.preventDefault();
44
44
  this.onItemSelected(dataItem);
45
45
  } }, dataItem.text)));
@@ -1133,29 +1133,29 @@ ptc-link, ptc-square-card,
1133
1133
 
1134
1134
  .mdc-checkbox {
1135
1135
  transform: translateX(-8px);
1136
- padding: 8px;
1136
+ padding: calc((34px - 18px) / 2);
1137
1137
  /* @alternate */
1138
1138
  padding: calc((var(--mdc-checkbox-ripple-size, 34px) - 18px) / 2);
1139
- margin: 0px;
1139
+ margin: calc((34px - 34px) / 2);
1140
1140
  /* @alternate */
1141
1141
  margin: calc((var(--mdc-checkbox-touch-target-size, 34px) - 34px) / 2);
1142
1142
  }
1143
1143
  .mdc-checkbox .mdc-checkbox__background {
1144
- top: 8px;
1144
+ top: calc((34px - 18px) / 2);
1145
1145
  /* @alternate */
1146
1146
  top: calc((var(--mdc-checkbox-ripple-size, 34px) - 18px) / 2);
1147
- left: 8px;
1147
+ left: calc((34px - 18px) / 2);
1148
1148
  /* @alternate */
1149
1149
  left: calc((var(--mdc-checkbox-ripple-size, 34px) - 18px) / 2);
1150
1150
  }
1151
1151
  .mdc-checkbox .mdc-checkbox__native-control {
1152
- top: 0px;
1152
+ top: calc((34px - 34px) / 2);
1153
1153
  /* @alternate */
1154
1154
  top: calc((34px - var(--mdc-checkbox-touch-target-size, 34px)) / 2);
1155
- right: 0px;
1155
+ right: calc((34px - 34px) / 2);
1156
1156
  /* @alternate */
1157
1157
  right: calc((34px - var(--mdc-checkbox-touch-target-size, 34px)) / 2);
1158
- left: 0px;
1158
+ left: calc((34px - 34px) / 2);
1159
1159
  /* @alternate */
1160
1160
  left: calc((34px - var(--mdc-checkbox-touch-target-size, 34px)) / 2);
1161
1161
  width: 34px;
@@ -1101,7 +1101,7 @@ ptc-link, ptc-square-card,
1101
1101
  }
1102
1102
  @media only screen and (min-width: 992px) {
1103
1103
  .u-3-col-grid .u-3-col {
1104
- width: calc(33.3333333333% - 10.66666666px);
1104
+ width: calc(33.333333333333% - 10.66666666px);
1105
1105
  }
1106
1106
  }
1107
1107
  .u-3-col-grid.u-col-space-lg {
@@ -1118,7 +1118,7 @@ ptc-link, ptc-square-card,
1118
1118
  }
1119
1119
  @media only screen and (min-width: 992px) {
1120
1120
  .u-3-col-grid.u-col-space-lg .u-3-col {
1121
- width: calc(33.3333333333% - 21.3333333px);
1121
+ width: calc(33.333333333333% - 21.3333333px);
1122
1122
  }
1123
1123
  }
1124
1124
 
@@ -54,7 +54,116 @@ ptc-link, ptc-square-card,
54
54
  }
55
55
  }
56
56
 
57
- .dropdown li {
57
+ .ptc-multi-select {
58
+ position: relative;
59
+ display: block;
60
+ margin-bottom: var(--ptc-element-spacing-04);
61
+ }
62
+ .ptc-multi-select.invalid::before {
63
+ content: "";
64
+ position: absolute;
65
+ width: calc(100% + 16px);
66
+ height: calc(100% + 8px);
67
+ background: #FEF3F3;
68
+ display: flex;
69
+ flex-direction: column;
70
+ justify-content: center;
71
+ z-index: 0;
72
+ left: 50%;
73
+ top: 50%;
74
+ transform: translate(-50%, -50%);
75
+ }
76
+ .ptc-multi-select.invalid .mdc-select-helper-text--validation-msg {
77
+ z-index: 2;
78
+ opacity: 1;
79
+ position: relative;
80
+ color: #AF3231;
81
+ font-family: var(--ptc-font-latin);
82
+ font-size: var(--ptc-font-size-xx-small);
83
+ font-style: normal;
84
+ font-weight: var(--ptc-font-weight-semibold);
85
+ line-height: var(--ptc-line-height-densest);
86
+ opacity: 1;
87
+ height: auto;
88
+ margin-left: 8px;
89
+ margin-top: var(--ptc-element-spacing-02);
90
+ }
91
+ .ptc-multi-select.invalid .mdc-select-helper-text--validation-msg svg {
92
+ transform: translate(-8px, 3px);
93
+ }
94
+ .ptc-multi-select .multi-select-label {
95
+ display: block;
96
+ font-size: var(--ptc-font-size-xx-small);
97
+ font-weight: var(--ptc-font-weight-semibold);
98
+ line-height: normal;
99
+ margin-bottom: var(--ptc-element-spacing-01);
100
+ z-index: 1;
101
+ position: relative;
102
+ color: #40434A;
103
+ }
104
+ .ptc-multi-select .selected-items {
105
+ cursor: pointer;
106
+ background-color: #fff;
107
+ border: 1px solid rgba(0, 0, 0, 0.38);
108
+ padding: 8px;
109
+ border-radius: 0px;
110
+ position: relative;
111
+ user-select: none;
112
+ color: var(--color-gray-12);
113
+ font-family: var(--ptc-font-latin);
114
+ font-size: var(--ptc-font-size-xx-small);
115
+ font-weight: var(--ptc-font-weight-regular);
116
+ max-width: 100%;
117
+ max-height: 34px;
118
+ overflow: hidden;
119
+ line-height: 24px;
120
+ display: flex;
121
+ align-items: center;
122
+ }
123
+ .ptc-multi-select .selected-items:focus-visible {
124
+ outline: 2px solid #007bff;
125
+ }
126
+ .ptc-multi-select .selected-items .input-text {
127
+ width: calc(100% - 18px);
128
+ display: -webkit-box;
129
+ -webkit-line-clamp: 1;
130
+ line-clamp: 1;
131
+ -webkit-box-orient: vertical;
132
+ text-overflow: ellipsis;
133
+ }
134
+ .ptc-multi-select .multi-select-icon {
135
+ fill: rgba(0, 0, 0, 0.54);
136
+ position: absolute;
137
+ right: var(--ptc-element-spacing-02);
138
+ width: 18px;
139
+ height: 18px;
140
+ margin: 0 auto;
141
+ }
142
+ .ptc-multi-select .multi-select-icon .multi-arrow-svg {
143
+ transform: translate(-50%, 25%);
144
+ position: relative;
145
+ left: 50%;
146
+ bottom: 25%;
147
+ }
148
+ .ptc-multi-select .dropdown {
149
+ display: none;
150
+ list-style: none;
151
+ padding: 0;
152
+ margin: 0;
153
+ border: 1px solid #ccc;
154
+ max-height: 350px;
155
+ overflow-y: auto;
156
+ position: absolute;
157
+ width: 100%;
158
+ background-color: #fff;
159
+ z-index: 1000;
160
+ /* Custom square for the checkbox */
161
+ /* When checkbox is checked, change background color */
162
+ }
163
+ .ptc-multi-select .dropdown.show {
164
+ display: block;
165
+ }
166
+ .ptc-multi-select .dropdown li {
58
167
  display: flex;
59
168
  align-items: center;
60
169
  padding: 5px 8px;
@@ -63,16 +172,16 @@ ptc-link, ptc-square-card,
63
172
  position: relative;
64
173
  /* Focused item styles */
65
174
  }
66
- .dropdown li:hover, .dropdown li:focus-within {
175
+ .ptc-multi-select .dropdown li:hover, .ptc-multi-select .dropdown li:focus-within {
67
176
  background-color: var(--color-gray-02);
68
177
  }
69
- .dropdown li.selected {
178
+ .ptc-multi-select .dropdown li.selected {
70
179
  background-color: var(--color-gray-02);
71
180
  }
72
- .dropdown li.selected:hover {
181
+ .ptc-multi-select .dropdown li.selected:hover {
73
182
  background-color: var(--color-gray-04);
74
183
  }
75
- .dropdown li label {
184
+ .ptc-multi-select .dropdown li label {
76
185
  display: -webkit-box;
77
186
  font-family: var(--ptc-font-latin);
78
187
  font-size: var(--ptc-font-size-xx-small);
@@ -87,7 +196,91 @@ ptc-link, ptc-square-card,
87
196
  text-overflow: ellipsis;
88
197
  line-height: 24px;
89
198
  }
90
- .dropdown li:focus-within {
199
+ .ptc-multi-select .dropdown li:focus-within {
91
200
  background-color: var(--color-gray-02);
92
201
  outline: none;
202
+ }
203
+ .ptc-multi-select .dropdown li:last-child {
204
+ border-bottom: none;
205
+ }
206
+ .ptc-multi-select .dropdown input[type=checkbox] {
207
+ position: absolute;
208
+ opacity: 0;
209
+ cursor: pointer;
210
+ }
211
+ .ptc-multi-select .dropdown input[type=checkbox]:checked {
212
+ background-color: var(--color-green-07);
213
+ }
214
+ .ptc-multi-select .dropdown label::before {
215
+ content: "";
216
+ position: absolute;
217
+ left: 0;
218
+ top: 5px;
219
+ width: 14px;
220
+ height: 14px;
221
+ background-color: #fff;
222
+ border: 1px solid #ccc;
223
+ box-sizing: border-box;
224
+ }
225
+ .ptc-multi-select .dropdown input[type=checkbox]:checked + label::before {
226
+ background-color: var(--color-green-07);
227
+ border-color: var(--color-green-07);
228
+ }
229
+ .ptc-multi-select .dropdown input[type=checkbox]:checked + label::after {
230
+ content: url("data:image/svg+xml,%3Csvg width='8' height='8' viewBox='0 0 8 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.15341 1.14134C7.0572 1.04719 6.94024 1 6.80262 1C6.66499 1 6.54771 1.04719 6.45158 1.14134L3.06571 4.45979L1.5485 2.96965C1.45197 2.8755 1.33501 2.82831 1.19738 2.82831C1.05976 2.82831 0.942797 2.8755 0.846348 2.96965L0.144437 3.65645C0.0482247 3.75091 0 3.86528 0 4.00004C0 4.13472 0.0482247 4.2494 0.144437 4.34355L2.01277 6.17186L2.71492 6.85866C2.81113 6.95312 2.92809 7 3.06571 7C3.20334 7 3.3203 6.95312 3.41675 6.85866L4.11866 6.17186L7.85556 2.51525C7.95177 2.42086 8 2.30641 8 2.17173C8 2.03705 7.95177 1.9226 7.85556 1.82814L7.15341 1.14134Z' fill='white'/%3E%3C/svg%3E");
231
+ position: absolute;
232
+ left: 3px;
233
+ top: 0px;
234
+ color: white;
235
+ width: 8px;
236
+ height: 24px;
237
+ }
238
+ .ptc-multi-select button.ddl-click-text {
239
+ all: unset;
240
+ cursor: pointer;
241
+ color: var(--color-gray-7);
242
+ text-decoration: underline;
243
+ font-size: var(--ptc-font-size-xx-small);
244
+ font-weight: var(--ptc-font-weight-semibold);
245
+ }
246
+ .ptc-multi-select .tooltip {
247
+ position: absolute;
248
+ transform: translate(0, -12px);
249
+ z-index: 1001;
250
+ padding: 8px;
251
+ color: var(--color-white);
252
+ font-size: var(--ptc-font-size-xxx-small);
253
+ font-weight: var(--ptc-font-weight-semibold);
254
+ background: var(--color-gray-09);
255
+ box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.3);
256
+ border: none;
257
+ border-radius: 2px;
258
+ width: auto;
259
+ height: fit-content;
260
+ text-align: left;
261
+ text-shadow: none;
262
+ white-space: normal;
263
+ }
264
+ .ptc-multi-select .tooltip::after {
265
+ position: absolute;
266
+ content: "";
267
+ bottom: 0px;
268
+ border: 8px solid transparent;
269
+ border-top: 8px solid var(--color-gray-09);
270
+ left: 50%;
271
+ transform: translate(-50%, 100%);
272
+ }
273
+ @media only screen and (min-width: 992px) {
274
+ .ptc-multi-select .tooltip {
275
+ width: 273px;
276
+ transform: translate(-100%, 80%);
277
+ }
278
+ .ptc-multi-select .tooltip::after {
279
+ right: 8px;
280
+ left: auto;
281
+ transform: translateY(100%);
282
+ }
283
+ }
284
+ .ptc-multi-select .tooltip span {
285
+ word-break: initial;
93
286
  }
@@ -128,7 +128,7 @@ ptc-link, ptc-square-card,
128
128
  width: 1.125rem;
129
129
  height: 1.125rem;
130
130
  border: 1px solid var(--color-gray-10);
131
- border-radius: calc(var(--ptc-border-radius-standard) / 2);
131
+ border-radius: calc(var(--ptc-border-radius-standard)/2);
132
132
  transition: background-color var(--ptc-ease-out) var(--ptc-transition-medium), fill var(--ptc-ease-out) var(--ptc-transition-medium), border-color var(--ptc-ease-out) var(--ptc-transition-medium);
133
133
  }
134
134
  .standard-filter .next-button:hover, .standard-filter .previous-button:hover {
@@ -1046,7 +1046,7 @@ ptc-link, ptc-square-card,
1046
1046
  }
1047
1047
  @media only screen and (min-width: 992px) {
1048
1048
  .u-3-col-grid .u-3-col {
1049
- width: calc(33.3333333333% - 10.66666666px);
1049
+ width: calc(33.333333333333% - 10.66666666px);
1050
1050
  }
1051
1051
  }
1052
1052
  .u-3-col-grid.u-col-space-lg {
@@ -1063,7 +1063,7 @@ ptc-link, ptc-square-card,
1063
1063
  }
1064
1064
  @media only screen and (min-width: 992px) {
1065
1065
  .u-3-col-grid.u-col-space-lg .u-3-col {
1066
- width: calc(33.3333333333% - 21.3333333px);
1066
+ width: calc(33.333333333333% - 21.3333333px);
1067
1067
  }
1068
1068
  }
1069
1069
 
@@ -69,7 +69,7 @@ export class PtcReadmore {
69
69
  }
70
70
  render() {
71
71
  const classMap = this.getCssClassMap();
72
- return (h(Host, { class: this.display }, h("div", { class: classMap }, h("input", { type: "checkbox", id: "expanded", onClick: (e) => this.handleClick(e), tabIndex: -1 }), !!this.visibleLines || !!this.visibleLinesCustom ? h("p", { class: `read-more-text ${this.visibleLines}`, style: { WebkitLineClamp: `${this.visibleLinesCustom}` } }, h("slot", null)) : null, h("label", { htmlFor: "expanded", role: "button", class: `${this.zIndex + ' ' + this.readMorePosition} read-more-cta-label` }, h("span", null, this.moreText)))));
72
+ return (h(Host, { class: this.display }, h("div", { class: classMap }, h("input", { type: "checkbox", id: "expanded", onClick: (e) => this.handleClick(e), tabIndex: -1 }), !!this.visibleLines || !!this.visibleLinesCustom ? h("p", { class: `read-more-text ${this.visibleLines}`, style: { WebkitLineClamp: `${this.visibleLinesCustom}` } }, h("slot", null)) : null, h("label", { htmlFor: "expanded", role: "button", class: `${this.zIndex + ' ' + this.readMorePosition} read-more-cta-label mf-listen` }, h("span", null, this.moreText)))));
73
73
  }
74
74
  getCssClassMap() {
75
75
  return {