@sankhyatronics/sankhya-cms 0.1.18 → 0.3.0

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 (216) hide show
  1. package/custom-elements.json +11634 -3153
  2. package/dist/attention-panel/index.js +2 -2
  3. package/dist/bar-chart/index.js +2 -2
  4. package/dist/bento-grid/index.d.ts +33 -1
  5. package/dist/bento-grid/index.js +4 -3
  6. package/dist/booking/index.d.ts +309 -0
  7. package/dist/booking/index.js +20 -0
  8. package/dist/booking/index.js.map +1 -0
  9. package/dist/card/index.d.ts +3 -4
  10. package/dist/card/index.js +2 -2
  11. package/dist/carousel/index.d.ts +20 -6
  12. package/dist/carousel/index.js +3 -3
  13. package/dist/chip/index.js +2 -2
  14. package/dist/{chunk-JQY2G4QK.js → chunk-2GTR37PU.js} +2 -2
  15. package/dist/chunk-2GTR37PU.js.map +1 -0
  16. package/dist/{chunk-FLY7TNRT.js → chunk-2HMOX253.js} +128 -25
  17. package/dist/chunk-2HMOX253.js.map +1 -0
  18. package/dist/{chunk-DH53HZPB.js → chunk-37KFBKPD.js} +32 -4
  19. package/dist/chunk-37KFBKPD.js.map +1 -0
  20. package/dist/{chunk-ALI26WOB.js → chunk-4XPKKYVZ.js} +54 -15
  21. package/dist/chunk-4XPKKYVZ.js.map +1 -0
  22. package/dist/chunk-535QAZ6A.js +236 -0
  23. package/dist/chunk-535QAZ6A.js.map +1 -0
  24. package/dist/{chunk-AKJQ345O.js → chunk-5AWGZQWU.js} +2 -2
  25. package/dist/chunk-6OZKZG5J.js +300 -0
  26. package/dist/chunk-6OZKZG5J.js.map +1 -0
  27. package/dist/chunk-AYNT7G3J.js +805 -0
  28. package/dist/chunk-AYNT7G3J.js.map +1 -0
  29. package/dist/chunk-BEWX3E6P.js +32 -0
  30. package/dist/chunk-BEWX3E6P.js.map +1 -0
  31. package/dist/chunk-CZUGPKXV.js +275 -0
  32. package/dist/chunk-CZUGPKXV.js.map +1 -0
  33. package/dist/{chunk-LEXZKGQX.js → chunk-DJFWZOZM.js} +107 -11
  34. package/dist/chunk-DJFWZOZM.js.map +1 -0
  35. package/dist/chunk-DPANTC3O.js +1714 -0
  36. package/dist/chunk-DPANTC3O.js.map +1 -0
  37. package/dist/chunk-EKZFFY45.js +426 -0
  38. package/dist/chunk-EKZFFY45.js.map +1 -0
  39. package/dist/chunk-ER7MCPDV.js +7 -0
  40. package/dist/chunk-ER7MCPDV.js.map +1 -0
  41. package/dist/chunk-EW2RK5Y6.js +383 -0
  42. package/dist/chunk-EW2RK5Y6.js.map +1 -0
  43. package/dist/{chunk-BLQV2YMO.js → chunk-EZOKT7NJ.js} +2 -2
  44. package/dist/chunk-FF2LWEF3.js +386 -0
  45. package/dist/chunk-FF2LWEF3.js.map +1 -0
  46. package/dist/chunk-FOUK3NHR.js +7 -0
  47. package/dist/chunk-FOUK3NHR.js.map +1 -0
  48. package/dist/chunk-GB4NGCZI.js +181 -0
  49. package/dist/chunk-GB4NGCZI.js.map +1 -0
  50. package/dist/{chunk-7NLZND6Q.js → chunk-GOFSMD6W.js} +35 -11
  51. package/dist/chunk-GOFSMD6W.js.map +1 -0
  52. package/dist/{chunk-6D6ROU7X.js → chunk-IGMVF3KK.js} +2 -2
  53. package/dist/{chunk-INMSEYT6.js → chunk-IVPVYVWG.js} +2 -2
  54. package/dist/chunk-JURCF4OD.js +381 -0
  55. package/dist/chunk-JURCF4OD.js.map +1 -0
  56. package/dist/{chunk-FZ36KL73.js → chunk-KZ7PMFWS.js} +11 -1
  57. package/dist/chunk-KZ7PMFWS.js.map +1 -0
  58. package/dist/{chunk-EMCQBT3S.js → chunk-LO6TZBGD.js} +129 -35
  59. package/dist/chunk-LO6TZBGD.js.map +1 -0
  60. package/dist/chunk-MFRGAT6D.js +860 -0
  61. package/dist/chunk-MFRGAT6D.js.map +1 -0
  62. package/dist/chunk-MIBVQXRU.js +1098 -0
  63. package/dist/chunk-MIBVQXRU.js.map +1 -0
  64. package/dist/{chunk-35TX3AOA.js → chunk-NABSRUXG.js} +2 -2
  65. package/dist/{chunk-R5G6KFTJ.js → chunk-NXKDZWS7.js} +44 -6
  66. package/dist/chunk-NXKDZWS7.js.map +1 -0
  67. package/dist/{chunk-KMU6ABQF.js → chunk-NXUS2CH7.js} +14 -1
  68. package/dist/chunk-NXUS2CH7.js.map +1 -0
  69. package/dist/{chunk-GJO3RGOB.js → chunk-OCPGOLVF.js} +56 -11
  70. package/dist/chunk-OCPGOLVF.js.map +1 -0
  71. package/dist/chunk-OEOE6IFY.js +628 -0
  72. package/dist/chunk-OEOE6IFY.js.map +1 -0
  73. package/dist/{chunk-SMLR736E.js → chunk-PV6OCXXN.js} +2 -2
  74. package/dist/chunk-PV6OCXXN.js.map +1 -0
  75. package/dist/chunk-Q66CJO3P.js +534 -0
  76. package/dist/chunk-Q66CJO3P.js.map +1 -0
  77. package/dist/{chunk-MG2VTZA4.js → chunk-QS3ANOWN.js} +2 -2
  78. package/dist/{chunk-ZN4LIKVG.js → chunk-QSJ543V2.js} +2 -2
  79. package/dist/chunk-QSJ543V2.js.map +1 -0
  80. package/dist/{chunk-FML6AG2V.js → chunk-RANC3OI6.js} +2 -2
  81. package/dist/chunk-T4BIN37Q.js +32 -0
  82. package/dist/chunk-T4BIN37Q.js.map +1 -0
  83. package/dist/{chunk-YVTFQHVY.js → chunk-TEAZZPDQ.js} +2 -2
  84. package/dist/chunk-TJK55CJ2.js +49 -0
  85. package/dist/chunk-TJK55CJ2.js.map +1 -0
  86. package/dist/chunk-UKIVLF7S.js +32 -0
  87. package/dist/chunk-UKIVLF7S.js.map +1 -0
  88. package/dist/chunk-V4R7PYP5.js +905 -0
  89. package/dist/chunk-V4R7PYP5.js.map +1 -0
  90. package/dist/{chunk-AG2COC64.js → chunk-VVYQ2DDS.js} +2 -2
  91. package/dist/chunk-WAMOAAMN.js +16 -0
  92. package/dist/chunk-WAMOAAMN.js.map +1 -0
  93. package/dist/chunk-WAYHHL4J.js +1234 -0
  94. package/dist/chunk-WAYHHL4J.js.map +1 -0
  95. package/dist/{chunk-YQ42EBK5.js → chunk-WH6HE6SY.js} +10 -4
  96. package/dist/chunk-WH6HE6SY.js.map +1 -0
  97. package/dist/chunk-XP6DI3VY.js +180 -0
  98. package/dist/chunk-XP6DI3VY.js.map +1 -0
  99. package/dist/{chunk-5EBWMPJS.js → chunk-XS6LNTSH.js} +76 -14
  100. package/dist/chunk-XS6LNTSH.js.map +1 -0
  101. package/dist/{chunk-WT4OATGP.js → chunk-ZKFCDVB4.js} +16 -7
  102. package/dist/chunk-ZKFCDVB4.js.map +1 -0
  103. package/dist/cms-theme.css +29 -0
  104. package/dist/contact-form/index.d.ts +220 -0
  105. package/dist/contact-form/index.js +16 -0
  106. package/dist/contact-form/index.js.map +1 -0
  107. package/dist/content-block/index.d.ts +39 -4
  108. package/dist/content-block/index.js +8 -4
  109. package/dist/cookie-consent/index.d.ts +60 -12
  110. package/dist/cookie-consent/index.js +3 -2
  111. package/dist/date-tile/index.js +2 -2
  112. package/dist/dropdown/index.d.ts +29 -11
  113. package/dist/dropdown/index.js +4 -2
  114. package/dist/feature-split/index.d.ts +6 -1
  115. package/dist/feature-split/index.js +5 -4
  116. package/dist/features-section/index.d.ts +53 -9
  117. package/dist/features-section/index.js +6 -5
  118. package/dist/flow/index.d.ts +35 -0
  119. package/dist/flow/index.js +9 -0
  120. package/dist/flow/index.js.map +1 -0
  121. package/dist/footer/index.d.ts +13 -0
  122. package/dist/footer/index.js +2 -2
  123. package/dist/header/index.d.ts +135 -16
  124. package/dist/header/index.js +3 -2
  125. package/dist/hero/index.d.ts +92 -8
  126. package/dist/hero/index.js +6 -3
  127. package/dist/icon-button/index.d.ts +7 -7
  128. package/dist/icon-button/index.js +2 -2
  129. package/dist/index.d.ts +12 -3
  130. package/dist/index.js +121 -47
  131. package/dist/items-accordion/index.d.ts +9 -0
  132. package/dist/items-accordion/index.js +4 -3
  133. package/dist/kpi-card/index.js +2 -2
  134. package/dist/markdown/index.d.ts +19 -2
  135. package/dist/markdown/index.js +3 -2
  136. package/dist/mega-menu/index.d.ts +95 -7
  137. package/dist/mega-menu/index.js +7 -2
  138. package/dist/menu-grid/index.d.ts +2 -3
  139. package/dist/menu-grid/index.js +2 -2
  140. package/dist/menu-grid-item/index.d.ts +6 -8
  141. package/dist/menu-grid-item/index.js +2 -2
  142. package/dist/menu-item/index.d.ts +11 -7
  143. package/dist/menu-item/index.js +3 -2
  144. package/dist/plan-cards/index.d.ts +69 -0
  145. package/dist/plan-cards/index.js +13 -0
  146. package/dist/plan-cards/index.js.map +1 -0
  147. package/dist/product-nav/index.d.ts +127 -0
  148. package/dist/product-nav/index.js +11 -0
  149. package/dist/product-nav/index.js.map +1 -0
  150. package/dist/promo-banner/index.d.ts +42 -4
  151. package/dist/promo-banner/index.js +6 -3
  152. package/dist/quote-dialog/index.d.ts +174 -0
  153. package/dist/quote-dialog/index.js +22 -0
  154. package/dist/quote-dialog/index.js.map +1 -0
  155. package/dist/schema/index.d.ts +11 -0
  156. package/dist/schema/index.js +9 -0
  157. package/dist/schema/index.js.map +1 -1
  158. package/dist/screenshot-tour/index.d.ts +54 -0
  159. package/dist/screenshot-tour/index.js +9 -0
  160. package/dist/screenshot-tour/index.js.map +1 -0
  161. package/dist/section/index.d.ts +3 -0
  162. package/dist/section/index.js +3 -3
  163. package/dist/segmented-control/index.js +2 -2
  164. package/dist/select/index.js +2 -2
  165. package/dist/shared/styles.d.ts +7 -1
  166. package/dist/shared/styles.js +3 -1
  167. package/dist/stats/index.js +2 -2
  168. package/dist/steps/index.d.ts +45 -0
  169. package/dist/steps/index.js +11 -0
  170. package/dist/steps/index.js.map +1 -0
  171. package/dist/tag-strip/index.d.ts +33 -0
  172. package/dist/tag-strip/index.js +9 -0
  173. package/dist/tag-strip/index.js.map +1 -0
  174. package/dist/testimonials/index.d.ts +9 -1
  175. package/dist/testimonials/index.js +3 -3
  176. package/dist/tooltip/index.js +2 -2
  177. package/package.json +38 -2
  178. package/dist/chunk-5EBWMPJS.js.map +0 -1
  179. package/dist/chunk-76AVBQUA.js +0 -252
  180. package/dist/chunk-76AVBQUA.js.map +0 -1
  181. package/dist/chunk-7NLZND6Q.js.map +0 -1
  182. package/dist/chunk-ALI26WOB.js.map +0 -1
  183. package/dist/chunk-BMHMNXIA.js +0 -158
  184. package/dist/chunk-BMHMNXIA.js.map +0 -1
  185. package/dist/chunk-DH53HZPB.js.map +0 -1
  186. package/dist/chunk-EMCQBT3S.js.map +0 -1
  187. package/dist/chunk-FLY7TNRT.js.map +0 -1
  188. package/dist/chunk-FZ36KL73.js.map +0 -1
  189. package/dist/chunk-GJO3RGOB.js.map +0 -1
  190. package/dist/chunk-J6EO4R73.js +0 -633
  191. package/dist/chunk-J6EO4R73.js.map +0 -1
  192. package/dist/chunk-JKBWZLG4.js +0 -348
  193. package/dist/chunk-JKBWZLG4.js.map +0 -1
  194. package/dist/chunk-JQY2G4QK.js.map +0 -1
  195. package/dist/chunk-KMU6ABQF.js.map +0 -1
  196. package/dist/chunk-LEXZKGQX.js.map +0 -1
  197. package/dist/chunk-MSSH3HFK.js +0 -205
  198. package/dist/chunk-MSSH3HFK.js.map +0 -1
  199. package/dist/chunk-R5G6KFTJ.js.map +0 -1
  200. package/dist/chunk-SMLR736E.js.map +0 -1
  201. package/dist/chunk-VWS53WY4.js +0 -157
  202. package/dist/chunk-VWS53WY4.js.map +0 -1
  203. package/dist/chunk-WT4OATGP.js.map +0 -1
  204. package/dist/chunk-XWB4CKDU.js +0 -708
  205. package/dist/chunk-XWB4CKDU.js.map +0 -1
  206. package/dist/chunk-YQ42EBK5.js.map +0 -1
  207. package/dist/chunk-ZN4LIKVG.js.map +0 -1
  208. /package/dist/{chunk-AKJQ345O.js.map → chunk-5AWGZQWU.js.map} +0 -0
  209. /package/dist/{chunk-BLQV2YMO.js.map → chunk-EZOKT7NJ.js.map} +0 -0
  210. /package/dist/{chunk-6D6ROU7X.js.map → chunk-IGMVF3KK.js.map} +0 -0
  211. /package/dist/{chunk-INMSEYT6.js.map → chunk-IVPVYVWG.js.map} +0 -0
  212. /package/dist/{chunk-35TX3AOA.js.map → chunk-NABSRUXG.js.map} +0 -0
  213. /package/dist/{chunk-MG2VTZA4.js.map → chunk-QS3ANOWN.js.map} +0 -0
  214. /package/dist/{chunk-FML6AG2V.js.map → chunk-RANC3OI6.js.map} +0 -0
  215. /package/dist/{chunk-YVTFQHVY.js.map → chunk-TEAZZPDQ.js.map} +0 -0
  216. /package/dist/{chunk-AG2COC64.js.map → chunk-VVYQ2DDS.js.map} +0 -0
