@ptcwebops/ptcw-design 6.4.19-beta → 6.4.21-beta

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 (163) hide show
  1. package/dist/cjs/event-podcast-slider-example.cjs.entry.js +1 -1
  2. package/dist/cjs/featured-events-slider-example.cjs.entry.js +1 -1
  3. package/dist/cjs/homepage-jumbotron.cjs.entry.js +1 -1
  4. package/dist/cjs/innovator-toggle-container.cjs.entry.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/ptc-button.cjs.entry.js +117 -0
  7. package/dist/cjs/ptc-card-bottom_2.cjs.entry.js +16 -0
  8. package/dist/cjs/ptc-card-content.cjs.entry.js +5 -1
  9. package/dist/cjs/ptc-card_2.cjs.entry.js +1 -1
  10. package/dist/cjs/ptc-case-studies-slider.cjs.entry.js +1 -1
  11. package/dist/cjs/ptc-filter-dropdown_4.cjs.entry.js +1 -1
  12. package/dist/cjs/ptc-form-checkbox_4.cjs.entry.js +1 -1
  13. package/dist/cjs/ptc-homepage-video-background.cjs.entry.js +1 -1
  14. package/dist/cjs/ptc-icon-card-slider-example.cjs.entry.js +1 -1
  15. package/dist/cjs/ptc-icon-component.cjs.entry.js +1 -1
  16. package/dist/cjs/ptc-image-download-strip.cjs.entry.js +1 -1
  17. package/dist/cjs/ptc-nav-card.cjs.entry.js +1 -1
  18. package/dist/cjs/ptc-para.cjs.entry.js +139 -0
  19. package/dist/cjs/ptc-picture.cjs.entry.js +185 -0
  20. package/dist/cjs/ptc-spacer.cjs.entry.js +38 -0
  21. package/dist/cjs/ptc-subnav-v2.cjs.entry.js +99 -80
  22. package/dist/cjs/ptc-title.cjs.entry.js +161 -0
  23. package/dist/cjs/ptc-value-prop-card.cjs.entry.js +1 -1
  24. package/dist/cjs/ptc-white-paper.cjs.entry.js +1 -1
  25. package/dist/cjs/ptcw-design.cjs.js +1 -1
  26. package/dist/cjs/storefront-enhanced-product-list-alt-example.cjs.entry.js +1 -1
  27. package/dist/cjs/storefront-enhanced-product-list-example.cjs.entry.js +1 -1
  28. package/dist/collection/components/innovator-toggle-container/innovator-toggle-container.css +2 -4
  29. package/dist/collection/components/organism-bundles/event-podcast-slider-example/event-podcast-slider-example.css +16 -11
  30. package/dist/collection/components/organism-bundles/featured-events-slider-example/featured-events-slider-example.css +16 -11
  31. package/dist/collection/components/organism-bundles/homepage-jumbotron/homepage-jumbotron.css +16 -11
  32. package/dist/collection/components/organism-bundles/ptc-icon-card-slider-example/ptc-icon-card-slider-example.css +16 -11
  33. package/dist/collection/components/organism-bundles/storefront-enhanced-product-list-example/storefront-enhanced-product-list-example.css +16 -11
  34. package/dist/collection/components/ptc-card/ptc-card.css +1 -15
  35. package/dist/collection/components/ptc-card-content/ptc-card-content.css +25 -1
  36. package/dist/collection/components/ptc-card-content/ptc-card-content.js +22 -0
  37. package/dist/collection/components/ptc-card-wrapper/ptc-card-wrapper.js +16 -0
  38. package/dist/collection/components/ptc-case-studies-slider/ptc-case-studies-slider.css +16 -11
  39. package/dist/collection/components/ptc-filter-dropdown/ptc-filter-dropdown.css +0 -1
  40. package/dist/collection/components/ptc-homepage-video-background/ptc-homepage-video-background.css +1 -2
  41. package/dist/collection/components/ptc-icon-component/ptc-icon-component.css +16 -11
  42. package/dist/collection/components/ptc-image-download-strip/ptc-image-download-strip.css +1 -2
  43. package/dist/collection/components/ptc-nav-card/ptc-nav-card.css +2 -5
  44. package/dist/collection/components/ptc-seo-title/ptc-seo-title.js +3 -3
  45. package/dist/collection/components/ptc-subnav-v2/ptc-subnav-v2.css +20 -6
  46. package/dist/collection/components/ptc-subnav-v2/ptc-subnav-v2.js +100 -82
  47. package/dist/collection/components/ptc-textfield/ptc-textfield.css +1 -1
  48. package/dist/collection/components/ptc-value-prop-card/ptc-value-prop-card.css +1 -2
  49. package/dist/collection/components/ptc-white-paper/ptc-white-paper.css +1 -2
  50. package/dist/custom-elements/index.js +137 -98
  51. package/dist/esm/blog-detail-content_2.entry.js +1 -1
  52. package/dist/esm/blog-detail-layout.entry.js +1 -1
  53. package/dist/esm/blogs-search-section.entry.js +1 -1
  54. package/dist/esm/event-podcast-slider-example.entry.js +1 -1
  55. package/dist/esm/featured-events-slider-example.entry.js +1 -1
  56. package/dist/esm/homepage-jumbotron.entry.js +2 -2
  57. package/dist/esm/homepage-toggled-content.entry.js +1 -1
  58. package/dist/esm/innovator-toggle-container.entry.js +2 -2
  59. package/dist/esm/{interfaces-7c0243be.js → interfaces-4caedd26.js} +1 -1
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/esm/most-popular-news.entry.js +1 -1
  62. package/dist/esm/my-component.entry.js +1 -1
  63. package/dist/esm/ptc-accordion-item.entry.js +1 -1
  64. package/dist/esm/ptc-background-video.entry.js +1 -1
  65. package/dist/esm/ptc-button.entry.js +113 -0
  66. package/dist/esm/ptc-card-bottom_2.entry.js +16 -0
  67. package/dist/esm/ptc-card-content.entry.js +5 -1
  68. package/dist/esm/ptc-card_2.entry.js +1 -1
  69. package/dist/esm/ptc-case-studies-slider.entry.js +1 -1
  70. package/dist/esm/ptc-collapse-list.entry.js +1 -1
  71. package/dist/esm/ptc-filter-dropdown_4.entry.js +1 -1
  72. package/dist/esm/ptc-form-checkbox_4.entry.js +2 -2
  73. package/dist/esm/ptc-homepage-image-feature.entry.js +1 -1
  74. package/dist/esm/ptc-homepage-video-background.entry.js +2 -2
  75. package/dist/esm/ptc-icon-card-slider-example.entry.js +1 -1
  76. package/dist/esm/ptc-icon-card.entry.js +1 -1
  77. package/dist/esm/ptc-icon-component.entry.js +1 -1
  78. package/dist/esm/ptc-image-download-strip.entry.js +1 -1
  79. package/dist/esm/ptc-img.entry.js +1 -1
  80. package/dist/esm/ptc-link.entry.js +1 -1
  81. package/dist/esm/ptc-media-card.entry.js +1 -1
  82. package/dist/esm/ptc-nav-card.entry.js +1 -1
  83. package/dist/esm/ptc-para.entry.js +135 -0
  84. package/dist/esm/ptc-picture.entry.js +181 -0
  85. package/dist/esm/ptc-pricing-packaging-table.entry.js +1 -1
  86. package/dist/esm/ptc-pricing-tabs.entry.js +1 -1
  87. package/dist/esm/ptc-social-icons-footer.entry.js +1 -1
  88. package/dist/esm/ptc-spacer.entry.js +34 -0
  89. package/dist/esm/ptc-subnav-v2.entry.js +99 -80
  90. package/dist/esm/ptc-title.entry.js +157 -0
  91. package/dist/esm/ptc-value-prop-card.entry.js +1 -1
  92. package/dist/esm/ptc-white-paper.entry.js +1 -1
  93. package/dist/esm/ptcw-design.js +1 -1
  94. package/dist/esm/storefront-enhanced-product-list-alt-example.entry.js +1 -1
  95. package/dist/esm/storefront-enhanced-product-list-example.entry.js +1 -1
  96. package/dist/esm/{utils-a64ba942.js → utils-bdd0cc16.js} +1 -1
  97. package/dist/ptcw-design/p-0c69ea52.entry.js +1 -0
  98. package/dist/ptcw-design/{p-ff66587b.entry.js → p-0fbdcd78.entry.js} +1 -1
  99. package/dist/ptcw-design/{p-9ca635fa.entry.js → p-13963d40.entry.js} +1 -1
  100. package/dist/ptcw-design/{p-df66407c.entry.js → p-187ef77b.entry.js} +1 -1
  101. package/dist/ptcw-design/p-1a853854.entry.js +1 -0
  102. package/dist/ptcw-design/{p-1c26f390.entry.js → p-1c63c812.entry.js} +1 -1
  103. package/dist/ptcw-design/p-1f356fcf.entry.js +1 -0
  104. package/dist/ptcw-design/{p-90f1a7af.entry.js → p-26b70120.entry.js} +1 -1
  105. package/dist/ptcw-design/{p-62e3cd51.entry.js → p-26e8ad2e.entry.js} +1 -1
  106. package/dist/ptcw-design/p-312c41b8.entry.js +1 -0
  107. package/dist/ptcw-design/{p-36a3eb03.entry.js → p-3b40bfbf.entry.js} +2 -2
  108. package/dist/ptcw-design/{p-92ad78c5.entry.js → p-3cb011c9.entry.js} +1 -1
  109. package/dist/ptcw-design/{p-c160bda4.entry.js → p-3cfe0126.entry.js} +1 -1
  110. package/dist/ptcw-design/p-3e4861a2.entry.js +1 -0
  111. package/dist/ptcw-design/p-4703e417.entry.js +1 -0
  112. package/dist/ptcw-design/p-4ab3249d.entry.js +1 -0
  113. package/dist/ptcw-design/{p-0df868d2.entry.js → p-4c89d63d.entry.js} +1 -1
  114. package/dist/ptcw-design/{p-2d00fefd.entry.js → p-502f534b.entry.js} +1 -1
  115. package/dist/ptcw-design/{p-1e32a493.entry.js → p-53dee19b.entry.js} +1 -1
  116. package/dist/ptcw-design/{p-f2675bb0.entry.js → p-5a2ed8fb.entry.js} +1 -1
  117. package/dist/ptcw-design/p-6a561487.entry.js +1 -0
  118. package/dist/ptcw-design/p-6b9e4a18.entry.js +1 -0
  119. package/dist/ptcw-design/{p-1519b36f.entry.js → p-6f9f55b3.entry.js} +1 -1
  120. package/dist/ptcw-design/{p-ee1183b2.js → p-711bcdad.js} +1 -1
  121. package/dist/ptcw-design/p-7218fe2c.entry.js +1 -0
  122. package/dist/ptcw-design/p-761a31f8.entry.js +1 -0
  123. package/dist/ptcw-design/p-7ec10d39.entry.js +1 -0
  124. package/dist/ptcw-design/{p-456c5cbb.entry.js → p-9c6cad16.entry.js} +1 -1
  125. package/dist/ptcw-design/p-9da57f76.entry.js +1 -0
  126. package/dist/ptcw-design/{p-5ec17b43.entry.js → p-9efa8199.entry.js} +1 -1
  127. package/dist/ptcw-design/{p-9063956c.entry.js → p-9fca5392.entry.js} +1 -1
  128. package/dist/ptcw-design/{p-46b47ed7.entry.js → p-a4dd4e83.entry.js} +1 -1
  129. package/dist/ptcw-design/p-ac766cb3.entry.js +1 -0
  130. package/dist/ptcw-design/p-ad0e7843.entry.js +1 -0
  131. package/dist/ptcw-design/{p-9fb21bdf.entry.js → p-bfadd78e.entry.js} +1 -1
  132. package/dist/ptcw-design/{p-5cf5b9f8.entry.js → p-c3b27836.entry.js} +1 -1
  133. package/dist/ptcw-design/{p-22cf00e7.js → p-c7e948b2.js} +1 -1
  134. package/dist/ptcw-design/p-cbbe2bba.entry.js +1 -0
  135. package/dist/ptcw-design/p-d6ee094b.entry.js +1 -0
  136. package/dist/ptcw-design/p-d9df1a16.entry.js +1 -0
  137. package/dist/ptcw-design/{p-82f766d2.entry.js → p-e5e1e8fb.entry.js} +1 -1
  138. package/dist/ptcw-design/p-ee81daef.entry.js +1 -0
  139. package/dist/ptcw-design/{p-3572eccc.entry.js → p-ef870202.entry.js} +1 -1
  140. package/dist/ptcw-design/{p-9ef2b1e7.entry.js → p-fb8584e4.entry.js} +1 -1
  141. package/dist/ptcw-design/ptcw-design.esm.js +1 -1
  142. package/dist/types/components/ptc-card-content/ptc-card-content.d.ts +1 -0
  143. package/dist/types/components/ptc-subnav-v2/ptc-subnav-v2.d.ts +8 -5
  144. package/dist/types/components.d.ts +64 -62
  145. package/package.json +101 -101
  146. package/readme.md +23 -23
  147. package/dist/cjs/ptc-button_5.cjs.entry.js +0 -614
  148. package/dist/esm/ptc-button_5.entry.js +0 -606
  149. package/dist/ptcw-design/p-02622aa7.entry.js +0 -1
  150. package/dist/ptcw-design/p-0f6b641c.entry.js +0 -1
  151. package/dist/ptcw-design/p-1f0daed2.entry.js +0 -1
  152. package/dist/ptcw-design/p-2c8faf9a.entry.js +0 -1
  153. package/dist/ptcw-design/p-46c518c8.entry.js +0 -1
  154. package/dist/ptcw-design/p-50569afd.entry.js +0 -1
  155. package/dist/ptcw-design/p-60d001c8.entry.js +0 -1
  156. package/dist/ptcw-design/p-6ac4cfab.entry.js +0 -1
  157. package/dist/ptcw-design/p-8b5549b2.entry.js +0 -1
  158. package/dist/ptcw-design/p-9027d2d9.entry.js +0 -1
  159. package/dist/ptcw-design/p-b79b1e09.entry.js +0 -1
  160. package/dist/ptcw-design/p-bd3d71f1.entry.js +0 -1
  161. package/dist/ptcw-design/p-cc7d5eb7.entry.js +0 -1
  162. package/dist/ptcw-design/p-d391c01b.entry.js +0 -1
  163. package/dist/ptcw-design/p-e7c00e48.entry.js +0 -1
