@sankhyatronics/sankhya-cms 0.2.0 → 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 +10968 -3080
- package/dist/attention-panel/index.js +2 -2
- package/dist/bar-chart/index.js +2 -2
- package/dist/bento-grid/index.d.ts +25 -0
- package/dist/bento-grid/index.js +4 -4
- 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.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-OLA35A2O.js → chunk-2GTR37PU.js} +2 -2
- package/dist/{chunk-7NIWQWTA.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-EE6PAN3B.js → chunk-4XPKKYVZ.js} +23 -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-2DXHPEB5.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-O4FCRKDX.js → chunk-GB4NGCZI.js} +6 -3
- package/dist/chunk-GB4NGCZI.js.map +1 -0
- package/dist/{chunk-5F5PTVWR.js → chunk-GOFSMD6W.js} +9 -10
- 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-ZRC5BVDX.js → chunk-JURCF4OD.js} +174 -12
- 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-2FJDNJ7R.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-OELI3IWC.js → chunk-PV6OCXXN.js} +2 -2
- package/dist/{chunk-5C6C6K5U.js → chunk-Q66CJO3P.js} +200 -12
- package/dist/chunk-Q66CJO3P.js.map +1 -0
- package/dist/{chunk-MG2VTZA4.js → chunk-QS3ANOWN.js} +2 -2
- package/dist/{chunk-3OEEOBHB.js → chunk-QSJ543V2.js} +2 -2
- 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-PHEGSCOM.js → chunk-WH6HE6SY.js} +10 -4
- package/dist/chunk-WH6HE6SY.js.map +1 -0
- package/dist/{chunk-5MY6OWMK.js → chunk-XP6DI3VY.js} +59 -4
- package/dist/chunk-XP6DI3VY.js.map +1 -0
- package/dist/{chunk-QLA4BH2B.js → chunk-XS6LNTSH.js} +73 -11
- 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 +22 -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 -3
- package/dist/content-block/index.js +8 -5
- 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 +22 -1
- package/dist/dropdown/index.js +4 -2
- package/dist/feature-split/index.d.ts +6 -1
- package/dist/feature-split/index.js +5 -5
- package/dist/features-section/index.d.ts +49 -5
- package/dist/features-section/index.js +6 -6
- package/dist/flow/index.js +2 -2
- package/dist/footer/index.d.ts +13 -0
- package/dist/footer/index.js +2 -2
- package/dist/header/index.d.ts +127 -1
- package/dist/header/index.js +3 -2
- package/dist/hero/index.d.ts +75 -6
- package/dist/hero/index.js +6 -3
- package/dist/icon-button/index.d.ts +5 -3
- package/dist/icon-button/index.js +2 -2
- package/dist/index.d.ts +9 -3
- package/dist/index.js +118 -57
- package/dist/items-accordion/index.d.ts +5 -1
- package/dist/items-accordion/index.js +4 -4
- package/dist/kpi-card/index.js +2 -2
- package/dist/markdown/index.d.ts +18 -0
- package/dist/markdown/index.js +3 -3
- package/dist/mega-menu/index.d.ts +95 -7
- package/dist/mega-menu/index.js +7 -2
- package/dist/menu-grid/index.js +2 -2
- package/dist/menu-grid-item/index.js +2 -2
- package/dist/menu-item/index.d.ts +6 -0
- 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 +34 -7
- 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 +8 -0
- package/dist/schema/index.js +6 -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.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 +12 -0
- package/dist/steps/index.js +4 -3
- package/dist/tag-strip/index.d.ts +7 -0
- package/dist/tag-strip/index.js +2 -2
- 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 +26 -2
- package/dist/chunk-2DXHPEB5.js.map +0 -1
- package/dist/chunk-2FJDNJ7R.js.map +0 -1
- package/dist/chunk-4AFOKKSU.js +0 -158
- package/dist/chunk-4AFOKKSU.js.map +0 -1
- package/dist/chunk-5C6C6K5U.js.map +0 -1
- package/dist/chunk-5F5PTVWR.js.map +0 -1
- package/dist/chunk-5MY6OWMK.js.map +0 -1
- package/dist/chunk-7NIWQWTA.js.map +0 -1
- package/dist/chunk-DH53HZPB.js.map +0 -1
- package/dist/chunk-EE6PAN3B.js.map +0 -1
- package/dist/chunk-EMCQBT3S.js.map +0 -1
- package/dist/chunk-FZ36KL73.js.map +0 -1
- package/dist/chunk-GJO3RGOB.js.map +0 -1
- package/dist/chunk-HMUZON6I.js +0 -202
- package/dist/chunk-HMUZON6I.js.map +0 -1
- package/dist/chunk-J6EO4R73.js +0 -633
- package/dist/chunk-J6EO4R73.js.map +0 -1
- package/dist/chunk-KMU6ABQF.js.map +0 -1
- package/dist/chunk-MSSH3HFK.js +0 -205
- package/dist/chunk-MSSH3HFK.js.map +0 -1
- package/dist/chunk-O4FCRKDX.js.map +0 -1
- package/dist/chunk-PHEGSCOM.js.map +0 -1
- package/dist/chunk-QLA4BH2B.js.map +0 -1
- package/dist/chunk-SQ3OZO32.js +0 -486
- package/dist/chunk-SQ3OZO32.js.map +0 -1
- package/dist/chunk-UAIUBPDN.js +0 -11
- package/dist/chunk-UAIUBPDN.js.map +0 -1
- package/dist/chunk-WT4OATGP.js.map +0 -1
- package/dist/chunk-XUGEXERO.js +0 -708
- package/dist/chunk-XUGEXERO.js.map +0 -1
- package/dist/chunk-ZRC5BVDX.js.map +0 -1
- /package/dist/{chunk-OLA35A2O.js.map → chunk-2GTR37PU.js.map} +0 -0
- /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-OELI3IWC.js.map → chunk-PV6OCXXN.js.map} +0 -0
- /package/dist/{chunk-MG2VTZA4.js.map → chunk-QS3ANOWN.js.map} +0 -0
- /package/dist/{chunk-3OEEOBHB.js.map → chunk-QSJ543V2.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
|
@@ -2,11 +2,30 @@ import * as lit from 'lit';
|
|
|
2
2
|
import { LitElement } from 'lit';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
* One feature tile for `st-features-section`: optional icon, title, Markdown description
|
|
6
|
-
* optional "Learn more" link, rendered on an `st-card`. `icon` is an Iconify name (e.g.
|
|
7
|
-
* `mdi:rocket`). The link is a plain `<a
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* One feature tile for `st-features-section`: optional icon, title (`<h3>`), Markdown description
|
|
6
|
+
* and an optional "Learn more" link, rendered on an `st-card`. `icon` is an Iconify name (e.g.
|
|
7
|
+
* `mdi:rocket`). The link is a plain `<a href>`, so it works without JavaScript; the click is
|
|
8
|
+
* composed, so an SPA router can intercept it (e.g. via `event.composedPath()`) and navigate
|
|
9
|
+
* client-side. `http(s)` links open in a new tab.
|
|
10
|
+
*
|
|
11
|
+
* @csspart card - The `st-card` around the tile.
|
|
12
|
+
* @csspart icon - The icon tile.
|
|
13
|
+
* @csspart title - The tile heading (`<h3>`).
|
|
14
|
+
* `variant="panel"` drops the icon tile for a compact card (20px padding, 12px radius, 16px title).
|
|
15
|
+
* Inverted panels sit on the lighter navy panel colour (`--st-cms-navy-2`) with a hairline border.
|
|
16
|
+
*
|
|
17
|
+
* @csspart card - The `st-card` around the tile (the panel `div` with `variant="panel"`).
|
|
18
|
+
* @csspart description - The Markdown description.
|
|
19
|
+
* @csspart link - The "Learn more" link.
|
|
20
|
+
* @cssprop --st-feature-item-panel-bg - Panel background (default `--st-color-surface`).
|
|
21
|
+
* @cssprop --st-feature-item-panel-border - Panel border colour (default `--st-color-border`).
|
|
22
|
+
* @cssprop --st-feature-item-panel-radius - Panel corner radius (default 12px).
|
|
23
|
+
* @cssprop --st-feature-item-panel-padding - Panel padding (default 20px).
|
|
24
|
+
* @cssprop --st-feature-item-panel-gap - Gap between panel title and description (default `--st-space-8`).
|
|
25
|
+
* @cssprop --st-feature-item-panel-title-size - Panel title size (default 16px).
|
|
26
|
+
* @cssprop --st-feature-item-panel-title-weight - Panel title weight (default bold).
|
|
27
|
+
* @cssprop --st-feature-item-panel-title-color - Panel title colour (default `--st-color-text-strong`).
|
|
28
|
+
* @cssprop --st-feature-item-panel-desc-color - Panel description colour (default `--st-color-text-muted`).
|
|
10
29
|
*/
|
|
11
30
|
declare class FeatureItem extends LitElement {
|
|
12
31
|
static styles: lit.CSSResult;
|
|
@@ -18,15 +37,21 @@ declare class FeatureItem extends LitElement {
|
|
|
18
37
|
href: string;
|
|
19
38
|
actionLabel: string;
|
|
20
39
|
inverted: boolean;
|
|
40
|
+
/** `default` is the icon card; `panel` is the compact card without an icon tile. */
|
|
41
|
+
variant: 'default' | 'panel';
|
|
42
|
+
private renderBody;
|
|
21
43
|
render(): lit.TemplateResult<1>;
|
|
22
44
|
}
|
|
23
45
|
|
|
24
46
|
/** Data for one tile when using the `items` property (mirrors `st-feature-item`'s properties). */
|
|
25
47
|
interface FeatureItemData {
|
|
48
|
+
/** Iconify name. Without it the tile has no icon tile. */
|
|
26
49
|
icon?: string;
|
|
27
50
|
title: string;
|
|
28
51
|
description: string;
|
|
29
52
|
href?: string;
|
|
53
|
+
/** `full` makes the tile span every column of the grid (a wide call-out between rows). */
|
|
54
|
+
span?: 'full';
|
|
30
55
|
}
|
|
31
56
|
/**
|
|
32
57
|
* A titled grid of feature tiles. Tiles come from the `items` property, from slotted
|
|
@@ -34,16 +59,35 @@ interface FeatureItemData {
|
|
|
34
59
|
* one column below 768px). `inverted` is passed on to the `items` tiles; slotted tiles need their
|
|
35
60
|
* own `inverted` attribute.
|
|
36
61
|
*
|
|
62
|
+
* The header can carry an `eyebrow` (a small uppercase label above the title). The title is a
|
|
63
|
+
* real `<h2>`; each tile's title is an `<h3>`. `align="center"` centres the last, incomplete row:
|
|
64
|
+
* five tiles in three columns lay out as 3 + 2 centred, instead of 3 + 2 left-aligned.
|
|
65
|
+
*
|
|
66
|
+
* `variant="panel"` renders the `items` tiles as compact panels without icon tiles (see
|
|
67
|
+
* `st-feature-item`). A tile from `items` with `span: "full"` spans every column. Slotted tiles
|
|
68
|
+
* need their own `variant` attribute.
|
|
69
|
+
*
|
|
37
70
|
* @cssprop --st-features-section-padding - Overrides the section's padding.
|
|
71
|
+
* @csspart header - The eyebrow, title and subtitle block.
|
|
72
|
+
* @csspart eyebrow - The small uppercase label above the title.
|
|
73
|
+
* @csspart title - The section heading (`<h2>`).
|
|
74
|
+
* @csspart subtitle - The line under the title.
|
|
75
|
+
* @csspart grid - The grid holding the tiles.
|
|
38
76
|
*/
|
|
39
77
|
declare class FeaturesSection extends LitElement {
|
|
40
78
|
static styles: lit.CSSResult;
|
|
79
|
+
/** Small uppercase label above the title (e.g. "Why Sankhya"). */
|
|
80
|
+
eyebrow: string;
|
|
41
81
|
title: string;
|
|
42
82
|
subtitle: string;
|
|
43
83
|
/** Applied to every tile built from `items`. */
|
|
44
84
|
actionLabel: string;
|
|
45
85
|
columns: number;
|
|
86
|
+
/** `start` (default) lays tiles out in a grid. `center` centres the last, incomplete row. */
|
|
87
|
+
align: 'start' | 'center';
|
|
46
88
|
inverted: boolean;
|
|
89
|
+
/** `default` is the icon tile grid; `panel` gives the `items` tiles compact panels without icon tiles. */
|
|
90
|
+
variant: 'default' | 'panel';
|
|
47
91
|
/** Tiles to render (property only). */
|
|
48
92
|
items: FeatureItemData[];
|
|
49
93
|
render(): lit.TemplateResult<1>;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FeatureItem,
|
|
3
3
|
FeaturesSection
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
6
|
-
import "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-2HMOX253.js";
|
|
5
|
+
import "../chunk-XS6LNTSH.js";
|
|
6
|
+
import "../chunk-TJK55CJ2.js";
|
|
7
|
+
import "../chunk-QSJ543V2.js";
|
|
8
|
+
import "../chunk-KZ7PMFWS.js";
|
|
9
|
+
import "../chunk-NXUS2CH7.js";
|
|
10
10
|
import "../chunk-EUXUH3YW.js";
|
|
11
11
|
export {
|
|
12
12
|
FeatureItem,
|
package/dist/flow/index.js
CHANGED
package/dist/footer/index.d.ts
CHANGED
|
@@ -4,15 +4,21 @@ import { LitElement, PropertyValues } from 'lit';
|
|
|
4
4
|
interface FooterLink {
|
|
5
5
|
label: string;
|
|
6
6
|
href: string;
|
|
7
|
+
/** `false` leaves the link out of the footer. Omit, or `true`, to show it. */
|
|
8
|
+
visible?: boolean;
|
|
7
9
|
}
|
|
8
10
|
interface FooterColumn {
|
|
9
11
|
title: string;
|
|
10
12
|
links: FooterLink[];
|
|
13
|
+
/** `false` leaves the whole column out. A column whose links are all hidden is left out too. */
|
|
14
|
+
visible?: boolean;
|
|
11
15
|
}
|
|
12
16
|
interface FooterSocialLink {
|
|
13
17
|
/** Iconify icon name, e.g. `mdi:github`. */
|
|
14
18
|
icon: string;
|
|
15
19
|
href: string;
|
|
20
|
+
/** Accessible name of the icon link (e.g. "Sankhyatronics on LinkedIn"). Falls back to `icon`. */
|
|
21
|
+
label?: string;
|
|
16
22
|
}
|
|
17
23
|
/** Fired when an internal footer link is activated — cancelable, so an SPA can `preventDefault()` and route instead. */
|
|
18
24
|
interface FooterLinkEventDetail {
|
|
@@ -38,6 +44,8 @@ declare class Footer extends LitElement {
|
|
|
38
44
|
companyName: string;
|
|
39
45
|
/** Overrides the default computed copyright line entirely. */
|
|
40
46
|
copyright: string;
|
|
47
|
+
/** Legal line (e.g. a trademark notice) shown beside the copyright. Empty hides it. */
|
|
48
|
+
legalNote: string;
|
|
41
49
|
poweredBy: string;
|
|
42
50
|
poweredByLink: string;
|
|
43
51
|
/** App version, rendered as `v{version}` after the copyright line — for apps that show their own
|
|
@@ -45,6 +53,8 @@ declare class Footer extends LitElement {
|
|
|
45
53
|
version: string;
|
|
46
54
|
/** Logo shown in the brand block (site layout). */
|
|
47
55
|
imageSrc: string;
|
|
56
|
+
/** Alt text of the logo. Default: the company name plus "home", or "Home" without one. */
|
|
57
|
+
imageAlt: string;
|
|
48
58
|
/** Short blurb under the logo (site layout). */
|
|
49
59
|
description: string;
|
|
50
60
|
/** Link columns (site layout). */
|
|
@@ -52,12 +62,15 @@ declare class Footer extends LitElement {
|
|
|
52
62
|
/** Social icon links under the description (site layout). */
|
|
53
63
|
socialLinks: FooterSocialLink[];
|
|
54
64
|
private get isSite();
|
|
65
|
+
/** The columns to show, each with only its visible links; a column left with no links is dropped. */
|
|
66
|
+
private get visibleColumns();
|
|
55
67
|
private get resolvedCopyright();
|
|
56
68
|
protected willUpdate(changed: PropertyValues): void;
|
|
57
69
|
private onLinkClick;
|
|
58
70
|
private renderLink;
|
|
59
71
|
private renderPoweredBy;
|
|
60
72
|
private renderSite;
|
|
73
|
+
private renderCopyright;
|
|
61
74
|
render(): lit.TemplateResult<1>;
|
|
62
75
|
}
|
|
63
76
|
|
package/dist/footer/index.js
CHANGED
package/dist/header/index.d.ts
CHANGED
|
@@ -8,6 +8,14 @@ import { LitElement } from 'lit';
|
|
|
8
8
|
* the primary brand prop; `brand-image-url` is optional. For a fixed nav-links/user-menu header,
|
|
9
9
|
* use `st-app-header` instead.
|
|
10
10
|
*
|
|
11
|
+
* The nav link for the page being shown is marked: `current-path` (e.g. `/t-pilot`) is compared
|
|
12
|
+
* with each `st-menu-item`/`st-mega-menu-column`/`st-mega-menu-feature` `href` (and a mega column's
|
|
13
|
+
* `cta-href`). A link is current when it equals the path, or, for a non-root href, when the path is
|
|
14
|
+
* beneath it; `/` is current only on `/`. The current link gets `aria-current="page"`, and an
|
|
15
|
+
* `st-dropdown` containing one is highlighted as active. Without `current-path` the header uses
|
|
16
|
+
* `location.pathname`, re-checked on `popstate`; a single-page app should set `current-path`
|
|
17
|
+
* on each navigation (the React `Header` does this from the router).
|
|
18
|
+
*
|
|
11
19
|
* Layout: the menu starts 4rem after the brand, the utility
|
|
12
20
|
* controls sit after a vertical divider, and below `BREAKPOINT_TABLET` (900px) `menu`/`utility`
|
|
13
21
|
* collapse behind a hamburger toggle into a full-screen layer under the
|
|
@@ -25,18 +33,44 @@ import { LitElement } from 'lit';
|
|
|
25
33
|
* This component has no translation logic itself; the consuming app owns what a language `code`
|
|
26
34
|
* means and which content it re-renders in response.
|
|
27
35
|
*
|
|
36
|
+
* Context mode (opt-in): set `context-trigger` to a CSS selector for a page element (typically the
|
|
37
|
+
* hero) and give the header a `slot="context"` child (e.g. an `st-product-nav` with `embedded` and
|
|
38
|
+
* `scroll-spy`). Once the trigger element has scrolled up past the bar, the bar swaps its menu for
|
|
39
|
+
* the slotted context content. Scrolling back above the trigger restores the menu. Both rows share the
|
|
40
|
+
* same 64px box, so the header never changes height, and the bar is solid while the context row shows,
|
|
41
|
+
* even when `transparent`. With no `context-trigger`, or no `slot="context"` content, the header is
|
|
42
|
+
* unchanged. An open mobile menu closes when the context row takes over. `context-active` reflects the
|
|
43
|
+
* state; `header-context-change` fires on every switch (detail `{ active }`).
|
|
44
|
+
*
|
|
45
|
+
* In context mode, the slotted product nav's site-menu button (`product-nav-site-menu`) opens this
|
|
46
|
+
* header's site menu over the bar, at every width. The bar keeps its state: the context row stays
|
|
47
|
+
* visible underneath (made inert), and only the drawer, its close button and a backdrop (above 768px)
|
|
48
|
+
* are shown on top. `st-cookie-consent` steps aside while the drawer is open (see `setModalOpen`). Esc,
|
|
49
|
+
* the close button, a click outside the bar, or activating a link in the drawer closes it and returns
|
|
50
|
+
* focus to that button.
|
|
51
|
+
*
|
|
52
|
+
* On a narrow screen the open drawer covers the whole viewport and locks page scroll. It sets
|
|
53
|
+
* `data-st-drawer-open` on `<html>`, holds keyboard focus (Tab wraps, Esc closes, focus returns to the
|
|
54
|
+
* toggle), and shows the brand and, with `cta-label` + `cta-href`, a primary call to action above the
|
|
55
|
+
* menu, which sits before the theme toggle on desktop.
|
|
56
|
+
*
|
|
28
57
|
* @slot menu - Primary navigation.
|
|
58
|
+
* @slot context - Product sub-nav shown in place of the menu in context mode (see above). Its children get `inert` while the context row is hidden or a site-menu drawer is open.
|
|
29
59
|
* @slot utility - Account, app-switcher and theme controls, after the divider.
|
|
30
60
|
* @slot brand-extra - Shown right after the brand at every width (e.g. an edition badge).
|
|
31
61
|
* @slot menu-icon - Replaces the hamburger on the narrow-screen toggle (the built-in glyph when empty).
|
|
32
62
|
* @slot close-icon - Replaces the close (X) on the toggle while the menu is open (the built-in glyph when empty).
|
|
33
63
|
* @cssprop --st-header-toggle-icon-size - Width and height of a slotted toggle icon (default 20px, the built-in glyph's size).
|
|
64
|
+
* @fires header-context-change - Fired when the bar switches to or from the context row. Detail: `{ active: boolean }`. Bubbles, composed.
|
|
65
|
+
* @csspart mobile-panel - The menu and utility panel (the full-screen layer under the hamburger below 900px, and the site menu in context mode).
|
|
34
66
|
*/
|
|
35
67
|
declare class Header extends LitElement {
|
|
36
68
|
static styles: lit.CSSResult;
|
|
37
69
|
title: string;
|
|
38
70
|
/** Optional logo image URL, shown before `title`. Omitted entirely when empty — none of this suite's apps has one today. Matches the source component's `imageSrc` (renamed here to pair with `title`/`logoHref`, since this component's only image use is the brand mark). */
|
|
39
71
|
brandImageUrl: string;
|
|
72
|
+
/** Path of the page being shown (e.g. `/t-pilot`). Marks the matching nav link as current; falls back to `location.pathname` when empty. */
|
|
73
|
+
currentPath: string;
|
|
40
74
|
/** `alt` text for the brand image — matches the source component's `altText` (default `'Logo'`). */
|
|
41
75
|
altText: string;
|
|
42
76
|
/** Wraps the brand in an `<a>` when set (e.g. `/`); a plain non-link `<div>` otherwise. */
|
|
@@ -66,6 +100,8 @@ declare class Header extends LitElement {
|
|
|
66
100
|
scrollHidden: boolean;
|
|
67
101
|
private lastScrollY;
|
|
68
102
|
private scrollFrame;
|
|
103
|
+
/** The `<html>` overflow and padding to restore when the drawer closes; null while the page is not locked. */
|
|
104
|
+
private drawerScrollLock;
|
|
69
105
|
private onScroll;
|
|
70
106
|
/**
|
|
71
107
|
* Language switcher options, e.g. `[{ code: 'en', label: 'English' }, ...]` — hidden entirely
|
|
@@ -87,11 +123,34 @@ declare class Header extends LitElement {
|
|
|
87
123
|
/** True while the menu doesn't fit the bar at the current width: the header then shows the same
|
|
88
124
|
* hamburger layout it uses on a narrow screen. Set by `evaluateFit`, never from outside. */
|
|
89
125
|
compact: boolean;
|
|
126
|
+
/** Label of an optional primary call to action in the utility row, before the theme toggle. Hidden when empty (also needs `cta-href`). */
|
|
127
|
+
ctaLabel: string;
|
|
128
|
+
/** Target of the call to action. Hidden when empty (also needs `cta-label`). */
|
|
129
|
+
ctaHref: string;
|
|
90
130
|
private languageMenuOpen;
|
|
91
131
|
/** Whether `slot="utility"` has content — an empty utility row (and its divider) is hidden. */
|
|
92
132
|
private hasUtility;
|
|
93
133
|
/** Whether `slot="brand-extra"` has content — an empty one takes no room beside the brand. */
|
|
94
134
|
private hasBrandExtra;
|
|
135
|
+
/**
|
|
136
|
+
* CSS selector of a page element (e.g. `#hero`). Once it has scrolled up past the bar, the bar
|
|
137
|
+
* shows the context row instead of its menu. Empty (the default) turns context mode off. The
|
|
138
|
+
* selector is re-queried for up to 5s if the element is not rendered yet, and again whenever it changes.
|
|
139
|
+
*/
|
|
140
|
+
contextTrigger: string;
|
|
141
|
+
/** True while the page is past the trigger, so the context row shows. A site-menu drawer opened over it leaves it showing. Set by the header from the trigger's position, never from outside. */
|
|
142
|
+
contextActive: boolean;
|
|
143
|
+
/** Whether `slot="context"` has content. */
|
|
144
|
+
private hasContext;
|
|
145
|
+
/** True while a site-menu request from the slotted product nav has its drawer open over the bar (see openSiteMenu). */
|
|
146
|
+
private siteMenuRequested;
|
|
147
|
+
/** The product nav's site-menu button that asked for the menu; focus returns to it when the menu closes. */
|
|
148
|
+
private siteMenuTrigger;
|
|
149
|
+
/** Whether the trigger element has scrolled up past the bar. */
|
|
150
|
+
private pastTrigger;
|
|
151
|
+
private triggerObserver?;
|
|
152
|
+
private triggerMutations?;
|
|
153
|
+
private triggerTimer;
|
|
95
154
|
private resizeObserver?;
|
|
96
155
|
/** Matches below BREAKPOINT_TABLET, where the hamburger layout is always on. */
|
|
97
156
|
private narrowQuery?;
|
|
@@ -104,7 +163,29 @@ declare class Header extends LitElement {
|
|
|
104
163
|
private onBrandExtraSlotChange;
|
|
105
164
|
private onUtilitySlotChange;
|
|
106
165
|
private onMenuSlotChange;
|
|
166
|
+
/** Hands the current page path to every nav element under the header, which marks its own link current. */
|
|
167
|
+
private syncCurrentPath;
|
|
168
|
+
/** Runs when the light DOM changes: a late-rendered dropdown or nav item needs the same state as the rest. */
|
|
169
|
+
private onLightDomChange;
|
|
170
|
+
/** Re-watches the trigger when `context-trigger` changes (before render, so state changes don't re-render twice). */
|
|
171
|
+
protected willUpdate(changed: Map<string, unknown>): void;
|
|
107
172
|
protected updated(changed: Map<string, unknown>): void;
|
|
173
|
+
/**
|
|
174
|
+
* Keeps the page in step with the drawer: `<html data-st-drawer-open>` (which the cookie banner reads) and
|
|
175
|
+
* a scroll lock. The lock gives back the scrollbar's width, so the page does not shift sideways. Opening
|
|
176
|
+
* moves focus to the first item in the drawer; a site-menu request focuses its close button instead.
|
|
177
|
+
*/
|
|
178
|
+
private syncDrawerOpen;
|
|
179
|
+
private unlockScroll;
|
|
180
|
+
/** What a keyboard user can reach in the open drawer, in order: its own items, then the toggle that closes it. */
|
|
181
|
+
private drawerFocusables;
|
|
182
|
+
/** Keeps Tab and Shift+Tab inside the open drawer, wrapping at either end (and pulling in focus that has left it). */
|
|
183
|
+
private trapDrawerFocus;
|
|
184
|
+
/**
|
|
185
|
+
* Closes the drawer and returns focus to its toggle. A site-menu request returns focus to the product
|
|
186
|
+
* nav's button instead (see endSiteMenu).
|
|
187
|
+
*/
|
|
188
|
+
private closeDrawer;
|
|
108
189
|
/** The bar width at which the menu last overflowed — the bar only expands again once it is
|
|
109
190
|
* clearly wider than this, so it can't flip back and forth right at the threshold. */
|
|
110
191
|
private collapsedAtWidth;
|
|
@@ -121,10 +202,55 @@ declare class Header extends LitElement {
|
|
|
121
202
|
connectedCallback(): void;
|
|
122
203
|
private lightDomObserver?;
|
|
123
204
|
disconnectedCallback(): void;
|
|
124
|
-
|
|
205
|
+
/** Esc closes the open drawer; Tab is held inside it while it is open. */
|
|
206
|
+
private onKeyDown;
|
|
125
207
|
private closeLanguageMenuOnOutsideClick;
|
|
208
|
+
/** A click outside the bar closes a site menu opened from the product nav. */
|
|
209
|
+
private closeSiteMenuOnOutsideClick;
|
|
210
|
+
/** The product nav's site-menu button asked for the site menu (context mode only). */
|
|
211
|
+
private onSiteMenuRequest;
|
|
212
|
+
/**
|
|
213
|
+
* Opens the site menu as a drawer over the bar, which keeps its state underneath (see render). The
|
|
214
|
+
* drawer is the collapsed layout, so `compact` is forced on at every width, the page's modal flag is
|
|
215
|
+
* set, and focus moves to the drawer's close button.
|
|
216
|
+
*/
|
|
217
|
+
private openSiteMenu;
|
|
218
|
+
/**
|
|
219
|
+
* Ends a site-menu request: the drawer closes, and the layout goes back to what the bar's own fit
|
|
220
|
+
* gives. Focus returns to the product nav's button when asked and the context row is shown.
|
|
221
|
+
*/
|
|
222
|
+
private endSiteMenu;
|
|
223
|
+
/** Keeps the slotted product nav's `site-menu-open` in step with the header's site menu. */
|
|
224
|
+
private syncSiteMenuOpen;
|
|
225
|
+
/** Whether the bar has a context row: a trigger is set and `slot="context"` has content. */
|
|
226
|
+
private get stacked();
|
|
227
|
+
/** Layer B (the context row) is inert while it is hidden, and while a site-menu drawer is open over the bar. */
|
|
228
|
+
private get layerBInert();
|
|
229
|
+
/** Starts watching the trigger element, retrying for a few seconds while the page has not rendered it. */
|
|
230
|
+
private startContextTrigger;
|
|
231
|
+
/** Observes the trigger element if the page has it now. An invalid selector counts as not found. */
|
|
232
|
+
private observeContextTrigger;
|
|
233
|
+
private onTriggerIntersect;
|
|
234
|
+
private stopTriggerRetry;
|
|
235
|
+
private stopContextTrigger;
|
|
236
|
+
private updateContextActive;
|
|
237
|
+
private setContextActive;
|
|
238
|
+
/** Which layer holds the focus right now, if any. */
|
|
239
|
+
private focusedLayer;
|
|
240
|
+
/** Focuses the first control of the layer that is shown: the brand link or toggle (layer A), or the first rendered control of the context content (layer B). */
|
|
241
|
+
private focusLayer;
|
|
242
|
+
/** The first rendered control of the context row: the slotted product nav's brand link. */
|
|
243
|
+
private layerBFocusTarget;
|
|
244
|
+
private layerAFocusTarget;
|
|
245
|
+
private contextSlotElements;
|
|
246
|
+
/** The slotted context content is inert while layer B is inert (see layerBInert). */
|
|
247
|
+
private syncContextSlot;
|
|
248
|
+
private onContextSlotChange;
|
|
249
|
+
/** The primary call to action (`cta-label` + `cta-href`), before the theme toggle. */
|
|
250
|
+
private renderCta;
|
|
126
251
|
private renderLanguageMenu;
|
|
127
252
|
private onLanguageSelect;
|
|
253
|
+
/** The header's brand link. Inert while a site-menu request is open, when the drawer shows its own copy (`drawer-head`). */
|
|
128
254
|
private renderBrand;
|
|
129
255
|
render(): lit.TemplateResult<1>;
|
|
130
256
|
}
|
package/dist/header/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Header
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-WAYHHL4J.js";
|
|
4
|
+
import "../chunk-WAMOAAMN.js";
|
|
4
5
|
import "../chunk-WTD2YIAA.js";
|
|
5
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-NXUS2CH7.js";
|
|
6
7
|
import "../chunk-EUXUH3YW.js";
|
|
7
8
|
export {
|
|
8
9
|
Header
|
package/dist/hero/index.d.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import * as lit from 'lit';
|
|
2
2
|
import { LitElement } from 'lit';
|
|
3
3
|
|
|
4
|
+
/** A dark card on the corner of the split-layout image: an icon tile, a title and an optional line. */
|
|
5
|
+
interface HeroMediaBadge {
|
|
6
|
+
title: string;
|
|
7
|
+
text?: string;
|
|
8
|
+
/** Iconify icon name, e.g. `mdi:shield-check`. */
|
|
9
|
+
icon?: string;
|
|
10
|
+
}
|
|
11
|
+
/** A small screenshot card on the bottom-right corner of the split-layout image. */
|
|
12
|
+
interface HeroMediaInset {
|
|
13
|
+
src: string;
|
|
14
|
+
alt: string;
|
|
15
|
+
/** Optional bar above the screenshot inside the card. */
|
|
16
|
+
label?: string;
|
|
17
|
+
}
|
|
4
18
|
/**
|
|
5
19
|
* Full-width hero banner: background image with a darkening overlay, optional eyebrow, title,
|
|
6
20
|
* optional subtitle and up to two call-to-action links. The entrance animation is CSS keyframes
|
|
@@ -12,17 +26,40 @@ import { LitElement } from 'lit';
|
|
|
12
26
|
* `indicator-style="tabs"` for a tabbed hero carousel.
|
|
13
27
|
*
|
|
14
28
|
* `badge` is a pill above the title; `highlights` is a row of check-marked points under the buttons.
|
|
29
|
+
* `cta-note` is a short line with a small padlock under the buttons (e.g. "No credit card needed"), left-aligned
|
|
30
|
+
* with the buttons, or centred in a centred layout.
|
|
31
|
+
* `button-style="pill"` gives the buttons the 52px pill look (primary navy, secondary white with an arrow).
|
|
15
32
|
* `layout="split"` swaps the background for a two-column layout: copy on one side, `image-src` as an
|
|
16
|
-
* `<img>` (alt from `image-alt`) on the other, on normal page colours with no overlay.
|
|
33
|
+
* `<img>` (alt from `image-alt`) on the other, on normal page colours with no overlay. In the split
|
|
34
|
+
* layout the copy sits in the page's container (`--st-cms-container-max`) with the same side gutter
|
|
35
|
+
* as the other sections.
|
|
36
|
+
*
|
|
37
|
+
* In the split layout, `image-label` adds a window-style bar with that text above the image, and
|
|
38
|
+
* `media-inset` (`{ src, alt, label? }`) puts a small screenshot card on the image's bottom-right corner.
|
|
39
|
+
* `media-inset` replaces `media-badge` when both are set, so only one card shows.
|
|
40
|
+
*
|
|
41
|
+
* A CTA with an `href` is a real link (`<a href>`), so external URLs, `#anchors` and `/path?x=y`
|
|
42
|
+
* work without JavaScript. Its `action` event is cancelable: call `preventDefault()` on it to stop
|
|
43
|
+
* the browser following the link (a router does this to navigate client-side). A CTA without an
|
|
44
|
+
* `href` is a `<button>`.
|
|
17
45
|
*
|
|
18
|
-
* @fires action - Cancelable, before
|
|
46
|
+
* @fires action - Cancelable, before following the link. Detail `{ href, kind }`, `kind` being `primary` or `secondary`.
|
|
19
47
|
* @cssprop --st-hero-text-color - Text colour over the image.
|
|
20
48
|
* @cssprop --st-hero-min-height - Minimum height when `size` is `large` (default `640px`).
|
|
49
|
+
* @cssprop --st-hero-offset-top - Extra space above the content, e.g. the height of a fixed header (default `0`).
|
|
50
|
+
* @cssprop --st-hero-cta-note-color - Colour of the `cta-note` line (default `var(--st-color-text-muted)`).
|
|
21
51
|
* @csspart eyebrow - The small label above the title.
|
|
22
52
|
* @csspart badge - The pill above the title.
|
|
23
53
|
* @csspart highlights - The row of check-marked points.
|
|
54
|
+
* @csspart cta-note - The small line with a padlock under the buttons (`cta-note`).
|
|
24
55
|
* @csspart image - The image in `layout="split"`.
|
|
25
|
-
* @csspart
|
|
56
|
+
* @csspart action - The primary call-to-action (`<a>` with an `href`, `<button>` without).
|
|
57
|
+
* @csspart secondary-action - The outlined second call-to-action.
|
|
58
|
+
* @csspart title-highlight - The part of the title picked by `title-highlight`.
|
|
59
|
+
* @csspart media-badge - The dark card on the corner of the split-layout image.
|
|
60
|
+
* @csspart image-bar - The window-style bar above the split-layout image (`image-label`).
|
|
61
|
+
* @csspart media-inset - The screenshot card on the image's bottom-right corner (`media-inset`).
|
|
62
|
+
* @cssprop --st-cms-brand-azure - Colour of the title highlight.
|
|
26
63
|
*/
|
|
27
64
|
declare class Hero extends LitElement {
|
|
28
65
|
static styles: lit.CSSResult;
|
|
@@ -30,6 +67,9 @@ declare class Hero extends LitElement {
|
|
|
30
67
|
subtitle: string;
|
|
31
68
|
imageSrc: string;
|
|
32
69
|
actionLabel: string;
|
|
70
|
+
/** Shorter `action-label` for phones (< 480px), so the button fits on one line. The full label
|
|
71
|
+
* stays the link's accessible name. */
|
|
72
|
+
actionLabelShort: string;
|
|
33
73
|
href: string;
|
|
34
74
|
textAlignment: 'left' | 'center' | 'right' | 'justify';
|
|
35
75
|
padding: 'none' | 'small' | 'medium' | 'large';
|
|
@@ -39,11 +79,17 @@ declare class Hero extends LitElement {
|
|
|
39
79
|
eyebrow: string;
|
|
40
80
|
/** Label of an outlined second button next to the primary one. */
|
|
41
81
|
secondaryActionLabel: string;
|
|
82
|
+
/** Shorter `secondary-action-label` for phones (< 480px). */
|
|
83
|
+
secondaryActionLabelShort: string;
|
|
42
84
|
secondaryHref: string;
|
|
43
85
|
/** Small pill above the title (e.g. "New", "Now available"). */
|
|
44
86
|
badge: string;
|
|
45
87
|
/** Check-marked points shown in a row under the buttons. */
|
|
46
88
|
highlights: string[];
|
|
89
|
+
/** Short line with a small check under the buttons (e.g. "No credit card needed"). Empty hides it. */
|
|
90
|
+
ctaNote: string;
|
|
91
|
+
/** Iconify icon for the `cta-note` line (e.g. `mdi:open-source-initiative`). Empty keeps the padlock. */
|
|
92
|
+
ctaNoteIcon: string;
|
|
47
93
|
/** `background` (default) puts `image-src` behind the copy; `split` puts copy and image side by side. */
|
|
48
94
|
layout: 'background' | 'split';
|
|
49
95
|
/** Alt text of the image in `layout="split"`. Empty marks it as decorative. */
|
|
@@ -54,11 +100,34 @@ declare class Hero extends LitElement {
|
|
|
54
100
|
contentPosition: 'center' | 'bottom';
|
|
55
101
|
/** `even` darkens the whole image; `gradient` darkens behind the copy only; `none` shows the image as is. */
|
|
56
102
|
overlay: 'even' | 'gradient' | 'none';
|
|
103
|
+
/** Text of `title` to set in the brand azure. Only the first occurrence is highlighted. */
|
|
104
|
+
titleHighlight: string;
|
|
105
|
+
/** A dark card on the corner of the image, with an optional icon. Shown with `layout="split"` and an `image-src`. */
|
|
106
|
+
mediaBadge?: HeroMediaBadge;
|
|
107
|
+
/** Label of a window-style bar (three dots, then the text) above the split-layout image. Shown with `layout="split"` and an `image-src`. */
|
|
108
|
+
imageLabel: string;
|
|
109
|
+
/** A small screenshot card on the bottom-right corner of the split-layout image. Replaces `mediaBadge` when both are set. */
|
|
110
|
+
mediaInset?: HeroMediaInset;
|
|
111
|
+
/** `default` keeps the plain buttons. `pill` gives the buttons the 52px pill style (the secondary one with an arrow). */
|
|
112
|
+
buttonStyle: 'default' | 'pill';
|
|
113
|
+
/** Level of the title heading: `1` (default) for a page's main hero, `2` for a hero that is not the
|
|
114
|
+
* page heading (e.g. the slides of a hero carousel, where the page has its own `<h1>`). */
|
|
115
|
+
headingLevel: 1 | 2;
|
|
57
116
|
private static positions;
|
|
117
|
+
/**
|
|
118
|
+
* A hero that is already inside the first screen when it connects is on screen at first paint, so its
|
|
119
|
+
* entrance animation (rise, fades, image zoom) would only delay the copy: it renders still. A hero
|
|
120
|
+
* further down the page keeps its entrance. A carousel slide is handled by `st-carousel` instead.
|
|
121
|
+
*/
|
|
122
|
+
connectedCallback(): void;
|
|
58
123
|
protected willUpdate(): void;
|
|
59
124
|
private emitAction;
|
|
60
|
-
private
|
|
61
|
-
|
|
125
|
+
private renderCta;
|
|
126
|
+
/** The title with the `title-highlight` text wrapped in its own span; plain text otherwise. */
|
|
127
|
+
private renderTitle;
|
|
128
|
+
private renderMediaBadge;
|
|
129
|
+
private renderImageBar;
|
|
130
|
+
private renderMediaInset;
|
|
62
131
|
render(): lit.TemplateResult<1>;
|
|
63
132
|
}
|
|
64
133
|
|
|
@@ -69,4 +138,4 @@ interface HeroActionEventDetail {
|
|
|
69
138
|
kind?: 'primary' | 'secondary';
|
|
70
139
|
}
|
|
71
140
|
|
|
72
|
-
export { Hero, type HeroActionEventDetail };
|
|
141
|
+
export { Hero, type HeroActionEventDetail, type HeroMediaBadge, type HeroMediaInset };
|
package/dist/hero/index.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Hero
|
|
3
|
-
} from "../chunk-
|
|
4
|
-
import "../chunk-
|
|
5
|
-
import "../chunk-
|
|
3
|
+
} from "../chunk-MFRGAT6D.js";
|
|
4
|
+
import "../chunk-BEWX3E6P.js";
|
|
5
|
+
import "../chunk-T4BIN37Q.js";
|
|
6
|
+
import "../chunk-WTD2YIAA.js";
|
|
7
|
+
import "../chunk-KZ7PMFWS.js";
|
|
8
|
+
import "../chunk-NXUS2CH7.js";
|
|
6
9
|
import "../chunk-EUXUH3YW.js";
|
|
7
10
|
export {
|
|
8
11
|
Hero
|
|
@@ -9,10 +9,12 @@ import { LitElement } from 'lit';
|
|
|
9
9
|
*/
|
|
10
10
|
declare class IconButton extends LitElement {
|
|
11
11
|
static styles: lit.CSSResult;
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Accessible name, set as the button's `aria-label` and its `title` (tooltip). Required for a
|
|
14
|
+
* control with no visible text. Matches the source component's `ariaLabel` (renamed: modern
|
|
13
15
|
* browsers already expose a native `ariaLabel` reflected property on every `Element`, so reusing
|
|
14
|
-
* that exact name as a Lit reactive property would shadow it).
|
|
15
|
-
|
|
16
|
+
* that exact name as a Lit reactive property would shadow it).
|
|
17
|
+
*/
|
|
16
18
|
label: string;
|
|
17
19
|
disabled: boolean;
|
|
18
20
|
render(): lit.TemplateResult<1>;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export { AttentionPanel } from './attention-panel/index.js';
|
|
2
2
|
export { BarChart } from './bar-chart/index.js';
|
|
3
3
|
export { BentoGrid, BentoGridItem } from './bento-grid/index.js';
|
|
4
|
+
export { BOOKING_CANCELLED_EVENT, BOOKING_CREATED_EVENT, BOOKING_ERROR_EVENT, BOOKING_RESCHEDULED_EVENT, Booking, BookingCancelledEventDetail, BookingCreatedEventDetail, BookingErrorEventDetail, BookingErrorKind, BookingErrorMessages, BookingErrors, BookingFieldName, BookingInfo, BookingLabels, BookingRescheduledEventDetail, BookingService, BookingSlot, BookingStaff, DEFAULT_BOOKING_LABELS } from './booking/index.js';
|
|
4
5
|
export { Card } from './card/index.js';
|
|
5
6
|
export { Carousel, CarouselChangeEventDetail } from './carousel/index.js';
|
|
6
7
|
export { Chip } from './chip/index.js';
|
|
8
|
+
export { CONTACT_FORM_ERROR_EVENT, CONTACT_FORM_SENT_EVENT, CONTACT_FORM_SUBMIT_EVENT, ContactErrorMessages, ContactErrors, ContactFieldName, ContactForm, ContactFormErrorEventDetail, ContactFormErrorKind, ContactFormSentEventDetail, ContactFormSubmitEventDetail, ContactSubmitResult, ContactTopic } from './contact-form/index.js';
|
|
7
9
|
export { ContentBlock } from './content-block/index.js';
|
|
8
|
-
export { CookieConsent, CookieConsentEventDetail, CookieConsentStatus } from './cookie-consent/index.js';
|
|
10
|
+
export { CookieCategory, CookieConsent, CookieConsentEventDetail, CookieConsentStatus } from './cookie-consent/index.js';
|
|
9
11
|
export { DateTile } from './date-tile/index.js';
|
|
10
12
|
export { Dropdown, DropdownToggleEventDetail } from './dropdown/index.js';
|
|
11
13
|
export { FeatureSplit, FeatureSplitActionEventDetail, FeatureSplitImagePosition, FeatureSplitItem } from './feature-split/index.js';
|
|
@@ -13,16 +15,20 @@ export { FeatureItem, FeatureItemData, FeaturesSection } from './features-sectio
|
|
|
13
15
|
export { Flow, FlowNode } from './flow/index.js';
|
|
14
16
|
export { Footer, FooterColumn, FooterLink, FooterLinkEventDetail, FooterSocialLink } from './footer/index.js';
|
|
15
17
|
export { Header, LanguageChangedEventDetail } from './header/index.js';
|
|
16
|
-
export { Hero, HeroActionEventDetail } from './hero/index.js';
|
|
18
|
+
export { Hero, HeroActionEventDetail, HeroMediaBadge, HeroMediaInset } from './hero/index.js';
|
|
17
19
|
export { IconButton } from './icon-button/index.js';
|
|
18
20
|
export { AccordionItem, AccordionToggleEventDetail, ItemsAccordion } from './items-accordion/index.js';
|
|
19
21
|
export { KpiCard } from './kpi-card/index.js';
|
|
20
22
|
export { Markdown, MarkdownErrorEventDetail } from './markdown/index.js';
|
|
21
|
-
export { MegaMenu, MegaMenuColumn, MegaMenuFeature, MegaMenuSelectEventDetail } from './mega-menu/index.js';
|
|
23
|
+
export { MEGA_MENU_LAYOUT_EVENT, MegaMenu, MegaMenuColumn, MegaMenuFeature, MegaMenuLayoutEventDetail, MegaMenuSelectEventDetail } from './mega-menu/index.js';
|
|
22
24
|
export { MenuGridItem, MenuGridItemSelectEventDetail } from './menu-grid-item/index.js';
|
|
23
25
|
export { MenuGrid } from './menu-grid/index.js';
|
|
24
26
|
export { MenuItem, MenuItemSelectEventDetail } from './menu-item/index.js';
|
|
27
|
+
export { PlanCardItem, PlanCards } from './plan-cards/index.js';
|
|
28
|
+
export { ProductNav, ProductNavLink } from './product-nav/index.js';
|
|
25
29
|
export { PromoBanner } from './promo-banner/index.js';
|
|
30
|
+
export { DEFAULT_MAILTO_BODY_LIMIT, MailtoField, MailtoInput, QUOTE_OPEN_EVENT, QuoteDialog, QuoteMailField, QuoteMailtoInput, QuoteOpenEventDetail, QuoteOption, QuoteSubmitEventDetail, buildMailto, buildQuoteMailto, fillTemplate } from './quote-dialog/index.js';
|
|
31
|
+
export { ScreenshotTour, ScreenshotTourItem } from './screenshot-tour/index.js';
|
|
26
32
|
export { Section } from './section/index.js';
|
|
27
33
|
export { SegmentChangeEventDetail, SegmentedControl, SegmentedOption } from './segmented-control/index.js';
|
|
28
34
|
export { Select, SelectChangedEventDetail, SelectOption } from './select/index.js';
|