@@ -1,633 +0,0 @@
1
- import {
2
- arrowUpRightIcon
3
- } from "./chunk-WTD2YIAA.js";
4
- import {
5
- controlBaseStyles,
6
- fontFamilyStyles
7
- } from "./chunk-KMU6ABQF.js";
8
- import {
9
- __decorateClass
10
- } from "./chunk-EUXUH3YW.js";
11
-
12
- // src/mega-menu/MegaMenu.ts
13
- import { LitElement, css, html, nothing } from "lit";
14
- import { customElement, property, state } from "lit/decorators.js";
15
- var MegaMenu = class extends LitElement {
16
- constructor() {
17
- super(...arguments);
18
- this.heading = "";
19
- this.description = "";
20
- this.featuredHeading = "";
21
- this.columns = 0;
22
- this.columnCount = 1;
23
- this.hasIntroLinks = false;
24
- this.hasFeatured = false;
25
- this.onColumnsSlotChange = (event) => {
26
- this.columnCount = Math.max(1, event.target.assignedElements({ flatten: true }).length);
27
- };
28
- this.onIntroSlotChange = (event) => {
29
- this.hasIntroLinks = event.target.assignedElements({ flatten: true }).length > 0;
30
- };
31
- this.onFeaturedSlotChange = (event) => {
32
- this.hasFeatured = event.target.assignedElements({ flatten: true }).length > 0;
33
- };
34
- }
35
- render() {
36
- const columns = Math.min(6, Math.max(1, Math.round(this.columns) || this.columnCount));
37
- const hasIntroText = !!(this.heading || this.description);
38
- const hasIntro = hasIntroText || this.hasIntroLinks;
39
- const hasFeatured = this.hasFeatured || !!this.featuredHeading;
40
- const tracks = [hasIntro ? "minmax(0, 1fr)" : "", `minmax(0, ${columns}fr)`, hasFeatured ? "minmax(0, 1fr)" : ""].filter(Boolean).join(" ");
41
- return html`
42
- <div
43
- part="inner"
44
- class="inner"
45
- style="grid-template-columns:${tracks};--st-mega-menu-columns:${columns};--st-mega-menu-columns-md:${Math.min(2, columns)}"
46
- >
47
- <div part="intro" class="intro" ?hidden=${!hasIntro}>
48
- ${this.heading ? html`<p part="heading" class="intro-heading">${this.heading}</p>` : nothing}
49
- ${this.description ? html`<p part="description" class="intro-description">${this.description}</p>` : nothing}
50
- <div part="intro-links" class="intro-links ${hasIntroText ? "" : "no-text"}" ?hidden=${!this.hasIntroLinks}>
51
- <slot name="intro" @slotchange=${this.onIntroSlotChange}></slot>
52
- </div>
53
- </div>
54
- <div part="columns" class="columns"><slot @slotchange=${this.onColumnsSlotChange}></slot></div>
55
- <div part="featured" class="featured" ?hidden=${!hasFeatured}>
56
- ${this.featuredHeading ? html`<p part="featured-heading" class="featured-heading">${this.featuredHeading}</p>` : nothing}
57
- <div class="featured-items"><slot name="featured" @slotchange=${this.onFeaturedSlotChange}></slot></div>
58
- </div>
59
- </div>
60
- `;
61
- }
62
- };
63
- MegaMenu.styles = css`
64
- ${controlBaseStyles}
65
-
66
- :host {
67
- display: block;
68
- container-type: inline-size;
69
- ${fontFamilyStyles}
70
- }
71
-
72
- .inner {
73
- display: grid;
74
- gap: 3rem;
75
- padding: 3rem 3.5rem;
76
- box-sizing: border-box;
77
- }
78
-
79
- .columns {
80
- display: grid;
81
- grid-template-columns: repeat(var(--st-mega-menu-columns, 3), minmax(0, 1fr));
82
- gap: 3rem;
83
- align-items: stretch;
84
- }
85
-
86
- .intro,
87
- .featured {
88
- display: flex;
89
- flex-direction: column;
90
- min-width: 0;
91
- }
92
-
93
- .intro-heading {
94
- margin: 0 0 1rem;
95
- font-size: 2rem;
96
- font-weight: 400;
97
- line-height: 1.15;
98
- color: var(--st-color-text-strong);
99
- }
100
-
101
- .intro-description {
102
- margin: 0;
103
- font-size: 1rem;
104
- line-height: 1.55;
105
- color: var(--st-color-text);
106
- }
107
-
108
- .intro-links {
109
- display: flex;
110
- flex-direction: column;
111
- gap: 2px;
112
- margin-top: 2.5rem;
113
- padding-top: 2rem;
114
- border-top: 1px solid var(--st-color-border);
115
- }
116
-
117
- .intro-links.no-text {
118
- margin-top: 0;
119
- padding-top: 0;
120
- border-top: 0;
121
- }
122
-
123
- .featured-heading {
124
- margin: 0 0 1rem;
125
- font-size: 1.125rem;
126
- font-weight: 500;
127
- line-height: 1.35;
128
- color: var(--st-color-text-strong);
129
- }
130
-
131
- .featured-items {
132
- display: flex;
133
- flex-direction: column;
134
- gap: 0.75rem;
135
- }
136
-
137
- [hidden] {
138
- display: none !important;
139
- }
140
-
141
- /* Medium panel: intro on top, two link columns, featured cards side by side underneath. */
142
- @container (max-width: 960px) {
143
- .inner {
144
- grid-template-columns: minmax(0, 1fr) !important;
145
- gap: 2rem;
146
- padding: 2rem;
147
- }
148
-
149
- .columns {
150
- grid-template-columns: repeat(var(--st-mega-menu-columns-md, 2), minmax(0, 1fr));
151
- gap: 2rem;
152
- }
153
-
154
- .intro-links {
155
- margin-top: 1.5rem;
156
- padding-top: 1.5rem;
157
- }
158
-
159
- .featured-items {
160
- display: grid;
161
- grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
162
- }
163
- }
164
-
165
- /* Narrow panel (the phone drill-down): everything stacked. */
166
- @container (max-width: 560px) {
167
- .inner {
168
- gap: 1.75rem;
169
- padding: 0.5rem 0 1.5rem;
170
- }
171
-
172
- .columns {
173
- grid-template-columns: minmax(0, 1fr);
174
- gap: 1.75rem;
175
- }
176
-
177
- .intro-heading {
178
- display: none;
179
- }
180
- }
181
- `;
182
- __decorateClass([
183
- property({ type: String })
184
- ], MegaMenu.prototype, "heading", 2);
185
- __decorateClass([
186
- property({ type: String })
187
- ], MegaMenu.prototype, "description", 2);
188
- __decorateClass([
189
- property({ type: String, attribute: "featured-heading" })
190
- ], MegaMenu.prototype, "featuredHeading", 2);
191
- __decorateClass([
192
- property({ type: Number })
193
- ], MegaMenu.prototype, "columns", 2);
194
- __decorateClass([
195
- state()
196
- ], MegaMenu.prototype, "columnCount", 2);
197
- __decorateClass([
198
- state()
199
- ], MegaMenu.prototype, "hasIntroLinks", 2);
200
- __decorateClass([
201
- state()
202
- ], MegaMenu.prototype, "hasFeatured", 2);
203
- MegaMenu = __decorateClass([
204
- customElement("st-mega-menu")
205
- ], MegaMenu);
206
-
207
- // src/mega-menu/MegaMenuColumn.ts
208
- import { LitElement as LitElement2, css as css2, html as html2, nothing as nothing2 } from "lit";
209
- import { customElement as customElement2, property as property2 } from "lit/decorators.js";
210
- var MegaMenuColumn = class extends LitElement2 {
211
- constructor() {
212
- super(...arguments);
213
- this.heading = "";
214
- this.href = "";
215
- this.description = "";
216
- this.variant = "plain";
217
- this.ctaLabel = "";
218
- this.ctaHref = "";
219
- }
220
- select(event, href) {
221
- if (href.startsWith("http")) return;
222
- const selectEvent = new CustomEvent("mega-menu-select", {
223
- detail: { href },
224
- bubbles: true,
225
- composed: true,
226
- cancelable: true
227
- });
228
- this.dispatchEvent(selectEvent);
229
- if (selectEvent.defaultPrevented) event.preventDefault();
230
- }
231
- renderHeading() {
232
- if (!this.heading) return nothing2;
233
- return this.href ? html2`<a part="heading" class="heading" href=${this.href} @click=${(event) => this.select(event, this.href)}
234
- >${this.heading}</a
235
- >` : html2`<p part="heading" class="heading">${this.heading}</p>`;
236
- }
237
- renderCta() {
238
- if (!this.ctaLabel || !this.ctaHref) return nothing2;
239
- const external = this.ctaHref.startsWith("http");
240
- return html2`
241
- <span class="cta-spacer"></span>
242
- <a
243
- part="cta"
244
- class="cta"
245
- href=${this.ctaHref}
246
- target=${external ? "_blank" : "_self"}
247
- rel=${external ? "noopener noreferrer" : nothing2}
248
- @click=${(event) => this.select(event, this.ctaHref)}
249
- >${this.ctaLabel} ${external ? arrowUpRightIcon(14) : nothing2}</a
250
- >
251
- `;
252
- }
253
- render() {
254
- return html2`
255
- ${this.renderHeading()}
256
- ${this.description ? html2`<p part="description" class="description">${this.description}</p>` : nothing2}
257
- <div part="items" class="items" role="group" aria-label=${this.heading || nothing2}><slot></slot></div>
258
- ${this.renderCta()}
259
- `;
260
- }
261
- };
262
- MegaMenuColumn.styles = css2`
263
- ${controlBaseStyles}
264
-
265
- :host {
266
- display: flex;
267
- flex-direction: column;
268
- min-width: 0;
269
- box-sizing: border-box;
270
- ${fontFamilyStyles}
271
- }
272
-
273
- :host([variant='card']),
274
- :host([variant='accent']) {
275
- /* !important: a page-level reset (e.g. Tailwind Preflight) otherwise zeroes a shadow host's
276
- padding; override with --st-mega-menu-column-padding instead. */
277
- padding: var(--st-mega-menu-column-padding, 2rem 1.75rem 1.75rem) !important;
278
- border-radius: 20px;
279
- background: color-mix(in oklch, var(--st-color-text-strong) 5%, var(--st-color-surface));
280
- }
281
-
282
- :host([variant='accent']) {
283
- background: var(--st-color-accent);
284
- color: var(--st-color-on-solid);
285
- /* Read by the st-menu-item links inside. */
286
- --st-nav-color: var(--st-color-on-solid);
287
- --st-nav-hover-bg: transparent;
288
- }
289
-
290
- .heading {
291
- display: inline-flex;
292
- align-items: center;
293
- gap: 6px;
294
- margin: 0 0 0.75rem;
295
- font-size: 1.125rem;
296
- font-weight: 500;
297
- line-height: 1.35;
298
- color: var(--st-color-text-strong);
299
- text-decoration: none;
300
- }
301
-
302
- :host([variant='card']) .heading,
303
- :host([variant='accent']) .heading {
304
- font-size: 1.375rem;
305
- }
306
-
307
- :host([variant='accent']) .heading {
308
- color: inherit;
309
- }
310
-
311
- a.heading:hover,
312
- a.heading:focus-visible {
313
- text-decoration: underline;
314
- text-underline-offset: 4px;
315
- }
316
-
317
- .description {
318
- margin: -0.25rem 0 0.75rem;
319
- font-size: 0.875rem;
320
- line-height: 1.5;
321
- color: var(--st-color-text-muted);
322
- }
323
-
324
- :host([variant='accent']) .description {
325
- color: inherit;
326
- opacity: 0.85;
327
- }
328
-
329
- .items {
330
- display: flex;
331
- flex-direction: column;
332
- gap: 2px;
333
- }
334
-
335
- /* Nested groups stack with room between them (!important for the same page-reset reason). */
336
- ::slotted(st-mega-menu-column:not(:first-child)) {
337
- margin-top: 2rem !important;
338
- }
339
-
340
- .cta {
341
- display: inline-flex;
342
- align-items: center;
343
- justify-content: center;
344
- gap: 6px;
345
- padding: 0.875rem 1.5rem;
346
- border-radius: 9999px;
347
- background: var(--st-color-surface);
348
- color: var(--st-color-text-strong);
349
- font-size: 1rem;
350
- font-weight: 500;
351
- text-align: center;
352
- text-decoration: none;
353
- transition: box-shadow 0.2s ease;
354
- }
355
-
356
- .cta-spacer {
357
- flex: 1;
358
- min-height: 1.75rem;
359
- }
360
-
361
- .cta:hover,
362
- .cta:focus-visible {
363
- box-shadow: 0 0 0 2px currentColor;
364
- }
365
-
366
- @media (prefers-reduced-motion: reduce) {
367
- .cta {
368
- transition: none;
369
- }
370
- }
371
- `;
372
- __decorateClass([
373
- property2({ type: String })
374
- ], MegaMenuColumn.prototype, "heading", 2);
375
- __decorateClass([
376
- property2({ type: String })
377
- ], MegaMenuColumn.prototype, "href", 2);
378
- __decorateClass([
379
- property2({ type: String })
380
- ], MegaMenuColumn.prototype, "description", 2);
381
- __decorateClass([
382
- property2({ type: String, reflect: true })
383
- ], MegaMenuColumn.prototype, "variant", 2);
384
- __decorateClass([
385
- property2({ type: String, attribute: "cta-label" })
386
- ], MegaMenuColumn.prototype, "ctaLabel", 2);
387
- __decorateClass([
388
- property2({ type: String, attribute: "cta-href" })
389
- ], MegaMenuColumn.prototype, "ctaHref", 2);
390
- MegaMenuColumn = __decorateClass([
391
- customElement2("st-mega-menu-column")
392
- ], MegaMenuColumn);
393
-
394
- // src/mega-menu/MegaMenuFeature.ts
395
- import { LitElement as LitElement3, css as css3, html as html3, nothing as nothing3 } from "lit";
396
- import { customElement as customElement3, property as property3 } from "lit/decorators.js";
397
- var MegaMenuFeature = class extends LitElement3 {
398
- constructor() {
399
- super(...arguments);
400
- this.variant = "story";
401
- this.title = "";
402
- this.description = "";
403
- this.eyebrow = "";
404
- this.href = "";
405
- this.target = "";
406
- this.imageUrl = "";
407
- this.imageAlt = "";
408
- this.logoUrl = "";
409
- this.logoAlt = "";
410
- this.ctaLabel = "";
411
- this.onClick = (event) => {
412
- if (this.isExternal) return;
413
- const selectEvent = new CustomEvent("mega-menu-select", {
414
- detail: { href: this.href },
415
- bubbles: true,
416
- composed: true,
417
- cancelable: true
418
- });
419
- this.dispatchEvent(selectEvent);
420
- if (selectEvent.defaultPrevented) event.preventDefault();
421
- };
422
- }
423
- get isExternal() {
424
- return this.href.startsWith("http");
425
- }
426
- render() {
427
- const target = this.target || (this.isExternal ? "_blank" : "_self");
428
- const overlay = this.variant === "overlay";
429
- const style = overlay && this.imageUrl ? `--st-mega-menu-feature-image:url(${JSON.stringify(this.imageUrl)})` : "";
430
- return html3`
431
- <a
432
- part="card"
433
- class="card"
434
- style=${style}
435
- href=${this.href || nothing3}
436
- target=${target}
437
- rel=${target === "_blank" ? "noopener noreferrer" : nothing3}
438
- @click=${this.onClick}
439
- >
440
- ${overlay && this.logoUrl ? html3`<img part="logo" class="logo" src=${this.logoUrl} alt=${this.logoAlt} />` : nothing3}
441
- ${!overlay && this.imageUrl ? html3`<img part="image" class="image" src=${this.imageUrl} alt=${this.imageAlt} loading="lazy" />` : nothing3}
442
- ${this.eyebrow ? html3`<span part="eyebrow" class="eyebrow">${this.eyebrow}</span>` : nothing3}
443
- ${this.title ? html3`<p part="title" class="title">${this.title}</p>` : nothing3}
444
- ${this.description ? html3`<p part="description" class="description">${this.description}</p>` : nothing3}
445
- ${this.ctaLabel ? html3`<span part="cta" class="cta">${this.ctaLabel}</span>` : nothing3}
446
- </a>
447
- `;
448
- }
449
- };
450
- /** `focus()` on the element focuses its link, so `st-dropdown` can arrow-key to it. */
451
- MegaMenuFeature.shadowRootOptions = { ...LitElement3.shadowRootOptions, delegatesFocus: true };
452
- MegaMenuFeature.styles = css3`
453
- ${controlBaseStyles}
454
-
455
- :host {
456
- display: block;
457
- ${fontFamilyStyles}
458
- }
459
-
460
- .card {
461
- display: flex;
462
- flex-direction: column;
463
- gap: 0.75rem;
464
- box-sizing: border-box;
465
- color: var(--st-color-text-strong);
466
- text-decoration: none;
467
- }
468
-
469
- .image {
470
- display: block;
471
- width: 100%;
472
- aspect-ratio: 9 / 8;
473
- object-fit: cover;
474
- border-radius: 20px;
475
- transition: transform 0.3s ease;
476
- }
477
-
478
- .card:hover .image {
479
- transform: scale(1.015);
480
- }
481
-
482
- .eyebrow {
483
- font-size: 0.75rem;
484
- font-weight: 600;
485
- letter-spacing: 0.06em;
486
- text-transform: uppercase;
487
- color: var(--st-color-accent-text);
488
- }
489
-
490
- .title {
491
- margin: 0;
492
- font-size: 1.125rem;
493
- font-weight: 500;
494
- line-height: 1.3;
495
- }
496
-
497
- .description {
498
- margin: 0;
499
- font-size: 0.9375rem;
500
- line-height: 1.5;
501
- }
502
-
503
- .cta {
504
- align-self: flex-start;
505
- margin-top: 0.75rem;
506
- font-size: 0.9375rem;
507
- font-weight: 500;
508
- text-decoration: underline;
509
- text-underline-offset: 5px;
510
- text-decoration-thickness: 1px;
511
- }
512
-
513
- .card:hover .cta,
514
- .card:focus-visible .cta {
515
- text-decoration-thickness: 2px;
516
- }
517
-
518
- /* overlay */
519
- :host([variant='overlay']) .card {
520
- justify-content: flex-end;
521
- gap: 0.5rem;
522
- min-height: 15rem;
523
- padding: 1.75rem;
524
- border-radius: 20px;
525
- color: #fff;
526
- background-color: var(--st-color-accent);
527
- background-image:
528
- linear-gradient(to top, rgb(0 0 0 / 0.55), rgb(0 0 0 / 0.05)),
529
- var(--st-mega-menu-feature-image, linear-gradient(160deg, var(--st-mega-menu-feature-from, var(--st-color-accent)), var(--st-mega-menu-feature-to, oklch(0.25 0.12 280))));
530
- background-size: cover;
531
- background-position: center;
532
- transition: transform 0.2s ease;
533
- }
534
-
535
- :host([variant='overlay']) .card:hover {
536
- transform: translateY(-2px);
537
- }
538
-
539
- :host([variant='overlay']) .logo {
540
- height: 2.25rem;
541
- width: auto;
542
- max-width: 70%;
543
- margin-bottom: auto;
544
- align-self: flex-start;
545
- object-fit: contain;
546
- }
547
-
548
- :host([variant='overlay']) .title {
549
- font-size: 1.75rem;
550
- font-weight: 400;
551
- }
552
-
553
- :host([variant='overlay']) .eyebrow,
554
- :host([variant='overlay']) .cta {
555
- color: inherit;
556
- }
557
-
558
- /* tip: a light-blue card with dark text, like a tip panel on a page. */
559
- :host([variant='tip']) .card {
560
- gap: 0.5rem;
561
- padding: 1.25rem;
562
- border-radius: var(--st-radius-md);
563
- border: 1px solid var(--st-color-accent-border);
564
- background: var(--st-color-accent-subtle);
565
- color: var(--st-color-text);
566
- transition: border-color 0.2s ease;
567
- }
568
-
569
- :host([variant='tip']) .card:hover {
570
- border-color: var(--st-color-accent-muted);
571
- }
572
-
573
- :host([variant='tip']) .title {
574
- font-size: var(--st-text-lg);
575
- font-weight: var(--st-font-weight-semibold);
576
- color: var(--st-color-text-strong);
577
- }
578
-
579
- :host([variant='tip']) .eyebrow,
580
- :host([variant='tip']) .cta {
581
- color: var(--st-color-accent-text);
582
- }
583
-
584
- @media (prefers-reduced-motion: reduce) {
585
- .image,
586
- :host([variant='overlay']) .card {
587
- transition: none;
588
- }
589
- }
590
- `;
591
- __decorateClass([
592
- property3({ type: String, reflect: true })
593
- ], MegaMenuFeature.prototype, "variant", 2);
594
- __decorateClass([
595
- property3({ type: String })
596
- ], MegaMenuFeature.prototype, "title", 2);
597
- __decorateClass([
598
- property3({ type: String })
599
- ], MegaMenuFeature.prototype, "description", 2);
600
- __decorateClass([
601
- property3({ type: String })
602
- ], MegaMenuFeature.prototype, "eyebrow", 2);
603
- __decorateClass([
604
- property3({ type: String })
605
- ], MegaMenuFeature.prototype, "href", 2);
606
- __decorateClass([
607
- property3({ type: String })
608
- ], MegaMenuFeature.prototype, "target", 2);
609
- __decorateClass([
610
- property3({ type: String, attribute: "image-url" })
611
- ], MegaMenuFeature.prototype, "imageUrl", 2);
612
- __decorateClass([
613
- property3({ type: String, attribute: "image-alt" })
614
- ], MegaMenuFeature.prototype, "imageAlt", 2);
615
- __decorateClass([
616
- property3({ type: String, attribute: "logo-url" })
617
- ], MegaMenuFeature.prototype, "logoUrl", 2);
618
- __decorateClass([
619
- property3({ type: String, attribute: "logo-alt" })
620
- ], MegaMenuFeature.prototype, "logoAlt", 2);
621
- __decorateClass([
622
- property3({ type: String, attribute: "cta-label" })
623
- ], MegaMenuFeature.prototype, "ctaLabel", 2);
624
- MegaMenuFeature = __decorateClass([
625
- customElement3("st-mega-menu-feature")
626
- ], MegaMenuFeature);
627
-
628
- export {
629
- MegaMenu,
630
- MegaMenuColumn,
631
- MegaMenuFeature
632
- };
633
- //# sourceMappingURL=chunk-J6EO4R73.js.map