@@ -0,0 +1,185 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-63ddc79c.js');
6
+ const interfaces = require('./interfaces-574e6df7.js');
7
+
8
+ const ptcPictureCss = "h1,h2,h3,h4,h5,h6,p,ul,li,ptc-subnav,ptc-tab-list,ptc-link,ptc-square-card,.hyphenate-text,ptc-footer{word-break:break-word;hyphens:manual;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual}@supports (hyphenate-limit-chars: 12 3 3){h1,h2,h3,h4,h5,h6,p,ul,li,ptc-subnav,ptc-tab-list,ptc-link,ptc-square-card,.hyphenate-text,ptc-footer{hyphens:auto;-webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;hyphenate-limit-chars:12 3 3;hyphenate-limit-lines:2;hyphenate-limit-last:always;hyphenate-limit-zone:6%;-webkit-hyphens:auto;-webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;-webkit-hyphenate-limit-chars:12 3 3;-webkit-hyphenate-limit-lines:2;-moz-hyphens:auto;-moz-hyphenate-limit-chars:12 3 3;-moz-hyphenate-limit-lines:2;-ms-hyphens:auto;-ms-hyphenate-limit-chars:12 3 3;-ms-hyphenate-limit-lines:2}}:host{display:block;overflow:hidden}:host .inline{display:inline}:host .inline-block{display:inline-block}:host .block{display:block}:host(.relative){position:relative}:host(.static){position:static}:host(.absoltue){position:absolute}img{max-width:100%}.cover{-o-object-fit:cover;object-fit:cover}.fill{-o-object-fit:fill;object-fit:fill}.contain{-o-object-fit:contain;object-fit:contain}.scale-down{-o-object-fit:scale-down;object-fit:scale-down}.none{-o-object-fit:none;object-fit:none}.initial{-o-object-fit:initial;object-fit:initial}.inherit{-o-object-fit:inherit;object-fit:inherit}.radius-standard{border-radius:var(--ptc-border-radius-standard)}.radius-large{border-radius:var(--ptc-border-radius-large)}.radius-pill{border-radius:var(--ptc-border-radius-pill)}.radius-circle{border-radius:var(--ptc-border-radius-circle)}.is-full-height{height:100%}.is-full-width{width:100%}:host(.left){text-align:left}:host(.right){text-align:right}:host(.center){text-align:center}";
9
+
10
+ const PtcPicture = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.src = undefined;
14
+ this.alt = "image";
15
+ this.sizeXs = "510x340";
16
+ this.sizeSm = "1240x496";
17
+ this.sizeMd = "1366x500";
18
+ this.sizeLg = "1920x1080";
19
+ this.disableResize = false;
20
+ this.oldSrc = undefined;
21
+ this.imagePosition = "static";
22
+ this.borderRadius = undefined;
23
+ this.height = undefined;
24
+ this.width = undefined;
25
+ this.objectFit = "cover";
26
+ this.isFullHeight = false;
27
+ this.isFullWidth = false;
28
+ this.styles = undefined;
29
+ this.imageAlignment = "left";
30
+ this.maxWidth = undefined;
31
+ this.displayImage = "block";
32
+ }
33
+ WindowResize() {
34
+ this.addIntersectionObserver();
35
+ }
36
+ componentWillLoad() {
37
+ if (this.disableResize) {
38
+ this.sizeXs = undefined;
39
+ this.sizeSm = undefined;
40
+ this.sizeMd = undefined;
41
+ this.sizeLg = undefined;
42
+ }
43
+ }
44
+ componentDidLoad() {
45
+ this.addIntersectionObserver();
46
+ }
47
+ componentWillUpdate() {
48
+ if (this.src !== this.oldSrc) {
49
+ this.addIntersectionObserver();
50
+ }
51
+ this.oldSrc = this.src;
52
+ }
53
+ //lazy-loading
54
+ addIntersectionObserver() {
55
+ if (!this.src) {
56
+ return;
57
+ }
58
+ if ("IntersectionObserver" in window) {
59
+ let lazyLoadImages = new IntersectionObserver((entries) => {
60
+ entries.forEach((entry) => {
61
+ if (entry.isIntersecting) {
62
+ const image = this.el.shadowRoot.querySelector("img");
63
+ image.src = this.setResponsiveBg();
64
+ lazyLoadImages.unobserve(image);
65
+ }
66
+ });
67
+ });
68
+ let tempImg = this.el.shadowRoot.querySelector("img");
69
+ if (tempImg) {
70
+ lazyLoadImages.observe(tempImg);
71
+ }
72
+ this.observer = lazyLoadImages;
73
+ }
74
+ else {
75
+ // fall back to setTimeout for Safari and IE
76
+ setTimeout(() => {
77
+ const image = this.el.shadowRoot.querySelector("img");
78
+ image.src = this.setResponsiveBg();
79
+ image.onload = () => {
80
+ image.removeAttribute("data-src");
81
+ };
82
+ }, 5000);
83
+ }
84
+ }
85
+ //responsive image
86
+ setResponsiveBg() {
87
+ // Define local variables
88
+ let backgrounds = (this.el.shadowRoot || document).querySelectorAll("img"), el, elData, currentBreakpoint = this.getCurrentBreakPoints();
89
+ for (var i = 0, len = backgrounds.length; i < len; i++) {
90
+ // Set current variables
91
+ el = backgrounds[i];
92
+ elData = el.getAttribute("data-" + currentBreakpoint);
93
+ if (elData !== null) {
94
+ return elData;
95
+ }
96
+ else {
97
+ if (typeof console == "object") {
98
+ console.warn("Data attribute: data-" +
99
+ currentBreakpoint +
100
+ " not found on element:\n\n" +
101
+ el.outerHTML +
102
+ "\n\n\n");
103
+ }
104
+ }
105
+ }
106
+ }
107
+ //manually load image
108
+ async LoadImage() {
109
+ const image = this.el.shadowRoot.querySelector("img");
110
+ if (!image) {
111
+ return;
112
+ }
113
+ if (!image.src) {
114
+ image.src = this.setResponsiveBg();
115
+ image.onload = () => {
116
+ image.removeAttribute("data-src");
117
+ };
118
+ }
119
+ if (this.observer) {
120
+ this.observer.unobserve(image);
121
+ }
122
+ }
123
+ render() {
124
+ const classMap = this.getCssClassMap();
125
+ const classMapHost = this.getCssClassMapHost();
126
+ return (index.h(index.Host, { class: classMapHost }, this.styles && index.h("style", null, this.styles), index.h("img", Object.assign({ class: classMap, "data-xs": !!this.sizeXs ? `${this.src}` : `${this.src}`, "data-sm": !!this.sizeSm ? `${this.src}` : `${this.src}`, "data-md": !!this.sizeMd ? `${this.src}` : `${this.src}`, "data-lg": !!this.sizeLg ? `${this.src}` : `${this.src}` }, (!!this.width ? { width: this.width } : {}), (!!this.height ? { height: this.height } : {}), { alt: this.alt, style: Object.assign({}, (!!this.maxWidth
127
+ ? { maxWidth: this.maxWidth + "px" }
128
+ : {})) })), index.h("slot", null)));
129
+ }
130
+ getCurrentBreakPoints() {
131
+ // Define local variables
132
+ let doc = window.document, temp = doc.createElement("div"), env;
133
+ // Append test node
134
+ doc.body.appendChild(temp);
135
+ // Loop through breakpoints
136
+ for (let i = interfaces.ResponsivePictureVariables.envs.length - 1; i >= 0; i--) {
137
+ env = interfaces.ResponsivePictureVariables.envs[i];
138
+ // Add classes
139
+ temp.className = "hidden-" + env;
140
+ // Found breakpoint
141
+ if (temp.offsetParent === null) {
142
+ // Remove our test node
143
+ doc.body.removeChild(temp);
144
+ // Return current breakpoint
145
+ return env;
146
+ }
147
+ }
148
+ // Breakpoint not found, try fallback
149
+ doc.body.removeChild(temp);
150
+ return this.getFallbackBreakpoint();
151
+ }
152
+ getFallbackBreakpoint() {
153
+ if (window.matchMedia("(min-width: 992px)").matches) {
154
+ return "lg";
155
+ }
156
+ else if (window.matchMedia("(min-width: 768px)").matches) {
157
+ return "md";
158
+ }
159
+ else if (window.matchMedia("(min-width: 576px)").matches) {
160
+ return "sm";
161
+ }
162
+ else {
163
+ return "xs";
164
+ }
165
+ }
166
+ getCssClassMap() {
167
+ return {
168
+ [this.borderRadius]: this.borderRadius ? true : false,
169
+ [this.objectFit]: true,
170
+ [this.isFullHeight ? "is-full-height" : "is-normal-height"]: true,
171
+ [this.isFullWidth ? "is-full-width" : "is-normal-width"]: true,
172
+ [this.displayImage]: true,
173
+ };
174
+ }
175
+ getCssClassMapHost() {
176
+ return {
177
+ [this.imagePosition]: true,
178
+ [this.imageAlignment]: true,
179
+ };
180
+ }
181
+ get el() { return index.getElement(this); }
182
+ };
183
+ PtcPicture.style = ptcPictureCss;
184
+
185
+ exports.ptc_picture = PtcPicture;
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-63ddc79c.js');
6
+
7
+ const ptcSpacerCss = ":host{box-sizing:border-box;padding:0;margin:0;background:transparent;border:0;-moz-appearance:none;-webkit-appearance:none;appearance:none;position:relative;display:block;width:12px;min-width:12px;height:12px}@media (min-width: 36em){:host{width:16px;min-width:16px;height:16px}}:host(.ptc-spacer-horizontal){display:inline-block;height:100% !important}:host(.ptc-spacer-horizontal.xx-small){width:4px;min-width:4px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.xx-small){width:4px;min-width:4px}}:host(.ptc-spacer-horizontal.x-small){width:4px;min-width:4px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.x-small){width:8px;min-width:8px}}:host(.ptc-spacer-horizontal.small){width:8px;min-width:8px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.small){width:12px;min-width:12px}}:host(.ptc-spacer-horizontal.medium){height:100%}:host(.ptc-spacer-horizontal.large){width:16px;min-width:16px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.large){width:20px;min-width:20px}}:host(.ptc-spacer-horizontal.x-large){width:20px;min-width:20px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.x-large){width:28px;min-width:28px}}:host(.ptc-spacer-horizontal.xx-large){width:28px;min-width:28px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.xx-large){width:36px;min-width:36px}}:host(.ptc-spacer-horizontal.xxx-large){width:36px;min-width:36px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.xxx-large){width:48px;min-width:48px}}:host(.ptc-spacer-horizontal.xxxx-large){width:48px;min-width:48px;height:100%}@media (min-width: 36em){:host(.ptc-spacer-horizontal.xxxx-large){width:72px;min-width:72px}}:host(.ptc-spacer-vertical.xx-small){width:100%;height:4px;min-height:4px}:host(.ptc-spacer-vertical.x-small){width:100%;height:4px;min-height:4px}@media (min-width: 36em){:host(.ptc-spacer-vertical.x-small){height:8px;min-height:8px}}:host(.ptc-spacer-vertical.small){width:100%;height:8px;min-height:8px}@media (min-width: 36em){:host(.ptc-spacer-vertical.small){height:12px;min-height:12px}}:host(.ptc-spacer-vertical.medium){width:100%}:host(.ptc-spacer-vertical.large){width:100%;height:16px;min-height:16px}@media (min-width: 36em){:host(.ptc-spacer-vertical.large){height:20px;min-height:20px}}:host(.ptc-spacer-vertical.x-large){width:100%;height:20px;min-height:20px}@media (min-width: 36em){:host(.ptc-spacer-vertical.x-large){height:28px;min-height:28px}}:host(.ptc-spacer-vertical.xx-large){width:100%;height:28px;min-height:28px}@media (min-width: 36em){:host(.ptc-spacer-vertical.xx-large){height:36px;min-height:36px}}:host(.ptc-spacer-vertical.xxx-large){width:100%;height:36px;min-height:36px}@media (min-width: 36em){:host(.ptc-spacer-vertical.xxx-large){height:48px;min-height:48px}}:host(.ptc-spacer-vertical.xxxx-large){width:100%;height:48px;min-height:48px}@media (min-width: 36em){:host(.ptc-spacer-vertical.xxxx-large){height:72px;min-height:72px}}:host(.ptc-spacer-vertical.space-144){width:100%;height:144px;min-height:144px}:host(.ptc-spacer-vertical.space-120){width:100%;height:120px;min-height:120px}:host(.ptc-spacer-vertical.space-128){width:100%;height:128px;min-height:128px}:host(.ptc-spacer-xx-small){display:none}@media (max-width: 22.5em){:host(.ptc-spacer-xx-small){display:block}}:host(.ptc-spacer-x-small){display:none}@media (max-width: 35.99em){:host(.ptc-spacer-x-small){display:block}}:host(.ptc-spacer-small){display:none}@media (min-width: 36em){:host(.ptc-spacer-small){display:block}}:host(.ptc-spacer-medium){display:none}@media (min-width: 48em){:host(.ptc-spacer-medium){display:block}}:host(.ptc-spacer-large){display:none}@media (min-width: 62em){:host(.ptc-spacer-large){display:block}}:host(.ptc-spacer-x-large){display:none}@media (min-width: 64.0625em){:host(.ptc-spacer-x-large){display:block}}:host(.ptc-spacer-xx-large){display:none}@media (min-width: 75em){:host(.ptc-spacer-xx-large){display:block}}:host(.ptc-spacer-xxx-large){display:none}@media (min-width: 90em){:host(.ptc-spacer-xxx-large){display:block}}";
8
+
9
+ const PtcSpacer = class {
10
+ constructor(hostRef) {
11
+ index.registerInstance(this, hostRef);
12
+ this.breakpoint = "";
13
+ this.size = "medium";
14
+ this.direction = "vertical";
15
+ }
16
+ render() {
17
+ const classMap = this.getCssClassMap();
18
+ return index.h(index.Host, { class: classMap });
19
+ }
20
+ getCssClassMap() {
21
+ return {
22
+ [this.size]: true,
23
+ ["ptc-spacer-horizontal"]: this.direction === "horizontal",
24
+ ["ptc-spacer-vertical"]: this.direction === "vertical",
25
+ ["ptc-spacer-xx-small"]: this.breakpoint === "xx-small",
26
+ ["ptc-spacer-x-small"]: this.breakpoint === "x-small",
27
+ ["ptc-spacer-small"]: this.breakpoint === "small",
28
+ ["ptc-spacer-medium"]: this.breakpoint === "medium",
29
+ ["ptc-spacer-large"]: this.breakpoint === "large",
30
+ ["ptc-spacer-x-large"]: this.breakpoint === "x-large",
31
+ ["ptc-spacer-xx-large"]: this.breakpoint === "xx-large",
32
+ ["ptc-spacer-xxx-large"]: this.breakpoint === "xxx-large",
33
+ };
34
+ }
35
+ };
36
+ PtcSpacer.style = ptcSpacerCss;
37
+
38
+ exports.ptc_spacer = PtcSpacer;
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-63ddc79c.js');
6
6
 
