@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.
- package/custom-elements.json +11634 -3153
- package/dist/attention-panel/index.js +2 -2
- package/dist/bar-chart/index.js +2 -2
- package/dist/bento-grid/index.d.ts +33 -1
- package/dist/bento-grid/index.js +4 -3
- package/dist/booking/index.d.ts +309 -0
- package/dist/booking/index.js +20 -0
- package/dist/booking/index.js.map +1 -0
- package/dist/card/index.d.ts +3 -4
- package/dist/card/index.js +2 -2
- package/dist/carousel/index.d.ts +20 -6
- package/dist/carousel/index.js +3 -3
- package/dist/chip/index.js +2 -2
- package/dist/{chunk-JQY2G4QK.js → chunk-2GTR37PU.js} +2 -2
- package/dist/chunk-2GTR37PU.js.map +1 -0
- package/dist/{chunk-FLY7TNRT.js → chunk-2HMOX253.js} +128 -25
- package/dist/chunk-2HMOX253.js.map +1 -0
- package/dist/{chunk-DH53HZPB.js → chunk-37KFBKPD.js} +32 -4
- package/dist/chunk-37KFBKPD.js.map +1 -0
- package/dist/{chunk-ALI26WOB.js → chunk-4XPKKYVZ.js} +54 -15
- package/dist/chunk-4XPKKYVZ.js.map +1 -0
- package/dist/chunk-535QAZ6A.js +236 -0
- package/dist/chunk-535QAZ6A.js.map +1 -0
- package/dist/{chunk-AKJQ345O.js → chunk-5AWGZQWU.js} +2 -2
- package/dist/chunk-6OZKZG5J.js +300 -0
- package/dist/chunk-6OZKZG5J.js.map +1 -0
- package/dist/chunk-AYNT7G3J.js +805 -0
- package/dist/chunk-AYNT7G3J.js.map +1 -0
- package/dist/chunk-BEWX3E6P.js +32 -0
- package/dist/chunk-BEWX3E6P.js.map +1 -0
- package/dist/chunk-CZUGPKXV.js +275 -0
- package/dist/chunk-CZUGPKXV.js.map +1 -0
- package/dist/{chunk-LEXZKGQX.js → chunk-DJFWZOZM.js} +107 -11
- package/dist/chunk-DJFWZOZM.js.map +1 -0
- package/dist/chunk-DPANTC3O.js +1714 -0
- package/dist/chunk-DPANTC3O.js.map +1 -0
- package/dist/chunk-EKZFFY45.js +426 -0
- package/dist/chunk-EKZFFY45.js.map +1 -0
- package/dist/chunk-ER7MCPDV.js +7 -0
- package/dist/chunk-ER7MCPDV.js.map +1 -0
- package/dist/chunk-EW2RK5Y6.js +383 -0
- package/dist/chunk-EW2RK5Y6.js.map +1 -0
- package/dist/{chunk-BLQV2YMO.js → chunk-EZOKT7NJ.js} +2 -2
- package/dist/chunk-FF2LWEF3.js +386 -0
- package/dist/chunk-FF2LWEF3.js.map +1 -0
- package/dist/chunk-FOUK3NHR.js +7 -0
- package/dist/chunk-FOUK3NHR.js.map +1 -0
- package/dist/chunk-GB4NGCZI.js +181 -0
- package/dist/chunk-GB4NGCZI.js.map +1 -0
- package/dist/{chunk-7NLZND6Q.js → chunk-GOFSMD6W.js} +35 -11
- package/dist/chunk-GOFSMD6W.js.map +1 -0
- package/dist/{chunk-6D6ROU7X.js → chunk-IGMVF3KK.js} +2 -2
- package/dist/{chunk-INMSEYT6.js → chunk-IVPVYVWG.js} +2 -2
- package/dist/chunk-JURCF4OD.js +381 -0
- package/dist/chunk-JURCF4OD.js.map +1 -0
- package/dist/{chunk-FZ36KL73.js → chunk-KZ7PMFWS.js} +11 -1
- package/dist/chunk-KZ7PMFWS.js.map +1 -0
- package/dist/{chunk-EMCQBT3S.js → chunk-LO6TZBGD.js} +129 -35
- package/dist/chunk-LO6TZBGD.js.map +1 -0
- package/dist/chunk-MFRGAT6D.js +860 -0
- package/dist/chunk-MFRGAT6D.js.map +1 -0
- package/dist/chunk-MIBVQXRU.js +1098 -0
- package/dist/chunk-MIBVQXRU.js.map +1 -0
- package/dist/{chunk-35TX3AOA.js → chunk-NABSRUXG.js} +2 -2
- package/dist/{chunk-R5G6KFTJ.js → chunk-NXKDZWS7.js} +44 -6
- package/dist/chunk-NXKDZWS7.js.map +1 -0
- package/dist/{chunk-KMU6ABQF.js → chunk-NXUS2CH7.js} +14 -1
- package/dist/chunk-NXUS2CH7.js.map +1 -0
- package/dist/{chunk-GJO3RGOB.js → chunk-OCPGOLVF.js} +56 -11
- package/dist/chunk-OCPGOLVF.js.map +1 -0
- package/dist/chunk-OEOE6IFY.js +628 -0
- package/dist/chunk-OEOE6IFY.js.map +1 -0
- package/dist/{chunk-SMLR736E.js → chunk-PV6OCXXN.js} +2 -2
- package/dist/chunk-PV6OCXXN.js.map +1 -0
- package/dist/chunk-Q66CJO3P.js +534 -0
- package/dist/chunk-Q66CJO3P.js.map +1 -0
- package/dist/{chunk-MG2VTZA4.js → chunk-QS3ANOWN.js} +2 -2
- package/dist/{chunk-ZN4LIKVG.js → chunk-QSJ543V2.js} +2 -2
- package/dist/chunk-QSJ543V2.js.map +1 -0
- package/dist/{chunk-FML6AG2V.js → chunk-RANC3OI6.js} +2 -2
- package/dist/chunk-T4BIN37Q.js +32 -0
- package/dist/chunk-T4BIN37Q.js.map +1 -0
- package/dist/{chunk-YVTFQHVY.js → chunk-TEAZZPDQ.js} +2 -2
- package/dist/chunk-TJK55CJ2.js +49 -0
- package/dist/chunk-TJK55CJ2.js.map +1 -0
- package/dist/chunk-UKIVLF7S.js +32 -0
- package/dist/chunk-UKIVLF7S.js.map +1 -0
- package/dist/chunk-V4R7PYP5.js +905 -0
- package/dist/chunk-V4R7PYP5.js.map +1 -0
- package/dist/{chunk-AG2COC64.js → chunk-VVYQ2DDS.js} +2 -2
- package/dist/chunk-WAMOAAMN.js +16 -0
- package/dist/chunk-WAMOAAMN.js.map +1 -0
- package/dist/chunk-WAYHHL4J.js +1234 -0
- package/dist/chunk-WAYHHL4J.js.map +1 -0
- package/dist/{chunk-YQ42EBK5.js → chunk-WH6HE6SY.js} +10 -4
- package/dist/chunk-WH6HE6SY.js.map +1 -0
- package/dist/chunk-XP6DI3VY.js +180 -0
- package/dist/chunk-XP6DI3VY.js.map +1 -0
- package/dist/{chunk-5EBWMPJS.js → chunk-XS6LNTSH.js} +76 -14
- package/dist/chunk-XS6LNTSH.js.map +1 -0
- package/dist/{chunk-WT4OATGP.js → chunk-ZKFCDVB4.js} +16 -7
- package/dist/chunk-ZKFCDVB4.js.map +1 -0
- package/dist/cms-theme.css +29 -0
- package/dist/contact-form/index.d.ts +220 -0
- package/dist/contact-form/index.js +16 -0
- package/dist/contact-form/index.js.map +1 -0
- package/dist/content-block/index.d.ts +39 -4
- package/dist/content-block/index.js +8 -4
- package/dist/cookie-consent/index.d.ts +60 -12
- package/dist/cookie-consent/index.js +3 -2
- package/dist/date-tile/index.js +2 -2
- package/dist/dropdown/index.d.ts +29 -11
- package/dist/dropdown/index.js +4 -2
- package/dist/feature-split/index.d.ts +6 -1
- package/dist/feature-split/index.js +5 -4
- package/dist/features-section/index.d.ts +53 -9
- package/dist/features-section/index.js +6 -5
- package/dist/flow/index.d.ts +35 -0
- package/dist/flow/index.js +9 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/footer/index.d.ts +13 -0
- package/dist/footer/index.js +2 -2
- package/dist/header/index.d.ts +135 -16
- package/dist/header/index.js +3 -2
- package/dist/hero/index.d.ts +92 -8
- package/dist/hero/index.js +6 -3
- package/dist/icon-button/index.d.ts +7 -7
- package/dist/icon-button/index.js +2 -2
- package/dist/index.d.ts +12 -3
- package/dist/index.js +121 -47
- package/dist/items-accordion/index.d.ts +9 -0
- package/dist/items-accordion/index.js +4 -3
- package/dist/kpi-card/index.js +2 -2
- package/dist/markdown/index.d.ts +19 -2
- package/dist/markdown/index.js +3 -2
- package/dist/mega-menu/index.d.ts +95 -7
- package/dist/mega-menu/index.js +7 -2
- package/dist/menu-grid/index.d.ts +2 -3
- package/dist/menu-grid/index.js +2 -2
- package/dist/menu-grid-item/index.d.ts +6 -8
- package/dist/menu-grid-item/index.js +2 -2
- package/dist/menu-item/index.d.ts +11 -7
- package/dist/menu-item/index.js +3 -2
- package/dist/plan-cards/index.d.ts +69 -0
- package/dist/plan-cards/index.js +13 -0
- package/dist/plan-cards/index.js.map +1 -0
- package/dist/product-nav/index.d.ts +127 -0
- package/dist/product-nav/index.js +11 -0
- package/dist/product-nav/index.js.map +1 -0
- package/dist/promo-banner/index.d.ts +42 -4
- package/dist/promo-banner/index.js +6 -3
- package/dist/quote-dialog/index.d.ts +174 -0
- package/dist/quote-dialog/index.js +22 -0
- package/dist/quote-dialog/index.js.map +1 -0
- package/dist/schema/index.d.ts +11 -0
- package/dist/schema/index.js +9 -0
- package/dist/schema/index.js.map +1 -1
- package/dist/screenshot-tour/index.d.ts +54 -0
- package/dist/screenshot-tour/index.js +9 -0
- package/dist/screenshot-tour/index.js.map +1 -0
- package/dist/section/index.d.ts +3 -0
- package/dist/section/index.js +3 -3
- package/dist/segmented-control/index.js +2 -2
- package/dist/select/index.js +2 -2
- package/dist/shared/styles.d.ts +7 -1
- package/dist/shared/styles.js +3 -1
- package/dist/stats/index.js +2 -2
- package/dist/steps/index.d.ts +45 -0
- package/dist/steps/index.js +11 -0
- package/dist/steps/index.js.map +1 -0
- package/dist/tag-strip/index.d.ts +33 -0
- package/dist/tag-strip/index.js +9 -0
- package/dist/tag-strip/index.js.map +1 -0
- package/dist/testimonials/index.d.ts +9 -1
- package/dist/testimonials/index.js +3 -3
- package/dist/tooltip/index.js +2 -2
- package/package.json +38 -2
- package/dist/chunk-5EBWMPJS.js.map +0 -1
- package/dist/chunk-76AVBQUA.js +0 -252
- package/dist/chunk-76AVBQUA.js.map +0 -1
- package/dist/chunk-7NLZND6Q.js.map +0 -1
- package/dist/chunk-ALI26WOB.js.map +0 -1
- package/dist/chunk-BMHMNXIA.js +0 -158
- package/dist/chunk-BMHMNXIA.js.map +0 -1
- package/dist/chunk-DH53HZPB.js.map +0 -1
- package/dist/chunk-EMCQBT3S.js.map +0 -1
- package/dist/chunk-FLY7TNRT.js.map +0 -1
- package/dist/chunk-FZ36KL73.js.map +0 -1
- package/dist/chunk-GJO3RGOB.js.map +0 -1
- package/dist/chunk-J6EO4R73.js +0 -633
- package/dist/chunk-J6EO4R73.js.map +0 -1
- package/dist/chunk-JKBWZLG4.js +0 -348
- package/dist/chunk-JKBWZLG4.js.map +0 -1
- package/dist/chunk-JQY2G4QK.js.map +0 -1
- package/dist/chunk-KMU6ABQF.js.map +0 -1
- package/dist/chunk-LEXZKGQX.js.map +0 -1
- package/dist/chunk-MSSH3HFK.js +0 -205
- package/dist/chunk-MSSH3HFK.js.map +0 -1
- package/dist/chunk-R5G6KFTJ.js.map +0 -1
- package/dist/chunk-SMLR736E.js.map +0 -1
- package/dist/chunk-VWS53WY4.js +0 -157
- package/dist/chunk-VWS53WY4.js.map +0 -1
- package/dist/chunk-WT4OATGP.js.map +0 -1
- package/dist/chunk-XWB4CKDU.js +0 -708
- package/dist/chunk-XWB4CKDU.js.map +0 -1
- package/dist/chunk-YQ42EBK5.js.map +0 -1
- package/dist/chunk-ZN4LIKVG.js.map +0 -1
- /package/dist/{chunk-AKJQ345O.js.map → chunk-5AWGZQWU.js.map} +0 -0
- /package/dist/{chunk-BLQV2YMO.js.map → chunk-EZOKT7NJ.js.map} +0 -0
- /package/dist/{chunk-6D6ROU7X.js.map → chunk-IGMVF3KK.js.map} +0 -0
- /package/dist/{chunk-INMSEYT6.js.map → chunk-IVPVYVWG.js.map} +0 -0
- /package/dist/{chunk-35TX3AOA.js.map → chunk-NABSRUXG.js.map} +0 -0
- /package/dist/{chunk-MG2VTZA4.js.map → chunk-QS3ANOWN.js.map} +0 -0
- /package/dist/{chunk-FML6AG2V.js.map → chunk-RANC3OI6.js.map} +0 -0
- /package/dist/{chunk-YVTFQHVY.js.map → chunk-TEAZZPDQ.js.map} +0 -0
- /package/dist/{chunk-AG2COC64.js.map → chunk-VVYQ2DDS.js.map} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
+
sectionEyebrowStyles,
|
|
2
3
|
sectionSubtitleStyles,
|
|
3
4
|
sectionTitleStyles
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KZ7PMFWS.js";
|
|
5
6
|
import {
|
|
6
7
|
controlBaseStyles,
|
|
7
8
|
rootFontFamilyStyles
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NXUS2CH7.js";
|
|
9
10
|
import {
|
|
10
11
|
__decorateClass
|
|
11
12
|
} from "./chunk-EUXUH3YW.js";
|
|
@@ -23,6 +24,7 @@ var Section = class extends LitElement {
|
|
|
23
24
|
this.spacingAbove = "m";
|
|
24
25
|
this.spacingBelow = "m";
|
|
25
26
|
this.width = "contained";
|
|
27
|
+
this.columns = 1;
|
|
26
28
|
this.textAlignment = "left";
|
|
27
29
|
}
|
|
28
30
|
render() {
|
|
@@ -34,7 +36,9 @@ var Section = class extends LitElement {
|
|
|
34
36
|
${this.title ? html`<h2 class="title" part="title">${this.title}</h2>` : nothing}
|
|
35
37
|
${this.subtitle ? html`<p class="subtitle" part="subtitle">${this.subtitle}</p>` : nothing}
|
|
36
38
|
</div>` : nothing}
|
|
37
|
-
<
|
|
39
|
+
<div class="content" part="content">
|
|
40
|
+
<slot></slot>
|
|
41
|
+
</div>
|
|
38
42
|
</div>
|
|
39
43
|
`;
|
|
40
44
|
}
|
|
@@ -109,6 +113,18 @@ Section.styles = css`
|
|
|
109
113
|
max-width: none;
|
|
110
114
|
}
|
|
111
115
|
|
|
116
|
+
/* columns="2": the slotted children sit in two equal columns; they stack below 720px. */
|
|
117
|
+
.content {
|
|
118
|
+
display: block;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
:host([columns='2']) .content {
|
|
122
|
+
display: grid;
|
|
123
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
124
|
+
gap: var(--st-space-48);
|
|
125
|
+
align-items: start;
|
|
126
|
+
}
|
|
127
|
+
|
|
112
128
|
.header {
|
|
113
129
|
margin-bottom: var(--st-space-48);
|
|
114
130
|
}
|
|
@@ -129,12 +145,7 @@ Section.styles = css`
|
|
|
129
145
|
}
|
|
130
146
|
|
|
131
147
|
.eyebrow {
|
|
132
|
-
|
|
133
|
-
font-size: var(--st-text-sm);
|
|
134
|
-
font-weight: var(--st-font-weight-bold);
|
|
135
|
-
letter-spacing: 0.12em;
|
|
136
|
-
text-transform: uppercase;
|
|
137
|
-
color: var(--st-color-text-muted);
|
|
148
|
+
${sectionEyebrowStyles}
|
|
138
149
|
}
|
|
139
150
|
|
|
140
151
|
.title {
|
|
@@ -154,7 +165,10 @@ Section.styles = css`
|
|
|
154
165
|
margin-bottom: 0;
|
|
155
166
|
}
|
|
156
167
|
|
|
157
|
-
:host([background='dark']) .eyebrow
|
|
168
|
+
:host([background='dark']) .eyebrow {
|
|
169
|
+
color: var(--st-cms-highlight);
|
|
170
|
+
}
|
|
171
|
+
|
|
158
172
|
:host([background='dark']) .subtitle {
|
|
159
173
|
color: color-mix(in oklch, var(--st-cms-band-dark-color) 80%, transparent);
|
|
160
174
|
}
|
|
@@ -164,6 +178,13 @@ Section.styles = css`
|
|
|
164
178
|
color: color-mix(in oklch, var(--st-color-on-solid) 80%, transparent);
|
|
165
179
|
}
|
|
166
180
|
|
|
181
|
+
@media (max-width: 720px) {
|
|
182
|
+
:host([columns='2']) .content {
|
|
183
|
+
grid-template-columns: minmax(0, 1fr);
|
|
184
|
+
gap: var(--st-space-24);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
167
188
|
@media (max-width: 768px) {
|
|
168
189
|
:host {
|
|
169
190
|
--st-section-space-l: 3.5rem;
|
|
@@ -194,6 +215,9 @@ __decorateClass([
|
|
|
194
215
|
__decorateClass([
|
|
195
216
|
property({ type: String, reflect: true })
|
|
196
217
|
], Section.prototype, "width", 2);
|
|
218
|
+
__decorateClass([
|
|
219
|
+
property({ type: Number, reflect: true })
|
|
220
|
+
], Section.prototype, "columns", 2);
|
|
197
221
|
__decorateClass([
|
|
198
222
|
property({ type: String, reflect: true, attribute: "text-alignment" })
|
|
199
223
|
], Section.prototype, "textAlignment", 2);
|
|
@@ -204,4 +228,4 @@ Section = __decorateClass([
|
|
|
204
228
|
export {
|
|
205
229
|
Section
|
|
206
230
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
231
|
+
//# sourceMappingURL=chunk-GOFSMD6W.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/section/Section.ts"],"sourcesContent":["import { LitElement, css, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport { controlBaseStyles, rootFontFamilyStyles } from '../shared/styles';\nimport { sectionEyebrowStyles, sectionSubtitleStyles, sectionTitleStyles } from '../shared/section-styles';\n\n/**\n * A page band that holds other content: sets the background, the spacing above and below, and\n * the content width, with an optional eyebrow/title/subtitle heading over its slotted children.\n * Use it to give a run of components one dark or tinted backdrop and a consistent vertical rhythm,\n * the way enterprise marketing pages stack full-width sections.\n *\n * @slot - The section's content.\n * @cssprop --st-section-bg - Overrides the background colour picked by `background`.\n * @cssprop --st-section-padding-inline - Overrides the left/right padding (not with `width=\"full\"`).\n * @csspart inner - The width-limited content box.\n * @csspart header - The heading block.\n * @csspart content - The wrapper around the slot (the grid when `columns` is 2).\n */\n@customElement('st-section')\nexport class Section extends LitElement {\n static styles = css`\n ${controlBaseStyles}\n\n :host {\n --st-section-space-none: 0;\n --st-section-space-s: var(--st-space-24);\n --st-section-space-m: var(--st-space-48);\n --st-section-space-l: 4.5rem;\n --st-section-space-xl: 6rem;\n --st-section-space-xxl: 8rem;\n\n display: block;\n box-sizing: border-box;\n width: 100%;\n /* !important on every padding rule: a page-level reset (e.g. Tailwind Preflight) otherwise\n zeroes a shadow host's padding. Rescale it with the --st-section-space-* tokens. */\n padding: var(--st-section-space-m) var(--st-section-padding-inline, var(--st-space-24)) !important;\n background: var(--st-section-bg, var(--st-color-surface));\n color: var(--st-color-text-strong);\n ${rootFontFamilyStyles}\n }\n\n :host([background='subtle']) {\n background: var(--st-section-bg, var(--st-color-subtle));\n }\n\n :host([background='dark']) {\n background: var(--st-section-bg, var(--st-cms-band-dark-bg));\n color: var(--st-cms-band-dark-color);\n }\n\n :host([background='accent']) {\n background: var(--st-section-bg, var(--st-color-accent));\n color: var(--st-color-on-solid);\n }\n\n :host([background='transparent']) {\n background: var(--st-section-bg, transparent);\n }\n\n :host([spacing-above='none']) { padding-top: var(--st-section-space-none) !important; }\n :host([spacing-above='s']) { padding-top: var(--st-section-space-s) !important; }\n :host([spacing-above='l']) { padding-top: var(--st-section-space-l) !important; }\n :host([spacing-above='xl']) { padding-top: var(--st-section-space-xl) !important; }\n :host([spacing-above='xxl']) { padding-top: var(--st-section-space-xxl) !important; }\n\n :host([spacing-below='none']) { padding-bottom: var(--st-section-space-none) !important; }\n :host([spacing-below='s']) { padding-bottom: var(--st-section-space-s) !important; }\n :host([spacing-below='l']) { padding-bottom: var(--st-section-space-l) !important; }\n :host([spacing-below='xl']) { padding-bottom: var(--st-section-space-xl) !important; }\n :host([spacing-below='xxl']) { padding-bottom: var(--st-section-space-xxl) !important; }\n\n :host([width='full']) {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n\n .inner {\n max-width: var(--st-cms-container-max);\n margin: 0 auto;\n }\n\n :host([width='narrow']) .inner {\n max-width: 800px;\n }\n\n :host([width='full']) .inner {\n max-width: none;\n }\n\n /* columns=\"2\": the slotted children sit in two equal columns; they stack below 720px. */\n .content {\n display: block;\n }\n\n :host([columns='2']) .content {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: var(--st-space-48);\n align-items: start;\n }\n\n .header {\n margin-bottom: var(--st-space-48);\n }\n\n :host([text-alignment='center']) .header {\n text-align: center;\n }\n\n :host([text-alignment='center']) .subtitle {\n margin-inline: auto;\n }\n\n :host([width='full']) .header {\n max-width: var(--st-cms-container-max);\n margin-inline: auto;\n padding-inline: var(--st-space-24);\n box-sizing: border-box;\n }\n\n .eyebrow {\n ${sectionEyebrowStyles}\n }\n\n .title {\n ${sectionTitleStyles}\n color: inherit;\n letter-spacing: -0.02em;\n max-width: 24ch;\n }\n\n :host([text-alignment='center']) .title {\n margin-inline: auto;\n }\n\n .subtitle {\n ${sectionSubtitleStyles}\n max-width: 60ch;\n margin-bottom: 0;\n }\n\n :host([background='dark']) .eyebrow {\n color: var(--st-cms-highlight);\n }\n\n :host([background='dark']) .subtitle {\n color: color-mix(in oklch, var(--st-cms-band-dark-color) 80%, transparent);\n }\n\n :host([background='accent']) .eyebrow,\n :host([background='accent']) .subtitle {\n color: color-mix(in oklch, var(--st-color-on-solid) 80%, transparent);\n }\n\n @media (max-width: 720px) {\n :host([columns='2']) .content {\n grid-template-columns: minmax(0, 1fr);\n gap: var(--st-space-24);\n }\n }\n\n @media (max-width: 768px) {\n :host {\n --st-section-space-l: 3.5rem;\n --st-section-space-xl: 4.5rem;\n --st-section-space-xxl: 5.5rem;\n --st-section-padding-inline: var(--st-space-20);\n }\n }\n `;\n\n @property({ type: String })\n eyebrow = '';\n\n @property({ type: String })\n title = '';\n\n @property({ type: String })\n subtitle = '';\n\n /** `default` (page surface), `subtle`, `dark`, `accent` or `transparent`. */\n @property({ type: String, reflect: true })\n background: 'default' | 'subtle' | 'dark' | 'accent' | 'transparent' = 'default';\n\n /** Space above the content: `none`, `s`, `m` (default), `l`, `xl` or `xxl`. */\n @property({ type: String, reflect: true, attribute: 'spacing-above' })\n spacingAbove: 'none' | 's' | 'm' | 'l' | 'xl' | 'xxl' = 'm';\n\n /** Space below the content: `none`, `s`, `m` (default), `l`, `xl` or `xxl`. */\n @property({ type: String, reflect: true, attribute: 'spacing-below' })\n spacingBelow: 'none' | 's' | 'm' | 'l' | 'xl' | 'xxl' = 'm';\n\n /** `contained` (default, the page container width), `narrow` (reading width) or `full` (edge to edge). */\n @property({ type: String, reflect: true })\n width: 'contained' | 'narrow' | 'full' = 'contained';\n\n /** Columns for the slotted children: `1` (default, stacked) or `2` (two equal columns, stacked again below 720px). */\n @property({ type: Number, reflect: true })\n columns: 1 | 2 = 1;\n\n /** Alignment of the heading. */\n @property({ type: String, reflect: true, attribute: 'text-alignment' })\n textAlignment: 'left' | 'center' = 'left';\n\n render() {\n const heading = this.eyebrow || this.title || this.subtitle;\n return html`\n <div class=\"inner\" part=\"inner\">\n ${heading\n ? html`<div class=\"header\" part=\"header\">\n ${this.eyebrow ? html`<p class=\"eyebrow\" part=\"eyebrow\">${this.eyebrow}</p>` : nothing}\n ${this.title ? html`<h2 class=\"title\" part=\"title\">${this.title}</h2>` : nothing}\n ${this.subtitle ? html`<p class=\"subtitle\" part=\"subtitle\">${this.subtitle}</p>` : nothing}\n </div>`\n : nothing}\n <div class=\"content\" part=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,gBAAgB;AAmBjC,IAAM,UAAN,cAAsB,WAAW;AAAA,EAAjC;AAAA;AA0JL,mBAAU;AAGV,iBAAQ;AAGR,oBAAW;AAIX,sBAAuE;AAIvE,wBAAwD;AAIxD,wBAAwD;AAIxD,iBAAyC;AAIzC,mBAAiB;AAIjB,yBAAmC;AAAA;AAAA,EAEnC,SAAS;AACP,UAAM,UAAU,KAAK,WAAW,KAAK,SAAS,KAAK;AACnD,WAAO;AAAA;AAAA,UAED,UACE;AAAA,gBACI,KAAK,UAAU,yCAAyC,KAAK,OAAO,SAAS,OAAO;AAAA,gBACpF,KAAK,QAAQ,sCAAsC,KAAK,KAAK,UAAU,OAAO;AAAA,gBAC9E,KAAK,WAAW,2CAA2C,KAAK,QAAQ,SAAS,OAAO;AAAA,sBAE5F,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB;AACF;AA3Ma,QACJ,SAAS;AAAA,MACZ,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAkBf,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAmFpB,oBAAoB;AAAA;AAAA;AAAA;AAAA,QAIpB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAWlB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoC3B;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAzJf,QA0JX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GA5Jf,QA6JX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GA/Jf,QAgKX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,GAnK9B,QAoKX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,gBAAgB,CAAC;AAAA,GAvK1D,QAwKX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,gBAAgB,CAAC;AAAA,GA3K1D,QA4KX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,GA/K9B,QAgLX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,GAnL9B,QAoLX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,MAAM,WAAW,iBAAiB,CAAC;AAAA,GAvL3D,QAwLX;AAxLW,UAAN;AAAA,EADN,cAAc,YAAY;AAAA,GACd;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
cardShellStyles,
|
|
3
3
|
fontFamilyStyles
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NXUS2CH7.js";
|
|
5
5
|
import {
|
|
6
6
|
__decorateClass
|
|
7
7
|
} from "./chunk-EUXUH3YW.js";
|
|
@@ -191,4 +191,4 @@ KpiCard = __decorateClass([
|
|
|
191
191
|
export {
|
|
192
192
|
KpiCard
|
|
193
193
|
};
|
|
194
|
-
//# sourceMappingURL=chunk-
|
|
194
|
+
//# sourceMappingURL=chunk-IGMVF3KK.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fontFamilyStyles
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-NXUS2CH7.js";
|
|
4
4
|
import {
|
|
5
5
|
__decorateClass
|
|
6
6
|
} from "./chunk-EUXUH3YW.js";
|
|
@@ -84,4 +84,4 @@ DateTile = __decorateClass([
|
|
|
84
84
|
export {
|
|
85
85
|
DateTile
|
|
86
86
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
87
|
+
//# sourceMappingURL=chunk-IVPVYVWG.js.map
|
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import {
|
|
2
|
+
renderMarkdown
|
|
3
|
+
} from "./chunk-TJK55CJ2.js";
|
|
4
|
+
import {
|
|
5
|
+
sectionEyebrowStyles,
|
|
6
|
+
sectionHeaderStyles,
|
|
7
|
+
sectionSubtitleStyles,
|
|
8
|
+
sectionTitleStyles
|
|
9
|
+
} from "./chunk-KZ7PMFWS.js";
|
|
10
|
+
import {
|
|
11
|
+
controlBaseStyles,
|
|
12
|
+
fontFamilyStyles
|
|
13
|
+
} from "./chunk-NXUS2CH7.js";
|
|
14
|
+
import {
|
|
15
|
+
__decorateClass
|
|
16
|
+
} from "./chunk-EUXUH3YW.js";
|
|
17
|
+
|
|
18
|
+
// src/steps/Steps.ts
|
|
19
|
+
import { LitElement, css, html, nothing } from "lit";
|
|
20
|
+
import { customElement, property } from "lit/decorators.js";
|
|
21
|
+
import { unsafeHTML } from "lit/directives/unsafe-html.js";
|
|
22
|
+
var Steps = class extends LitElement {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.eyebrow = "";
|
|
26
|
+
this.title = "";
|
|
27
|
+
this.subtitle = "";
|
|
28
|
+
this.items = [];
|
|
29
|
+
this.highlightLast = false;
|
|
30
|
+
this.inverted = false;
|
|
31
|
+
this.variant = "default";
|
|
32
|
+
this.markdown = false;
|
|
33
|
+
}
|
|
34
|
+
renderDescription(step) {
|
|
35
|
+
if (!step.description) return nothing;
|
|
36
|
+
return this.markdown ? html`<div class="description" part="description">${unsafeHTML(renderMarkdown(step.description))}</div>` : html`<p class="description" part="description">${step.description}</p>`;
|
|
37
|
+
}
|
|
38
|
+
renderTitle(step) {
|
|
39
|
+
const title = html`<h3 class="card-title" part="card-title">${step.title}</h3>`;
|
|
40
|
+
if (!step.badge) return title;
|
|
41
|
+
return html`<div class="title-row">
|
|
42
|
+
${title}
|
|
43
|
+
<span class="badge" part="badge">${step.badge}</span>
|
|
44
|
+
</div>`;
|
|
45
|
+
}
|
|
46
|
+
render() {
|
|
47
|
+
const heading = this.eyebrow || this.title || this.subtitle;
|
|
48
|
+
const last = this.items.length - 1;
|
|
49
|
+
return html`
|
|
50
|
+
<div class="container" part="container">
|
|
51
|
+
${heading ? html`<div class="header" part="header">
|
|
52
|
+
${this.eyebrow ? html`<p class="eyebrow" part="eyebrow">${this.eyebrow}</p>` : nothing}
|
|
53
|
+
${this.title ? html`<h2 class="title" part="title">${this.title}</h2>` : nothing}
|
|
54
|
+
${this.subtitle ? html`<p class="subtitle" part="subtitle">${this.subtitle}</p>` : nothing}
|
|
55
|
+
</div>` : nothing}
|
|
56
|
+
<ol class="grid" part="grid" aria-label=${this.title || nothing}>
|
|
57
|
+
${this.items.map(
|
|
58
|
+
(step, index) => html`
|
|
59
|
+
<li class="card ${this.highlightLast && index === last ? "highlight" : ""}" part="card">
|
|
60
|
+
<span class="number" part="number" aria-hidden="true">${String(index + 1).padStart(2, "0")}</span>
|
|
61
|
+
${this.renderTitle(step)}
|
|
62
|
+
${this.renderDescription(step)}
|
|
63
|
+
</li>
|
|
64
|
+
`
|
|
65
|
+
)}
|
|
66
|
+
</ol>
|
|
67
|
+
</div>
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
Steps.styles = css`
|
|
72
|
+
${controlBaseStyles}
|
|
73
|
+
/* fontFamilyStyles is a bare declaration: it must sit inside a rule, or it swallows the next one. */
|
|
74
|
+
:host {
|
|
75
|
+
${fontFamilyStyles}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host {
|
|
79
|
+
display: block;
|
|
80
|
+
box-sizing: border-box;
|
|
81
|
+
/* !important: a page-level reset (e.g. Tailwind Preflight) otherwise zeroes a shadow host's
|
|
82
|
+
padding; override with --st-steps-padding instead. */
|
|
83
|
+
padding: var(--st-steps-padding, var(--st-cms-section-padding) var(--st-space-24)) !important;
|
|
84
|
+
background: var(--st-color-page);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
:host([inverted]) {
|
|
88
|
+
background: var(--st-cms-band-dark-bg);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.container {
|
|
92
|
+
max-width: var(--st-cms-container-max);
|
|
93
|
+
margin: 0 auto;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.header {
|
|
97
|
+
${sectionHeaderStyles}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.eyebrow {
|
|
101
|
+
${sectionEyebrowStyles}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.title {
|
|
105
|
+
${sectionTitleStyles}
|
|
106
|
+
color: inherit;
|
|
107
|
+
letter-spacing: -0.02em;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.subtitle {
|
|
111
|
+
${sectionSubtitleStyles}
|
|
112
|
+
max-width: 60ch;
|
|
113
|
+
margin: 0 auto;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.grid {
|
|
117
|
+
list-style: none;
|
|
118
|
+
margin: 0;
|
|
119
|
+
padding: 0;
|
|
120
|
+
display: grid;
|
|
121
|
+
grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
|
|
122
|
+
gap: var(--st-space-24);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.card {
|
|
126
|
+
display: flex;
|
|
127
|
+
flex-direction: column;
|
|
128
|
+
gap: var(--st-space-12);
|
|
129
|
+
box-sizing: border-box;
|
|
130
|
+
margin: 0;
|
|
131
|
+
padding: var(--st-space-32);
|
|
132
|
+
border: 1px solid var(--st-color-border);
|
|
133
|
+
border-radius: var(--st-radius-lg);
|
|
134
|
+
background: var(--st-color-surface);
|
|
135
|
+
color: var(--st-color-text);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.number {
|
|
139
|
+
font-size: var(--st-cms-text-3xl);
|
|
140
|
+
font-weight: var(--st-font-weight-bold);
|
|
141
|
+
line-height: 1;
|
|
142
|
+
letter-spacing: -0.02em;
|
|
143
|
+
color: var(--st-color-accent);
|
|
144
|
+
font-variant-numeric: tabular-nums;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.card-title {
|
|
148
|
+
margin: var(--st-space-8) 0 0;
|
|
149
|
+
font-size: var(--st-text-xl);
|
|
150
|
+
font-weight: var(--st-font-weight-semibold);
|
|
151
|
+
line-height: 1.3;
|
|
152
|
+
color: var(--st-color-text-strong);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.description {
|
|
156
|
+
margin: 0;
|
|
157
|
+
font-size: var(--st-text-md);
|
|
158
|
+
line-height: 1.6;
|
|
159
|
+
color: var(--st-color-text-muted);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* inverted: a dark band with light cards; the number moves to the cyan highlight so it reads on navy. */
|
|
163
|
+
:host([inverted]) .card {
|
|
164
|
+
background: color-mix(in oklch, var(--st-cms-band-dark-color) 6%, transparent);
|
|
165
|
+
border-color: color-mix(in oklch, var(--st-cms-band-dark-color) 16%, transparent);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
:host([inverted]) .number {
|
|
169
|
+
color: var(--st-cms-highlight);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
:host([inverted]) .title,
|
|
173
|
+
:host([inverted]) .card-title {
|
|
174
|
+
color: var(--st-cms-band-dark-color);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
:host([inverted]) .eyebrow,
|
|
178
|
+
:host([inverted]) .subtitle,
|
|
179
|
+
:host([inverted]) .description {
|
|
180
|
+
color: color-mix(in oklch, var(--st-cms-band-dark-color) 75%, transparent);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* highlightLast: the final card is the dark call-out. Declared after the inverted rules so it wins. */
|
|
184
|
+
.card.highlight {
|
|
185
|
+
background: var(--st-cms-navy);
|
|
186
|
+
border-color: var(--st-cms-navy);
|
|
187
|
+
color: var(--st-cms-on-dark);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.card.highlight .number {
|
|
191
|
+
color: var(--st-cms-highlight);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.card.highlight .card-title {
|
|
195
|
+
color: var(--st-cms-on-dark);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.card.highlight .description {
|
|
199
|
+
color: color-mix(in oklch, var(--st-cms-on-dark) 80%, transparent);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* variant="band": a white full-width band with hairline borders; light blue cards, azure numbers.
|
|
203
|
+
The heading block is left-aligned in a 720px column (label, 36px title, 18px lead). */
|
|
204
|
+
:host([variant='band']) {
|
|
205
|
+
padding: 0 !important;
|
|
206
|
+
background: var(--st-color-surface, #ffffff);
|
|
207
|
+
border-top: 1px solid var(--st-cms-primary-100);
|
|
208
|
+
border-bottom: 1px solid var(--st-cms-primary-100);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/* The band's section rhythm and gutters sit on the container (inside the shadow root, so a page
|
|
212
|
+
reset cannot zero them), which is a 1200px box centred on the page. */
|
|
213
|
+
:host([variant='band']) .container {
|
|
214
|
+
box-sizing: border-box;
|
|
215
|
+
/* The side gutter sits inside the box, so the content itself still gets the full container width. */
|
|
216
|
+
max-width: calc(var(--st-cms-container-max) + 2 * var(--st-space-24));
|
|
217
|
+
padding: var(--st-cms-section-padding, 5rem) var(--st-space-24);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.description p {
|
|
221
|
+
margin: 0;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.description code {
|
|
225
|
+
font-family: ui-monospace, Menlo, monospace;
|
|
226
|
+
font-size: 13px;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
:host([variant='band']) .header {
|
|
230
|
+
max-width: 720px;
|
|
231
|
+
margin-bottom: var(--st-space-48);
|
|
232
|
+
text-align: left;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
:host([variant='band']) .eyebrow {
|
|
236
|
+
margin-bottom: var(--st-space-12);
|
|
237
|
+
font-size: 12px;
|
|
238
|
+
font-weight: var(--st-font-weight-semibold);
|
|
239
|
+
letter-spacing: 0.05em;
|
|
240
|
+
color: var(--st-cms-eyebrow, #0c64c5);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
:host([variant='band']) .title {
|
|
244
|
+
font-size: 36px;
|
|
245
|
+
line-height: 1.2;
|
|
246
|
+
font-weight: var(--st-font-weight-bold);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
:host([variant='band']) .subtitle {
|
|
250
|
+
max-width: none;
|
|
251
|
+
margin: 0;
|
|
252
|
+
font-size: 18px;
|
|
253
|
+
line-height: 1.6;
|
|
254
|
+
color: var(--st-cms-text, var(--st-cms-navy-2, #03346b));
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
:host([variant='band']) .card {
|
|
258
|
+
gap: var(--st-space-12);
|
|
259
|
+
padding: var(--st-space-24);
|
|
260
|
+
border: 1px solid var(--st-cms-primary-100);
|
|
261
|
+
border-radius: 12px;
|
|
262
|
+
background: var(--st-cms-surface-soft);
|
|
263
|
+
color: var(--st-cms-text, var(--st-cms-navy-2, #03346b));
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
:host([variant='band']) .number {
|
|
267
|
+
font-size: 32px;
|
|
268
|
+
font-weight: var(--st-font-weight-bold);
|
|
269
|
+
color: var(--st-cms-brand-azure);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
:host([variant='band']) .card-title {
|
|
273
|
+
margin: 0;
|
|
274
|
+
font-size: 20px;
|
|
275
|
+
font-weight: var(--st-font-weight-semibold);
|
|
276
|
+
line-height: 1.3;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
:host([variant='band']) .description {
|
|
280
|
+
font-size: 14px;
|
|
281
|
+
line-height: 1.5;
|
|
282
|
+
color: var(--st-cms-text, var(--st-cms-navy-2, #03346b));
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.title-row {
|
|
286
|
+
display: flex;
|
|
287
|
+
flex-wrap: wrap;
|
|
288
|
+
align-items: center;
|
|
289
|
+
gap: var(--st-space-8) var(--st-space-12);
|
|
290
|
+
margin-top: var(--st-space-8);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
.title-row .card-title {
|
|
294
|
+
margin: 0;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.badge {
|
|
298
|
+
display: inline-flex;
|
|
299
|
+
align-items: center;
|
|
300
|
+
padding: 4px 10px;
|
|
301
|
+
border-radius: var(--st-radius-full);
|
|
302
|
+
background: var(--st-cms-primary-100);
|
|
303
|
+
color: var(--st-cms-navy);
|
|
304
|
+
font-size: var(--st-text-xs);
|
|
305
|
+
font-weight: var(--st-font-weight-bold);
|
|
306
|
+
line-height: 1.4;
|
|
307
|
+
white-space: nowrap;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.card.highlight .badge {
|
|
311
|
+
background: var(--st-cms-highlight);
|
|
312
|
+
color: var(--st-cms-navy);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/* band: the highlighted card stays a dark call-out (the band's light card rules would hide its
|
|
316
|
+
white title). Declared last, with the .card.highlight selector, so it wins over the band rules. */
|
|
317
|
+
:host([variant='band']) .card.highlight {
|
|
318
|
+
background: var(--st-cms-navy);
|
|
319
|
+
border-color: var(--st-cms-primary-200);
|
|
320
|
+
color: var(--st-cms-primary-100);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
:host([variant='band']) .card.highlight .number {
|
|
324
|
+
color: var(--st-cms-highlight);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
:host([variant='band']) .card.highlight .card-title {
|
|
328
|
+
color: var(--st-cms-on-dark);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
:host([variant='band']) .card.highlight .description {
|
|
332
|
+
color: var(--st-cms-primary-100);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
:host([variant='band']) .badge {
|
|
336
|
+
padding: 2px 8px;
|
|
337
|
+
font-size: 12px;
|
|
338
|
+
font-weight: var(--st-font-weight-semibold);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
@media (max-width: 600px) {
|
|
342
|
+
:host {
|
|
343
|
+
padding: var(--st-steps-padding, var(--st-space-40) var(--st-space-20)) !important;
|
|
344
|
+
}
|
|
345
|
+
.card {
|
|
346
|
+
padding: var(--st-space-24);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
`;
|
|
350
|
+
__decorateClass([
|
|
351
|
+
property({ type: String })
|
|
352
|
+
], Steps.prototype, "eyebrow", 2);
|
|
353
|
+
__decorateClass([
|
|
354
|
+
property({ type: String })
|
|
355
|
+
], Steps.prototype, "title", 2);
|
|
356
|
+
__decorateClass([
|
|
357
|
+
property({ type: String })
|
|
358
|
+
], Steps.prototype, "subtitle", 2);
|
|
359
|
+
__decorateClass([
|
|
360
|
+
property({ attribute: false })
|
|
361
|
+
], Steps.prototype, "items", 2);
|
|
362
|
+
__decorateClass([
|
|
363
|
+
property({ type: Boolean, reflect: true, attribute: "highlight-last" })
|
|
364
|
+
], Steps.prototype, "highlightLast", 2);
|
|
365
|
+
__decorateClass([
|
|
366
|
+
property({ type: Boolean, reflect: true })
|
|
367
|
+
], Steps.prototype, "inverted", 2);
|
|
368
|
+
__decorateClass([
|
|
369
|
+
property({ type: String, reflect: true })
|
|
370
|
+
], Steps.prototype, "variant", 2);
|
|
371
|
+
__decorateClass([
|
|
372
|
+
property({ type: Boolean, reflect: true })
|
|
373
|
+
], Steps.prototype, "markdown", 2);
|
|
374
|
+
Steps = __decorateClass([
|
|
375
|
+
customElement("st-steps")
|
|
376
|
+
], Steps);
|
|
377
|
+
|
|
378
|
+
export {
|
|
379
|
+
Steps
|
|
380
|
+
};
|
|
381
|
+
//# sourceMappingURL=chunk-JURCF4OD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/steps/Steps.ts"],"sourcesContent":["import { LitElement, css, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\n\nimport { controlBaseStyles, fontFamilyStyles } from '../shared/styles';\nimport { renderMarkdown } from '../shared/markdown';\nimport { sectionEyebrowStyles, sectionHeaderStyles, sectionSubtitleStyles, sectionTitleStyles } from '../shared/section-styles';\n\nexport interface StepItem {\n title: string;\n /** Plain text, or Markdown when the block has `markdown` set (for inline `code`). */\n description?: string;\n /** Small pill beside the title (e.g. \"Included\"). On the highlighted last card it turns cyan. */\n badge?: string;\n}\n\n/**\n * A numbered process: a responsive grid of cards, each with an automatic \"01\", \"02\", ... number, a\n * title and a description. `highlightLast` makes the final card a dark navy call-out, the way\n * enterprise pages close a how-it-works sequence. `inverted` puts the whole block on the dark band.\n * `variant=\"band\"` sets the block on a white full-width band with hairline top and bottom borders;\n * the cards sit on a light blue surface and the numbers are large azure.\n *\n * @cssprop --st-steps-padding - Overrides the block's padding.\n * @csspart header - The eyebrow/title/subtitle block.\n * @csspart card - Each step card (an `li`).\n * @csspart number - The step number.\n * @csspart badge - The pill beside a step's title.\n */\n@customElement('st-steps')\nexport class Steps extends LitElement {\n static styles = css`\n ${controlBaseStyles}\n /* fontFamilyStyles is a bare declaration: it must sit inside a rule, or it swallows the next one. */\n :host {\n ${fontFamilyStyles}\n }\n\n :host {\n display: block;\n box-sizing: border-box;\n /* !important: a page-level reset (e.g. Tailwind Preflight) otherwise zeroes a shadow host's\n padding; override with --st-steps-padding instead. */\n padding: var(--st-steps-padding, var(--st-cms-section-padding) var(--st-space-24)) !important;\n background: var(--st-color-page);\n }\n\n :host([inverted]) {\n background: var(--st-cms-band-dark-bg);\n }\n\n .container {\n max-width: var(--st-cms-container-max);\n margin: 0 auto;\n }\n\n .header {\n ${sectionHeaderStyles}\n }\n\n .eyebrow {\n ${sectionEyebrowStyles}\n }\n\n .title {\n ${sectionTitleStyles}\n color: inherit;\n letter-spacing: -0.02em;\n }\n\n .subtitle {\n ${sectionSubtitleStyles}\n max-width: 60ch;\n margin: 0 auto;\n }\n\n .grid {\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));\n gap: var(--st-space-24);\n }\n\n .card {\n display: flex;\n flex-direction: column;\n gap: var(--st-space-12);\n box-sizing: border-box;\n margin: 0;\n padding: var(--st-space-32);\n border: 1px solid var(--st-color-border);\n border-radius: var(--st-radius-lg);\n background: var(--st-color-surface);\n color: var(--st-color-text);\n }\n\n .number {\n font-size: var(--st-cms-text-3xl);\n font-weight: var(--st-font-weight-bold);\n line-height: 1;\n letter-spacing: -0.02em;\n color: var(--st-color-accent);\n font-variant-numeric: tabular-nums;\n }\n\n .card-title {\n margin: var(--st-space-8) 0 0;\n font-size: var(--st-text-xl);\n font-weight: var(--st-font-weight-semibold);\n line-height: 1.3;\n color: var(--st-color-text-strong);\n }\n\n .description {\n margin: 0;\n font-size: var(--st-text-md);\n line-height: 1.6;\n color: var(--st-color-text-muted);\n }\n\n /* inverted: a dark band with light cards; the number moves to the cyan highlight so it reads on navy. */\n :host([inverted]) .card {\n background: color-mix(in oklch, var(--st-cms-band-dark-color) 6%, transparent);\n border-color: color-mix(in oklch, var(--st-cms-band-dark-color) 16%, transparent);\n }\n\n :host([inverted]) .number {\n color: var(--st-cms-highlight);\n }\n\n :host([inverted]) .title,\n :host([inverted]) .card-title {\n color: var(--st-cms-band-dark-color);\n }\n\n :host([inverted]) .eyebrow,\n :host([inverted]) .subtitle,\n :host([inverted]) .description {\n color: color-mix(in oklch, var(--st-cms-band-dark-color) 75%, transparent);\n }\n\n /* highlightLast: the final card is the dark call-out. Declared after the inverted rules so it wins. */\n .card.highlight {\n background: var(--st-cms-navy);\n border-color: var(--st-cms-navy);\n color: var(--st-cms-on-dark);\n }\n\n .card.highlight .number {\n color: var(--st-cms-highlight);\n }\n\n .card.highlight .card-title {\n color: var(--st-cms-on-dark);\n }\n\n .card.highlight .description {\n color: color-mix(in oklch, var(--st-cms-on-dark) 80%, transparent);\n }\n\n /* variant=\"band\": a white full-width band with hairline borders; light blue cards, azure numbers.\n The heading block is left-aligned in a 720px column (label, 36px title, 18px lead). */\n :host([variant='band']) {\n padding: 0 !important;\n background: var(--st-color-surface, #ffffff);\n border-top: 1px solid var(--st-cms-primary-100);\n border-bottom: 1px solid var(--st-cms-primary-100);\n }\n\n /* The band's section rhythm and gutters sit on the container (inside the shadow root, so a page\n reset cannot zero them), which is a 1200px box centred on the page. */\n :host([variant='band']) .container {\n box-sizing: border-box;\n /* The side gutter sits inside the box, so the content itself still gets the full container width. */\n max-width: calc(var(--st-cms-container-max) + 2 * var(--st-space-24));\n padding: var(--st-cms-section-padding, 5rem) var(--st-space-24);\n }\n\n .description p {\n margin: 0;\n }\n\n .description code {\n font-family: ui-monospace, Menlo, monospace;\n font-size: 13px;\n }\n\n :host([variant='band']) .header {\n max-width: 720px;\n margin-bottom: var(--st-space-48);\n text-align: left;\n }\n\n :host([variant='band']) .eyebrow {\n margin-bottom: var(--st-space-12);\n font-size: 12px;\n font-weight: var(--st-font-weight-semibold);\n letter-spacing: 0.05em;\n color: var(--st-cms-eyebrow, #0c64c5);\n }\n\n :host([variant='band']) .title {\n font-size: 36px;\n line-height: 1.2;\n font-weight: var(--st-font-weight-bold);\n }\n\n :host([variant='band']) .subtitle {\n max-width: none;\n margin: 0;\n font-size: 18px;\n line-height: 1.6;\n color: var(--st-cms-text, var(--st-cms-navy-2, #03346b));\n }\n\n :host([variant='band']) .card {\n gap: var(--st-space-12);\n padding: var(--st-space-24);\n border: 1px solid var(--st-cms-primary-100);\n border-radius: 12px;\n background: var(--st-cms-surface-soft);\n color: var(--st-cms-text, var(--st-cms-navy-2, #03346b));\n }\n\n :host([variant='band']) .number {\n font-size: 32px;\n font-weight: var(--st-font-weight-bold);\n color: var(--st-cms-brand-azure);\n }\n\n :host([variant='band']) .card-title {\n margin: 0;\n font-size: 20px;\n font-weight: var(--st-font-weight-semibold);\n line-height: 1.3;\n }\n\n :host([variant='band']) .description {\n font-size: 14px;\n line-height: 1.5;\n color: var(--st-cms-text, var(--st-cms-navy-2, #03346b));\n }\n\n .title-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--st-space-8) var(--st-space-12);\n margin-top: var(--st-space-8);\n }\n\n .title-row .card-title {\n margin: 0;\n }\n\n .badge {\n display: inline-flex;\n align-items: center;\n padding: 4px 10px;\n border-radius: var(--st-radius-full);\n background: var(--st-cms-primary-100);\n color: var(--st-cms-navy);\n font-size: var(--st-text-xs);\n font-weight: var(--st-font-weight-bold);\n line-height: 1.4;\n white-space: nowrap;\n }\n\n .card.highlight .badge {\n background: var(--st-cms-highlight);\n color: var(--st-cms-navy);\n }\n\n /* band: the highlighted card stays a dark call-out (the band's light card rules would hide its\n white title). Declared last, with the .card.highlight selector, so it wins over the band rules. */\n :host([variant='band']) .card.highlight {\n background: var(--st-cms-navy);\n border-color: var(--st-cms-primary-200);\n color: var(--st-cms-primary-100);\n }\n\n :host([variant='band']) .card.highlight .number {\n color: var(--st-cms-highlight);\n }\n\n :host([variant='band']) .card.highlight .card-title {\n color: var(--st-cms-on-dark);\n }\n\n :host([variant='band']) .card.highlight .description {\n color: var(--st-cms-primary-100);\n }\n\n :host([variant='band']) .badge {\n padding: 2px 8px;\n font-size: 12px;\n font-weight: var(--st-font-weight-semibold);\n }\n\n @media (max-width: 600px) {\n :host {\n padding: var(--st-steps-padding, var(--st-space-40) var(--st-space-20)) !important;\n }\n .card {\n padding: var(--st-space-24);\n }\n }\n `;\n\n /** Small uppercase label above the title. */\n @property({ type: String })\n eyebrow = '';\n\n @property({ type: String })\n title = '';\n\n @property({ type: String })\n subtitle = '';\n\n /** The steps, in order. */\n @property({ attribute: false })\n items: StepItem[] = [];\n\n /** Renders the last step as a dark navy call-out card. */\n @property({ type: Boolean, reflect: true, attribute: 'highlight-last' })\n highlightLast = false;\n\n /** Puts the block on the dark band (`--st-cms-band-dark-bg`), which stays dark in the dark theme. */\n @property({ type: Boolean, reflect: true })\n inverted = false;\n\n /** `default` is the bordered card grid; `band` is a white full-width band with light blue cards. */\n @property({ type: String, reflect: true })\n variant: 'default' | 'band' = 'default';\n\n /** Renders each step's description as Markdown (inline `code`, links). Off by default: descriptions are plain text. */\n @property({ type: Boolean, reflect: true })\n markdown = false;\n\n private renderDescription(step: StepItem) {\n if (!step.description) return nothing;\n return this.markdown\n ? html`<div class=\"description\" part=\"description\">${unsafeHTML(renderMarkdown(step.description))}</div>`\n : html`<p class=\"description\" part=\"description\">${step.description}</p>`;\n }\n\n private renderTitle(step: StepItem) {\n const title = html`<h3 class=\"card-title\" part=\"card-title\">${step.title}</h3>`;\n if (!step.badge) return title;\n return html`<div class=\"title-row\">\n ${title}\n <span class=\"badge\" part=\"badge\">${step.badge}</span>\n </div>`;\n }\n\n render() {\n const heading = this.eyebrow || this.title || this.subtitle;\n const last = this.items.length - 1;\n return html`\n <div class=\"container\" part=\"container\">\n ${heading\n ? html`<div class=\"header\" part=\"header\">\n ${this.eyebrow ? html`<p class=\"eyebrow\" part=\"eyebrow\">${this.eyebrow}</p>` : nothing}\n ${this.title ? html`<h2 class=\"title\" part=\"title\">${this.title}</h2>` : nothing}\n ${this.subtitle ? html`<p class=\"subtitle\" part=\"subtitle\">${this.subtitle}</p>` : nothing}\n </div>`\n : nothing}\n <ol class=\"grid\" part=\"grid\" aria-label=${this.title || nothing}>\n ${this.items.map(\n (step, index) => html`\n <li class=\"card ${this.highlightLast && index === last ? 'highlight' : ''}\" part=\"card\">\n <span class=\"number\" part=\"number\" aria-hidden=\"true\">${String(index + 1).padStart(2, '0')}</span>\n ${this.renderTitle(step)}\n ${this.renderDescription(step)}\n </li>\n `\n )}\n </ol>\n </div>\n `;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,gBAAgB;AACxC,SAAS,kBAAkB;AA4BpB,IAAM,QAAN,cAAoB,WAAW;AAAA,EAA/B;AAAA;AA2RL,mBAAU;AAGV,iBAAQ;AAGR,oBAAW;AAIX,iBAAoB,CAAC;AAIrB,yBAAgB;AAIhB,oBAAW;AAIX,mBAA8B;AAI9B,oBAAW;AAAA;AAAA,EAEH,kBAAkB,MAAgB;AACxC,QAAI,CAAC,KAAK,YAAa,QAAO;AAC9B,WAAO,KAAK,WACR,mDAAmD,WAAW,eAAe,KAAK,WAAW,CAAC,CAAC,WAC/F,iDAAiD,KAAK,WAAW;AAAA,EACvE;AAAA,EAEQ,YAAY,MAAgB;AAClC,UAAM,QAAQ,gDAAgD,KAAK,KAAK;AACxE,QAAI,CAAC,KAAK,MAAO,QAAO;AACxB,WAAO;AAAA,QACH,KAAK;AAAA,yCAC4B,KAAK,KAAK;AAAA;AAAA,EAEjD;AAAA,EAEA,SAAS;AACP,UAAM,UAAU,KAAK,WAAW,KAAK,SAAS,KAAK;AACnD,UAAM,OAAO,KAAK,MAAM,SAAS;AACjC,WAAO;AAAA;AAAA,UAED,UACE;AAAA,gBACI,KAAK,UAAU,yCAAyC,KAAK,OAAO,SAAS,OAAO;AAAA,gBACpF,KAAK,QAAQ,sCAAsC,KAAK,KAAK,UAAU,OAAO;AAAA,gBAC9E,KAAK,WAAW,2CAA2C,KAAK,QAAQ,SAAS,OAAO;AAAA,sBAE5F,OAAO;AAAA,kDAC+B,KAAK,SAAS,OAAO;AAAA,YAC3D,KAAK,MAAM;AAAA,MACX,CAAC,MAAM,UAAU;AAAA,gCACG,KAAK,iBAAiB,UAAU,OAAO,cAAc,EAAE;AAAA,wEACf,OAAO,QAAQ,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,kBACxF,KAAK,YAAY,IAAI,CAAC;AAAA,kBACtB,KAAK,kBAAkB,IAAI,CAAC;AAAA;AAAA;AAAA,IAGpC,CAAC;AAAA;AAAA;AAAA;AAAA,EAIT;AACF;AAjWa,MACJ,SAAS;AAAA,MACZ,iBAAiB;AAAA;AAAA;AAAA,QAGf,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAsBhB,mBAAmB;AAAA;AAAA;AAAA;AAAA,QAInB,oBAAoB;AAAA;AAAA;AAAA;AAAA,QAIpB,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMlB,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkP3B;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GA1Rf,MA2RX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GA7Rf,MA8RX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAhSf,MAiSX;AAIA;AAAA,EADC,SAAS,EAAE,WAAW,MAAM,CAAC;AAAA,GApSnB,MAqSX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,MAAM,WAAW,iBAAiB,CAAC;AAAA,GAxS5D,MAySX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GA5S/B,MA6SX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,SAAS,KAAK,CAAC;AAAA,GAhT9B,MAiTX;AAIA;AAAA,EADC,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GApT/B,MAqTX;AArTW,QAAN;AAAA,EADN,cAAc,UAAU;AAAA,GACZ;","names":[]}
|
|
@@ -24,8 +24,17 @@ var cardDescriptionStyles = css`
|
|
|
24
24
|
color: var(--st-color-text-muted);
|
|
25
25
|
line-height: 1.5;
|
|
26
26
|
`;
|
|
27
|
+
var sectionEyebrowStyles = css`
|
|
28
|
+
margin: 0 0 var(--st-space-12);
|
|
29
|
+
font-size: var(--st-text-sm);
|
|
30
|
+
font-weight: var(--st-font-weight-bold);
|
|
31
|
+
letter-spacing: 0.12em;
|
|
32
|
+
text-transform: uppercase;
|
|
33
|
+
color: var(--st-color-accent-text);
|
|
34
|
+
`;
|
|
27
35
|
var ctaLinkStyles = css`
|
|
28
36
|
display: inline-block;
|
|
37
|
+
box-sizing: border-box;
|
|
29
38
|
padding: 12px 24px;
|
|
30
39
|
border-radius: var(--st-radius-sm);
|
|
31
40
|
font: inherit;
|
|
@@ -77,6 +86,7 @@ export {
|
|
|
77
86
|
sectionSubtitleStyles,
|
|
78
87
|
cardTitleStyles,
|
|
79
88
|
cardDescriptionStyles,
|
|
89
|
+
sectionEyebrowStyles,
|
|
80
90
|
ctaLinkStyles,
|
|
81
91
|
paddingScaleStyles,
|
|
82
92
|
sectionHeaderStyles,
|
|
@@ -84,4 +94,4 @@ export {
|
|
|
84
94
|
reducedMotionStyles,
|
|
85
95
|
invertedSectionTextStyles
|
|
86
96
|
};
|
|
87
|
-
//# sourceMappingURL=chunk-
|
|
97
|
+
//# sourceMappingURL=chunk-KZ7PMFWS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/shared/section-styles.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * CSS fragments shared by the CMS section components (hero, features, stats, ...), replacing the\n * source React library's global `Common.css` classes (`.section-title`, `.theme-inverted`, ...)\n * so each Lit component composes them into its own shadow root instead of re-declaring them.\n */\n\n/** Section heading + subheading typography. Use on `.title` / `.subtitle` selectors. */\nexport const sectionTitleStyles = css`\n font-size: var(--st-cms-text-4xl);\n font-weight: var(--st-font-weight-bold);\n color: var(--st-color-text-strong);\n margin: 0 0 var(--st-space-16);\n line-height: 1.2;\n`;\n\nexport const sectionSubtitleStyles = css`\n font-size: var(--st-cms-text-lg);\n color: var(--st-color-text-muted);\n line-height: 1.6;\n margin: 0 0 var(--st-space-28);\n`;\n\n/** Card heading + body typography. */\nexport const cardTitleStyles = css`\n font-size: var(--st-text-2xl);\n font-weight: var(--st-font-weight-semibold);\n color: var(--st-color-text-strong);\n margin: 0 0 var(--st-space-8);\n`;\n\nexport const cardDescriptionStyles = css`\n font-size: var(--st-text-md);\n color: var(--st-color-text-muted);\n line-height: 1.5;\n`;\n\n/**\n * Small uppercase, letter-spaced accent label above a section or content heading (\"HOW IT WORKS\").\n * Shared by `st-steps`, `st-section`, `st-content-block` and `st-features-section`. Inverted/dark\n * surfaces override the colour locally.\n */\nexport const sectionEyebrowStyles = css`\n margin: 0 0 var(--st-space-12);\n font-size: var(--st-text-sm);\n font-weight: var(--st-font-weight-bold);\n letter-spacing: 0.12em;\n text-transform: uppercase;\n color: var(--st-color-accent-text);\n`;\n\n/**\n * Outlined call-to-action link/button used by hero, promo banner, features, ... Applies to both\n * `<a>` (when the CTA has an `href`) and `<button>`: `box-sizing` is pinned so an anchor sizes like\n * a button with the same padding.\n */\nexport const ctaLinkStyles = css`\n display: inline-block;\n box-sizing: border-box;\n padding: 12px 24px;\n border-radius: var(--st-radius-sm);\n font: inherit;\n text-align: center;\n text-decoration: none;\n cursor: pointer;\n transition: transform 0.2s ease;\n`;\n\n/** Maps the source's `padding` prop (none|small|medium|large) to `:host([padding=...])` rules. */\nexport const paddingScaleStyles = css`\n :host([padding='small']) { padding: var(--st-space-16); }\n :host([padding='medium']) { padding: var(--st-space-24); }\n :host([padding='large']) { padding: var(--st-space-32); }\n`;\n\n/** Centered title/subtitle block above a section's content. Use on a `.header` wrapper. */\nexport const sectionHeaderStyles = css`\n text-align: center;\n margin-bottom: var(--st-space-48);\n`;\n\n/** Rounded icon tile (holds an `<iconify-icon>`) used by bento cards, feature lists, ... */\nexport const iconTileStyles = css`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n border-radius: var(--st-radius-lg);\n background: var(--st-color-subtle);\n color: var(--st-color-text-muted);\n`;\n\n/** Collapses CSS transitions/animations for users who prefer reduced motion. */\nexport const reducedMotionStyles = css`\n @media (prefers-reduced-motion: reduce) {\n *,\n *::before,\n *::after {\n transition-duration: 0.01ms !important;\n animation-duration: 0.01ms !important;\n }\n }\n`;\n\n/** Light-on-dark title/subtitle for an `inverted` section host. Place inside the host's `static styles`. */\nexport const invertedSectionTextStyles = css`\n :host([inverted]) .title {\n color: var(--st-color-on-solid);\n }\n\n :host([inverted]) .subtitle {\n color: var(--st-color-border);\n }\n`;\n"],"mappings":";AAAA,SAAS,WAAW;AASb,IAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ3B,IAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ9B,IAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOxB,IAAM,wBAAwB;AAAA;AAAA;AAAA;AAAA;AAW9B,IAAM,uBAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAc7B,IAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAatB,IAAM,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAO3B,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAM5B,IAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWvB,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAY5B,IAAM,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;","names":[]}
|