7
- const ptcSubnavV2Css = "h1,h2,h3,h4,h5,h6,p,ul,li,ptc-subnav,ptc-tab-list,ptc-link,ptc-square-card,.hyphenate-text,ptc-footer{word-break:break-word;hyphens:manual;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual}@supports (hyphenate-limit-chars: 12 3 3){h1,h2,h3,h4,h5,h6,p,ul,li,ptc-subnav,ptc-tab-list,ptc-link,ptc-square-card,.hyphenate-text,ptc-footer{hyphens:auto;-webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;hyphenate-limit-chars:12 3 3;hyphenate-limit-lines:2;hyphenate-limit-last:always;hyphenate-limit-zone:6%;-webkit-hyphens:auto;-webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;-webkit-hyphenate-limit-chars:12 3 3;-webkit-hyphenate-limit-lines:2;-moz-hyphens:auto;-moz-hyphenate-limit-chars:12 3 3;-moz-hyphenate-limit-lines:2;-ms-hyphens:auto;-ms-hyphenate-limit-chars:12 3 3;-ms-hyphenate-limit-lines:2}}:host .mobile-dropdown-container .mobile-dropdown-button,:host .subnav-menu-left .overflow-menu-container .overflow-button,:host .subnav-menu-left ul.desktop-menu li a{color:var(--color-gray-07);text-decoration:none;padding:8px 12px;font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-bold);line-height:var(--ptc-line-height-densest);display:flex;align-items:center;position:relative;border-bottom:3px solid transparent;height:100%;box-sizing:border-box}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown{position:absolute;top:100%;right:0;background:var(--color-white);border-radius:var(--ptc-border-radius-standard);box-shadow:var(--ptc-shadow-x-large);min-width:200px;z-index:1001;padding:14px 0;margin-top:-4px;max-width:312px;width:-moz-max-content;width:max-content}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item,:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a{display:block;padding:10px 32px 10px 24px;color:var(--color-gray-07);text-decoration:none;font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-bold);line-height:var(--ptc-line-height-densest);transition:all 0.2s ease;position:relative;border:none}:host{position:relative;display:block;font-family:var(--ptc-font-latin);background-color:var(--color-standard-gray);box-shadow:var(--ptc-shadow-small);transition:all 0.3s ease-in-out}:host.sticky-transition{transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease-in-out, background-color 0.3s ease-in-out;box-shadow:0 2px 8px rgba(0, 0, 0, 0.15)}:host .subnav-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:0 24px;margin:0 auto;max-width:1200px;gap:24px}@media only screen and (min-width: 768px){:host .subnav-container{flex-wrap:wrap;gap:48px}}@media only screen and (min-width: 1200px){:host .subnav-container{padding:0;max-width:1136px}}@media only screen and (min-width: 1440px){:host .subnav-container{padding:0;max-width:1200px}}:host .subnav-container.full-width{justify-content:flex-start}:host .subnav-menu-left{display:flex;align-items:center;flex:1;align-self:stretch}@media only screen and (min-width: 768px){:host .subnav-menu-left{justify-content:flex-start}}:host .subnav-menu-left ul.desktop-menu{list-style:none;padding:0;margin:0;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;align-self:stretch}@media only screen and (min-width: 768px){:host .subnav-menu-left ul.desktop-menu{justify-content:flex-start;gap:32px}}:host .subnav-menu-left ul.desktop-menu li{display:inline-block;height:100%}@media only screen and (min-width: 768px){:host .subnav-menu-left ul.desktop-menu li a{padding:20px 0}}:host .subnav-menu-left ul.desktop-menu li a:hover{color:var(--color-gray-10)}:host .subnav-menu-left ul.desktop-menu li a.active{color:var(--color-gray-10);border-bottom:3px solid var(--color-green-07)}:host .subnav-menu-left ul.desktop-menu li a:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left .overflow-menu-container{position:relative;display:none}@media only screen and (min-width: 768px){:host .subnav-menu-left .overflow-menu-container{display:inline-block}}:host .subnav-menu-left .overflow-menu-container .overflow-button{background:none;border:none;padding:20px 0;cursor:pointer;justify-content:center;min-width:32px}:host .subnav-menu-left .overflow-menu-container .overflow-button:hover{color:var(--color-gray-10)}:host .subnav-menu-left .overflow-menu-container .overflow-button:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots{border-radius:2px;border:1px solid var(--color-gray-07);line-height:1;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots:hover{background-color:var(--color-gray-04);border-color:var(--color-gray-04)}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots:hover svg circle{fill:var(--color-gray-10)}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left .overflow-menu-container .overflow-button[aria-expanded],:host .subnav-menu-left .overflow-menu-container .overflow-button.selected-active{border-bottom:3px solid var(--color-green-07)}:host .subnav-menu-left .overflow-menu-container .overflow-button[aria-expanded] .overflow-dots,:host .subnav-menu-left .overflow-menu-container .overflow-button.selected-active .overflow-dots{background-color:var(--color-green-07);border-color:var(--color-green-07)}:host .subnav-menu-left .overflow-menu-container .overflow-button[aria-expanded] .overflow-dots svg circle,:host .subnav-menu-left .overflow-menu-container .overflow-button.selected-active .overflow-dots svg circle{fill:var(--color-white)}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a:hover{background-color:var(--color-gray-02);color:var(--color-gray-10)}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a.active{color:var(--color-gray-10);border-bottom:none}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a.active::before{content:\"\";display:block;width:2px;height:100%;background-color:var(--color-green-07);position:absolute;left:16px;top:0}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left.full-width{flex:1;width:100%;justify-content:flex-start}:host .subnav-menu-left.full-width .desktop-menu{width:100%}:host .mobile-dropdown-container{position:relative;display:block;height:100%;box-sizing:border-box}@media only screen and (min-width: 768px){:host .mobile-dropdown-container{display:none !important}}:host .mobile-dropdown-container .mobile-dropdown-button{background:transparent;border:none;border-bottom:3px solid var(--color-green-07);padding:20px 0;justify-content:center;gap:10px;cursor:pointer}:host .mobile-dropdown-container .mobile-dropdown-button:hover{border-color:var(--color-gray-04);color:var(--color-gray-10)}:host .mobile-dropdown-container .mobile-dropdown-button:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .mobile-dropdown-container .mobile-dropdown-button[aria-expanded]{border-color:var(--color-green-07);color:var(--color-gray-10)}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-selected-item{flex:1;text-align:left;color:var(--color-gray-07);font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-bold);line-height:var(--ptc-line-height-densest);display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-width:100%}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-arrow{display:flex;align-items:center;justify-content:center;transition:transform 0.2s ease}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-arrow svg{transition:transform 0.2s ease}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-arrow.rotated svg{transform:rotate(180deg)}:host .mobile-dropdown-container .mobile-dropdown{position:absolute;top:calc(100% - 4px);background:var(--color-white);border:1px solid var(--color-gray-02);border-radius:var(--ptc-border-radius-standard);box-shadow:var(--ptc-shadow-medium);z-index:1001;margin:4px 0 0 0;overflow-y:auto;min-width:280px;width:-moz-fit-content;width:fit-content;list-style:none;padding:14px 0}:host .mobile-dropdown-container .mobile-dropdown li{display:block}:host .mobile-dropdown-container .mobile-dropdown li:last-child{border-bottom:none}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item{width:100%;background:none;text-align:left;cursor:pointer;word-break:break-word;display:block}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item.active{color:var(--color-gray-10)}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item.active::before{content:\"\";display:block;width:2px;height:100%;background-color:var(--color-green-07);position:absolute;left:16px;top:0}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-right{max-width:50%;padding:12px 0}@media only screen and (min-width: 768px){:host .subnav-menu-right{margin-left:48px;width:auto;max-width:300px}}";
7
+ const ptcSubnavV2Css = "h1,h2,h3,h4,h5,h6,p,ul,li,ptc-subnav,ptc-tab-list,ptc-link,ptc-square-card,.hyphenate-text,ptc-footer{word-break:break-word;hyphens:manual;-webkit-hyphens:manual;-moz-hyphens:manual;-ms-hyphens:manual}@supports (hyphenate-limit-chars: 12 3 3){h1,h2,h3,h4,h5,h6,p,ul,li,ptc-subnav,ptc-tab-list,ptc-link,ptc-square-card,.hyphenate-text,ptc-footer{hyphens:auto;-webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;hyphenate-limit-chars:12 3 3;hyphenate-limit-lines:2;hyphenate-limit-last:always;hyphenate-limit-zone:6%;-webkit-hyphens:auto;-webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;-webkit-hyphenate-limit-chars:12 3 3;-webkit-hyphenate-limit-lines:2;-moz-hyphens:auto;-moz-hyphenate-limit-chars:12 3 3;-moz-hyphenate-limit-lines:2;-ms-hyphens:auto;-ms-hyphenate-limit-chars:12 3 3;-ms-hyphenate-limit-lines:2}}:host .mobile-dropdown-container .mobile-dropdown-button,:host .subnav-menu-left .overflow-menu-container .overflow-button,:host .subnav-menu-left ul.desktop-menu li a{color:var(--color-gray-07);text-decoration:none;padding:8px 12px;text-align:center;font-family:var(--ptc-font-latin);font-style:var(--ptc-font-style-normal);font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-bold);line-height:18px;display:flex;align-items:center;position:relative;border-bottom:3px solid transparent;height:100%;box-sizing:border-box}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown{position:absolute;top:100%;background:var(--color-white);border-radius:var(--ptc-border-radius-standard);box-shadow:var(--ptc-shadow-x-large);min-width:200px;z-index:1001;padding:14px 0;margin-top:-4px;max-width:312px;width:-moz-max-content;width:max-content}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item,:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a{display:block;padding:10px 32px 10px 24px;color:var(--color-gray-07);text-decoration:none;font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-bold);line-height:var(--ptc-line-height-densest);transition:all 0.2s ease;position:relative;border:none}:host{position:relative;display:block;font-family:var(--ptc-font-latin);background-color:var(--color-standard-gray);box-shadow:var(--ptc-shadow-small);transition:all 0.3s ease-in-out}:host.sticky-transition{transition:transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease-in-out, background-color 0.3s ease-in-out;box-shadow:0 2px 8px rgba(0, 0, 0, 0.15)}:host .subnav-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:0 24px;margin:0 auto;max-width:1200px;gap:24px}@media only screen and (min-width: 768px){:host .subnav-container{flex-wrap:wrap;gap:48px}}@media only screen and (min-width: 1200px){:host .subnav-container{padding:0;max-width:1136px}}@media only screen and (min-width: 1440px){:host .subnav-container{padding:0;max-width:1200px}}:host .subnav-container.full-width{justify-content:flex-start}:host .subnav-menu-left{display:flex;align-items:center;flex:1;align-self:stretch}@media only screen and (min-width: 768px){:host .subnav-menu-left{justify-content:flex-start}}:host .subnav-menu-left ul.desktop-menu{list-style:none;padding:0;margin:0;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;align-self:stretch}@media only screen and (min-width: 768px){:host .subnav-menu-left ul.desktop-menu{justify-content:flex-start;gap:32px}}:host .subnav-menu-left ul.desktop-menu li{display:inline-block;height:100%}@media only screen and (min-width: 768px){:host .subnav-menu-left ul.desktop-menu li a{padding:20px 0 17px 0}}:host .subnav-menu-left ul.desktop-menu li a:hover{color:var(--color-gray-10)}:host .subnav-menu-left ul.desktop-menu li a.active{color:var(--color-gray-10);border-bottom:3px solid var(--color-green-07)}:host .subnav-menu-left ul.desktop-menu li a:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left .overflow-menu-container{position:relative;display:none}@media only screen and (min-width: 768px){:host .subnav-menu-left .overflow-menu-container{display:inline-block}}:host .subnav-menu-left .overflow-menu-container .overflow-button{background:none;border:none;padding:20px 0 17px 0;cursor:pointer;justify-content:center;min-width:32px;border-bottom:3px solid transparent;box-sizing:border-box}:host .subnav-menu-left .overflow-menu-container .overflow-button:hover{color:var(--color-gray-10)}:host .subnav-menu-left .overflow-menu-container .overflow-button:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots{border-radius:2px;border:1px solid var(--color-gray-07);line-height:1;width:18px;height:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;box-sizing:border-box}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots:hover{background-color:var(--color-gray-04);border-color:var(--color-gray-04)}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots:hover svg circle{fill:var(--color-gray-10)}:host .subnav-menu-left .overflow-menu-container .overflow-button .overflow-dots:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left .overflow-menu-container .overflow-button[aria-expanded],:host .subnav-menu-left .overflow-menu-container .overflow-button.selected-active{border-bottom-color:var(--color-green-07)}:host .subnav-menu-left .overflow-menu-container .overflow-button[aria-expanded] .overflow-dots,:host .subnav-menu-left .overflow-menu-container .overflow-button.selected-active .overflow-dots{background-color:var(--color-green-07);border-color:var(--color-green-07)}:host .subnav-menu-left .overflow-menu-container .overflow-button[aria-expanded] .overflow-dots svg circle,:host .subnav-menu-left .overflow-menu-container .overflow-button.selected-active .overflow-dots svg circle{fill:var(--color-white)}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown.align-right{left:auto;right:-2px}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown.align-left{left:0;right:auto}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a:hover{background-color:var(--color-gray-02);color:var(--color-gray-10)}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a.active{color:var(--color-gray-10);border-bottom:none}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a.active::before{content:\"\";display:block;width:2px;height:100%;background-color:var(--color-green-07);position:absolute;left:16px;top:0}:host .subnav-menu-left .overflow-menu-container .overflow-dropdown a:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-left.full-width{flex:1;width:100%;justify-content:flex-start}:host .subnav-menu-left.full-width .desktop-menu{width:100%}:host .mobile-dropdown-container{position:relative;display:block;height:100%;box-sizing:border-box}@media only screen and (min-width: 768px){:host .mobile-dropdown-container{display:none !important}}:host .mobile-dropdown-container .mobile-dropdown-button{background:transparent;border:none;border-bottom:3px solid var(--color-green-07);padding:20px 0 17px 0;justify-content:center;gap:10px;cursor:pointer}:host .mobile-dropdown-container .mobile-dropdown-button:hover{border-color:var(--color-gray-04);color:var(--color-gray-10)}:host .mobile-dropdown-container .mobile-dropdown-button:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .mobile-dropdown-container .mobile-dropdown-button[aria-expanded]{border-color:var(--color-green-07);color:var(--color-gray-10)}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-selected-item{flex:1;text-align:left;color:var(--color-gray-07);font-size:var(--ptc-font-size-xx-small);font-weight:var(--ptc-font-weight-bold);line-height:var(--ptc-line-height-densest);display:-webkit-box;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;max-width:100%}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-arrow{display:flex;align-items:center;justify-content:center;transition:transform 0.2s ease}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-arrow svg{transition:transform 0.2s ease}:host .mobile-dropdown-container .mobile-dropdown-button .mobile-arrow.rotated svg{transform:rotate(180deg)}:host .mobile-dropdown-container .mobile-dropdown{position:absolute;top:calc(100% - 4px);background:var(--color-white);border:1px solid var(--color-gray-02);border-radius:var(--ptc-border-radius-standard);box-shadow:var(--ptc-shadow-medium);z-index:1001;margin:4px 0 0 0;overflow-y:auto;min-width:280px;width:-moz-fit-content;width:fit-content;list-style:none;padding:14px 0}:host .mobile-dropdown-container .mobile-dropdown li{display:block}:host .mobile-dropdown-container .mobile-dropdown li:last-child{border-bottom:none}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item{width:100%;background:none;text-align:left;cursor:pointer;word-break:break-word;display:block;box-sizing:border-box}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item.active{color:var(--color-gray-10)}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item.active::before{content:\"\";display:block;width:2px;height:100%;background-color:var(--color-green-07);position:absolute;left:16px;top:0}:host .mobile-dropdown-container .mobile-dropdown li .mobile-dropdown-item:focus-visible{border-radius:var(--ptc-border-radius-standard);outline:5px solid var(--keyboard-nav-outline)}:host .subnav-menu-right{max-width:50%;padding:12px 0}@media only screen and (min-width: 768px){:host .subnav-menu-right{margin-left:48px;width:auto;max-width:300px}}";
8
8
 
9
9
  const PtcSubnavV2 = class {
10
10
  constructor(hostRef) {
@@ -13,6 +13,7 @@ const PtcSubnavV2 = class {
13
13
  this.isSticky = false;
14
14
  this.originalTop = 0;
15
15
  this.placeholderElement = null;
16
+ this.measurementElement = null;
16
17
  this.handleClickOutside = (event) => {
17
18
  if (!this.el.contains(event.target)) {
18
19
  this.showOverflowMenu = false;
@@ -52,13 +53,6 @@ const PtcSubnavV2 = class {
52
53
  // Only update if different from current active
53
54
  if (activeSection !== this.currentActive) {
54
55
  this.currentActive = activeSection;
55
- // Update mobile selected item if in mobile mode
56
- if (this.isMobile) {
57
- const activeItem = navItems.find((item) => item.id === activeSection);
58
- if (activeItem) {
59
- this.selectedMobileItem = activeItem;
60
- }
61
- }
62
56
  }
63
57
  this.scrollThrottleTimeout = null;
64
58
  }, 16); // ~60fps throttling
@@ -131,6 +125,9 @@ const PtcSubnavV2 = class {
131
125
  // Update placeholder height if sticky and resized
132
126
  const currentHeight = this.el.offsetHeight;
133
127
  this.placeholderElement.style.height = `${currentHeight}px`;
128
+ // Update originalTop based on placeholder position (layout may have changed)
129
+ const placeholderRect = this.placeholderElement.getBoundingClientRect();
130
+ this.originalTop = placeholderRect.top + window.scrollY;
134
131
  }
135
132
  };
136
133
  this.setupIntersectionObserver = () => {
@@ -167,13 +164,6 @@ const PtcSubnavV2 = class {
167
164
  const sectionId = mostVisibleSection.target.id;
168
165
  if (sectionId && sectionId !== this.currentActive) {
169
166
  this.currentActive = sectionId;
170
- // Update mobile selected item if in mobile mode
171
- if (this.isMobile) {
172
- const activeItem = navItems.find((item) => item.id === sectionId);
173
- if (activeItem) {
174
- this.selectedMobileItem = activeItem;
175
- }
176
- }
177
167
  }
178
168
  }
179
169
  }, 100); // Increased debounce time for better performance
@@ -190,6 +180,24 @@ const PtcSubnavV2 = class {
190
180
  }
191
181
  });
192
182
  };
183
+ this.setupResizeObserver = () => {
184
+ // Observe the parent element for layout changes
185
+ this.resizeObserver = new ResizeObserver(() => {
186
+ // Recalculate sticky position when parent layout changes
187
+ if (!this.isSticky) {
188
+ this.initializeStickyPosition();
189
+ }
190
+ else if (this.placeholderElement) {
191
+ // If sticky, update originalTop based on placeholder position
192
+ const placeholderRect = this.placeholderElement.getBoundingClientRect();
193
+ this.originalTop = placeholderRect.top + window.scrollY;
194
+ }
195
+ });
196
+ // Observe the element's parent or the element itself
197
+ if (this.el.parentElement) {
198
+ this.resizeObserver.observe(this.el.parentElement);
199
+ }
200
+ };
193
201
  this.extractNavItemsFromSlots = () => {
194
202
  const slotElement = this.el.querySelector('[slot="nav-items"]');
195
203
  if (!slotElement)
@@ -229,9 +237,6 @@ const PtcSubnavV2 = class {
229
237
  console.warn("No navigation items found in slots or props for ptc-subnav-v2");
230
238
  return [];
231
239
  };
232
- this.calculateMobileDropdownItems = () => {
233
- this.mobileDropdownItems = this.getNavItems();
234
- };
235
240
  this.hasActiveOverflowItem = () => {
236
241
  return this.overflowItems.some((item) => item.id === this.currentActive);
237
242
  };
@@ -245,7 +250,6 @@ const PtcSubnavV2 = class {
245
250
  if (navItems.length === 0) {
246
251
  this.visibleItems = [];
247
252
  this.overflowItems = [];
248
- this.selectedMobileItem = null;
249
253
  return;
250
254
  }
251
255
  // Check if we're in mobile mode (below 767px)
@@ -259,7 +263,6 @@ const PtcSubnavV2 = class {
259
263
  // On mobile, show only the current active item
260
264
  const activeItem = navItems.find((item) => item.id === this.currentActive) ||
261
265
  navItems[0];
262
- this.selectedMobileItem = activeItem;
263
266
  this.visibleItems = [activeItem];
264
267
  this.overflowItems = navItems.filter((item) => item.id !== activeItem.id);
265
268
  }
@@ -280,19 +283,21 @@ const PtcSubnavV2 = class {
280
283
  }
281
284
  let visibleCount = 0;
282
285
  let totalWidth = 0;
283
- // Create temporary elements to measure width
284
- const tempContainer = document.createElement("div");
285
- tempContainer.style.position = "absolute";
286
- tempContainer.style.visibility = "hidden";
287
- tempContainer.style.whiteSpace = "nowrap";
288
- tempContainer.style.fontSize = "14px";
289
- tempContainer.style.fontWeight = "700";
290
- tempContainer.style.padding = "20px 0 20px 0";
291
- document.body.appendChild(tempContainer);
286
+ // Create or reuse measurement element
287
+ if (!this.measurementElement) {
288
+ this.measurementElement = document.createElement("div");
289
+ this.measurementElement.style.position = "absolute";
290
+ this.measurementElement.style.visibility = "hidden";
291
+ this.measurementElement.style.whiteSpace = "nowrap";
292
+ this.measurementElement.style.fontSize = "14px";
293
+ this.measurementElement.style.fontWeight = "700";
294
+ this.measurementElement.style.padding = "20px 0 20px 0";
295
+ document.body.appendChild(this.measurementElement);
296
+ }
292
297
  for (let i = 0; i < navItems.length; i++) {
293
298
  const item = navItems[i];
294
- tempContainer.textContent = item.label;
295
- const itemWidth = tempContainer.offsetWidth + 32; // 32px for gap
299
+ this.measurementElement.textContent = item.label;
300
+ const itemWidth = this.measurementElement.offsetWidth + 32; // 32px for gap
296
301
  if (totalWidth + itemWidth <= availableWidth) {
297
302
  totalWidth += itemWidth;
298
303
  visibleCount++;
@@ -301,7 +306,6 @@ const PtcSubnavV2 = class {
301
306
  break;
302
307
  }
303
308
  }
304
- document.body.removeChild(tempContainer);
305
309
  this.visibleItems = navItems.slice(0, visibleCount);
306
310
  this.overflowItems = navItems.slice(visibleCount);
307
311
  }
@@ -310,19 +314,27 @@ const PtcSubnavV2 = class {
310
314
  };
311
315
  this.toggleOverflowMenu = () => {
312
316
  this.showOverflowMenu = !this.showOverflowMenu;
317
+ // After opening, measure and decide alignment to avoid viewport overflow
318
+ if (!this.showOverflowMenu) {
319
+ return;
320
+ }
321
+ requestAnimationFrame(() => {
322
+ const container = this.overflowMenuContainer;
323
+ const dropdown = this.overflowDropdownEl;
324
+ if (!container || !dropdown)
325
+ return;
326
+ const containerRect = container.getBoundingClientRect();
327
+ // Default positioning is right: -2px inside container
328
+ const dropdownWidth = dropdown.offsetWidth || 0;
329
+ const rightEdge = containerRect.right + 2;
330
+ const leftEdge = rightEdge - dropdownWidth;
331
+ // If left edge would be off the viewport, flip to left aligned
332
+ this.overflowDropdownAlignLeft = leftEdge < 8; // keep a small gutter
333
+ });
313
334
  };
314
335
  this.handleNavClick = (event, section) => {
315
336
  event.preventDefault();
316
337
  this.currentActive = section;
317
- // Update mobile selected item if in mobile mode
318
- if (this.isMobile) {
319
- const navItems = this.getNavItems();
320
- const activeItem = navItems.find((item) => item.id === section);
321
- if (activeItem) {
322
- this.selectedMobileItem = activeItem;
323
- this.calculateMobileDropdownItems();
324
- }
325
- }
326
338
  // Set manual navigation flag to prevent intersection observer from overriding
327
339
  this.isManualNavigation = true;
328
340
  // Clear any existing manual navigation timeout
@@ -340,12 +352,19 @@ const PtcSubnavV2 = class {
340
352
  composed: true,
341
353
  });
342
354
  this.el.dispatchEvent(customEvent);
343
- // Smooth scroll to section if it exists
355
+ // Smooth scroll to section if it exists, accounting for sticky nav height
344
356
  const targetElement = document.querySelector(`#${section}`);
345
357
  if (targetElement) {
346
- targetElement.scrollIntoView({
358
+ // Get the sticky nav height
359
+ const navHeight = this.el.offsetHeight;
360
+ // Calculate the target position with offset
361
+ const targetPosition = targetElement.getBoundingClientRect().top +
362
+ window.scrollY -
363
+ navHeight;
364
+ // Smooth scroll to the adjusted position
365
+ window.scrollTo({
366
+ top: targetPosition,
347
367
  behavior: "smooth",
348
- block: "start",
349
368
  });
350
369
  }
351
370
  };
@@ -355,30 +374,19 @@ const PtcSubnavV2 = class {
355
374
  this.visibleItems = [];
356
375
  this.overflowItems = [];
357
376
  this.showOverflowMenu = false;
377
+ this.overflowDropdownAlignLeft = false;
358
378
  this.isMobile = false;
359
- this.selectedMobileItem = null;
360
379
  this.isManualNavigation = false;
361
- this.mobileDropdownItems = [];
362
380
  }
363
381
  componentWillLoad() {
364
382
  this.currentActive = this.activeSection;
365
- this.initializeMobileItem();
366
- this.calculateMobileDropdownItems();
367
- }
368
- initializeMobileItem() {
369
- const navItems = this.getNavItems();
370
- this.selectedMobileItem =
371
- navItems.length > 0
372
- ? navItems.find((item) => item.id === this.activeSection) ||
373
- navItems[0]
374
- : null;
375
383
  }
376
384
  componentDidLoad() {
377
385
  this.bindEventHandlers();
378
- this.calculateMobileDropdownItems();
379
386
  this.handleResize();
380
387
  this.addEventListeners();
381
388
  this.setupIntersectionObserver();
389
+ this.setupResizeObserver();
382
390
  this.initializeStickyPosition();
383
391
  }
384
392
  bindEventHandlers() {
@@ -403,7 +411,8 @@ const PtcSubnavV2 = class {
403
411
  this.removeEventListeners();
404
412
  this.cleanupTimeouts();
405
413
  this.cleanupIntersectionObserver();
406
- this.cleanupPlaceholder();
414
+ this.cleanupResizeObserver();
415
+ this.cleanupElements();
407
416
  }
408
417
  removeEventListeners() {
409
418
  window.removeEventListener("resize", this.boundHandleResize);
@@ -413,25 +422,34 @@ const PtcSubnavV2 = class {
413
422
  window.removeEventListener("scroll", this.boundHandleStickyScroll);
414
423
  }
415
424
  cleanupTimeouts() {
416
- [
417
- this.scrollTimeout,
418
- this.scrollThrottleTimeout,
419
- this.manualNavigationTimeout,
420
- this.stickyScrollTimeout,
421
- ]
422
- .filter(Boolean)
423
- .forEach((timeout) => clearTimeout(timeout));
425
+ if (this.scrollTimeout)
426
+ clearTimeout(this.scrollTimeout);
427
+ if (this.scrollThrottleTimeout)
428
+ clearTimeout(this.scrollThrottleTimeout);
429
+ if (this.manualNavigationTimeout)
430
+ clearTimeout(this.manualNavigationTimeout);
431
+ if (this.stickyScrollTimeout)
432
+ clearTimeout(this.stickyScrollTimeout);
424
433
  }
425
434
  cleanupIntersectionObserver() {
426
435
  if (this.intersectionObserver) {
427
436
  this.intersectionObserver.disconnect();
428
437
  }
429
438
  }
430
- cleanupPlaceholder() {
439
+ cleanupResizeObserver() {
440
+ if (this.resizeObserver) {
441
+ this.resizeObserver.disconnect();
442
+ }
443
+ }
444
+ cleanupElements() {
431
445
  if (this.placeholderElement) {
432
446
  this.placeholderElement.remove();
433
447
  this.placeholderElement = null;
434
448
  }
449
+ if (this.measurementElement) {
450
+ this.measurementElement.remove();
451
+ this.measurementElement = null;
452
+ }
435
453
  }
436
454
  parsePropNavItems() {
437
455
  var _a;
@@ -452,14 +470,16 @@ const PtcSubnavV2 = class {
452
470
  return null;
453
471
  }
454
472
  render() {
455
- var _a, _b;
456
473
  const navItems = this.getNavItems();
474
+ const hasRightContent = this.hasSubnavMenuRightContent();
475
+ const selectedMobileItem = this.isMobile
476
+ ? navItems.find((item) => item.id === this.currentActive) ||
477
+ navItems[0]
478
+ : null;
457
479
  // If no navigation items, don't render the navigation
458
480
  if (navItems.length === 0) {
459
- const hasRightContent = this.hasSubnavMenuRightContent();
460
481
  return (index.h(index.Host, null, index.h("div", { class: `subnav-container ${!hasRightContent ? "full-width" : ""}` }, hasRightContent && (index.h("div", { class: "subnav-menu-right" }, index.h("slot", { name: "subnav-menu-right" }))))));
461
482
  }
462
- const hasRightContent = this.hasSubnavMenuRightContent();
463
483
  return (index.h(index.Host, null, index.h("div", { class: `subnav-container ${!hasRightContent ? "full-width" : ""}` }, index.h("nav", { class: `subnav-menu-left ${!hasRightContent ? "full-width" : ""}`, role: "navigation", "aria-label": "Sub navigation", ref: (el) => (this.navContainer = el) }, this.isMobile ? (
464
484
  // Mobile layout - dropdown with arrows
465
485
  index.h("div", { class: "mobile-dropdown-container" }, index.h("button", { class: "mobile-dropdown-button", onClick: this.toggleOverflowMenu, onKeyDown: (e) => {
@@ -468,32 +488,31 @@ const PtcSubnavV2 = class {
468
488
  e.preventDefault();
469
489
  this.toggleOverflowMenu();
470
490
  }
471
- }, "aria-expanded": this.showOverflowMenu, "aria-haspopup": "true", "aria-label": `${((_a = this.selectedMobileItem) === null || _a === void 0 ? void 0 : _a.label) || "Select Section"} - Choose navigation section`, "tracker-id": "mobile-dropdown-button", ref: (el) => (this.overflowButton = el) }, index.h("span", { class: "mobile-selected-item" }, ((_b = this.selectedMobileItem) === null || _b === void 0 ? void 0 : _b.label) ||
472
- "Select Section"), index.h("span", { class: `mobile-arrow ${this.showOverflowMenu ? "rotated" : ""}`, "aria-hidden": "true" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "8", viewBox: "0 0 12 8", fill: "none", "aria-hidden": "true" }, index.h("path", { d: "M1 1.5L5.94975 6.44975L10.8995 1.5", stroke: "#00890B", "stroke-width": "2", "stroke-linecap": "round" })))), this.showOverflowMenu && (index.h("ul", { class: "mobile-dropdown", role: "menu", "aria-label": "Navigation sections" }, this.mobileDropdownItems.map((item) => (index.h("li", { key: item.id }, index.h("a", { href: `#${item.id}`, class: `mobile-dropdown-item mf-listen ${this
473
- .currentActive ===
491
+ }, "aria-expanded": this.showOverflowMenu, "aria-haspopup": "true", "aria-label": `${(selectedMobileItem === null || selectedMobileItem === void 0 ? void 0 : selectedMobileItem.label) || "Select Section"} - Choose navigation section`, "tracker-id": "mobile-dropdown-button", ref: (el) => (this.overflowButton = el) }, index.h("span", { class: "mobile-selected-item" }, (selectedMobileItem === null || selectedMobileItem === void 0 ? void 0 : selectedMobileItem.label) ||
492
+ "Select Section"), index.h("span", { class: `mobile-arrow ${this.showOverflowMenu ? "rotated" : ""}`, "aria-hidden": "true" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "8", viewBox: "0 0 12 8", fill: "none", "aria-hidden": "true" }, index.h("path", { d: "M1 1.5L5.94975 6.44975L10.8995 1.5", stroke: "#00890B", "stroke-width": "2", "stroke-linecap": "round" })))), this.showOverflowMenu && (index.h("ul", { class: "mobile-dropdown", role: "menu", "aria-label": "Navigation sections" }, navItems.map((item) => (index.h("li", { key: item.id, class: "mf-listen", id: item.trackerId ||
493
+ `mobile-nav-${item.id}` }, index.h("a", { href: `#${item.id}`, class: `mobile-dropdown-item ${this.currentActive ===
474
494
  item.id
475
495
  ? "active"
476
- : ""}`, role: "menuitem", "aria-current": this
477
- .currentActive ===
496
+ : ""}`, role: "menuitem", "aria-current": this.currentActive ===
478
497
  item.id
479
498
  ? "page"
480
- : undefined, "tracker-id": item.trackerId ||
481
- `mobile-nav-${item.id}`, title: item.title || "", onClick: (e) => {
499
+ : undefined, title: item.title || "", onClick: (e) => {
482
500
  this.handleNavClick(e, item.id);
483
501
  this.showOverflowMenu = false;
484
502
  } }, item.label)))))))) : (
485
503
  // Desktop layout - original behavior
486
- index.h("ul", { class: "desktop-menu" }, this.visibleItems.map((item) => (index.h("li", { key: item.id, class: "mf-listen", "tracker-id": item.trackerId || `nav-${item.id}` }, index.h("a", { href: `#${item.id}`, class: this.currentActive === item.id
504
+ index.h("ul", { class: "desktop-menu" }, this.visibleItems.map((item) => (index.h("li", { key: item.id, class: "mf-listen", id: item.trackerId || `nav-${item.id}` }, index.h("a", { href: `#${item.id}`, class: this.currentActive === item.id
487
505
  ? "active"
488
506
  : "", title: item.title || "", onClick: (e) => this.handleNavClick(e, item.id), "aria-current": this.currentActive === item.id
489
507
  ? "page"
490
- : undefined }, item.label)))), this.overflowItems.length > 0 && (index.h("li", { class: "overflow-menu-container mf-listen", "tracker-id": "overflow-menu" }, index.h("button", { class: `overflow-button ${this.hasActiveOverflowItem() ? "selected-active" : ""}`, onClick: this.toggleOverflowMenu, onKeyDown: (e) => {
508
+ : undefined }, item.label)))), this.overflowItems.length > 0 && (index.h("li", { class: "overflow-menu-container mf-listen", id: "overflow-menu", ref: (el) => (this.overflowMenuContainer = el) }, index.h("button", { class: `overflow-button ${this.hasActiveOverflowItem() ? "selected-active" : ""}`, onClick: this.toggleOverflowMenu, onKeyDown: (e) => {
491
509
  if (e.key === "Enter" ||
492
510
  e.key === " ") {
493
511
  e.preventDefault();
494
512
  this.toggleOverflowMenu();
495
513
  }
496
- }, "aria-expanded": this.showOverflowMenu, "aria-haspopup": "true", "aria-label": "Show more navigation items", "tracker-id": "overflow-button", ref: (el) => (this.overflowButton = el) }, index.h("span", { class: "overflow-dots", "aria-hidden": "true" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": "true" }, index.h("circle", { cx: "1.25", cy: "5", r: "1.25", fill: "#617480" }), index.h("circle", { cx: "5", cy: "5", r: "1.25", fill: "#617480" }), index.h("circle", { cx: "8.75", cy: "5", r: "1.25", fill: "#617480" })))), this.showOverflowMenu && (index.h("div", { class: "overflow-dropdown", role: "menu", "aria-label": "Additional navigation sections" }, this.overflowItems.map((item) => (index.h("a", { key: item.id, href: `#${item.id}`, class: `mf-listen ${this
514
+ }, "aria-expanded": this.showOverflowMenu, "aria-haspopup": "true", "aria-label": "Show more navigation items", "tracker-id": "overflow-button", ref: (el) => (this.overflowButton = el) }, index.h("span", { class: "overflow-dots", "aria-hidden": "true" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", "aria-hidden": "true" }, index.h("circle", { cx: "1.25", cy: "5", r: "1.25", fill: "#617480" }), index.h("circle", { cx: "5", cy: "5", r: "1.25", fill: "#617480" }), index.h("circle", { cx: "8.75", cy: "5", r: "1.25", fill: "#617480" })))), this.showOverflowMenu && (index.h("div", { class: `overflow-dropdown ${this.overflowDropdownAlignLeft ? "align-left" : "align-right"}`, role: "menu", "aria-label": "Additional navigation sections", ref: (el) => (this.overflowDropdownEl =
515
+ el) }, this.overflowItems.map((item) => (index.h("a", { key: item.id, href: `#${item.id}`, class: `mf-listen ${this
497
516
  .currentActive ===
498
517
  item.id
499
518
  ? "active"