@sankhyatronics/sankhya-cms 0.1.18 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/custom-elements.json +11634 -3153
  2. package/dist/attention-panel/index.js +2 -2
  3. package/dist/bar-chart/index.js +2 -2
  4. package/dist/bento-grid/index.d.ts +33 -1
  5. package/dist/bento-grid/index.js +4 -3
  6. package/dist/booking/index.d.ts +309 -0
  7. package/dist/booking/index.js +20 -0
  8. package/dist/booking/index.js.map +1 -0
  9. package/dist/card/index.d.ts +3 -4
  10. package/dist/card/index.js +2 -2
  11. package/dist/carousel/index.d.ts +20 -6
  12. package/dist/carousel/index.js +3 -3
  13. package/dist/chip/index.js +2 -2
  14. package/dist/{chunk-JQY2G4QK.js → chunk-2GTR37PU.js} +2 -2
  15. package/dist/chunk-2GTR37PU.js.map +1 -0
  16. package/dist/{chunk-FLY7TNRT.js → chunk-2HMOX253.js} +128 -25
  17. package/dist/chunk-2HMOX253.js.map +1 -0
  18. package/dist/{chunk-DH53HZPB.js → chunk-37KFBKPD.js} +32 -4
  19. package/dist/chunk-37KFBKPD.js.map +1 -0
  20. package/dist/{chunk-ALI26WOB.js → chunk-4XPKKYVZ.js} +54 -15
  21. package/dist/chunk-4XPKKYVZ.js.map +1 -0
  22. package/dist/chunk-535QAZ6A.js +236 -0
  23. package/dist/chunk-535QAZ6A.js.map +1 -0
  24. package/dist/{chunk-AKJQ345O.js → chunk-5AWGZQWU.js} +2 -2
  25. package/dist/chunk-6OZKZG5J.js +300 -0
  26. package/dist/chunk-6OZKZG5J.js.map +1 -0
  27. package/dist/chunk-AYNT7G3J.js +805 -0
  28. package/dist/chunk-AYNT7G3J.js.map +1 -0
  29. package/dist/chunk-BEWX3E6P.js +32 -0
  30. package/dist/chunk-BEWX3E6P.js.map +1 -0
  31. package/dist/chunk-CZUGPKXV.js +275 -0
  32. package/dist/chunk-CZUGPKXV.js.map +1 -0
  33. package/dist/{chunk-LEXZKGQX.js → chunk-DJFWZOZM.js} +107 -11
  34. package/dist/chunk-DJFWZOZM.js.map +1 -0
  35. package/dist/chunk-DPANTC3O.js +1714 -0
  36. package/dist/chunk-DPANTC3O.js.map +1 -0
  37. package/dist/chunk-EKZFFY45.js +426 -0
  38. package/dist/chunk-EKZFFY45.js.map +1 -0
  39. package/dist/chunk-ER7MCPDV.js +7 -0
  40. package/dist/chunk-ER7MCPDV.js.map +1 -0
  41. package/dist/chunk-EW2RK5Y6.js +383 -0
  42. package/dist/chunk-EW2RK5Y6.js.map +1 -0
  43. package/dist/{chunk-BLQV2YMO.js → chunk-EZOKT7NJ.js} +2 -2
  44. package/dist/chunk-FF2LWEF3.js +386 -0
  45. package/dist/chunk-FF2LWEF3.js.map +1 -0
  46. package/dist/chunk-FOUK3NHR.js +7 -0
  47. package/dist/chunk-FOUK3NHR.js.map +1 -0
  48. package/dist/chunk-GB4NGCZI.js +181 -0
  49. package/dist/chunk-GB4NGCZI.js.map +1 -0
  50. package/dist/{chunk-7NLZND6Q.js → chunk-GOFSMD6W.js} +35 -11
  51. package/dist/chunk-GOFSMD6W.js.map +1 -0
  52. package/dist/{chunk-6D6ROU7X.js → chunk-IGMVF3KK.js} +2 -2
  53. package/dist/{chunk-INMSEYT6.js → chunk-IVPVYVWG.js} +2 -2
  54. package/dist/chunk-JURCF4OD.js +381 -0
  55. package/dist/chunk-JURCF4OD.js.map +1 -0
  56. package/dist/{chunk-FZ36KL73.js → chunk-KZ7PMFWS.js} +11 -1
  57. package/dist/chunk-KZ7PMFWS.js.map +1 -0
  58. package/dist/{chunk-EMCQBT3S.js → chunk-LO6TZBGD.js} +129 -35
  59. package/dist/chunk-LO6TZBGD.js.map +1 -0
  60. package/dist/chunk-MFRGAT6D.js +860 -0
  61. package/dist/chunk-MFRGAT6D.js.map +1 -0
  62. package/dist/chunk-MIBVQXRU.js +1098 -0
  63. package/dist/chunk-MIBVQXRU.js.map +1 -0
  64. package/dist/{chunk-35TX3AOA.js → chunk-NABSRUXG.js} +2 -2
  65. package/dist/{chunk-R5G6KFTJ.js → chunk-NXKDZWS7.js} +44 -6
  66. package/dist/chunk-NXKDZWS7.js.map +1 -0
  67. package/dist/{chunk-KMU6ABQF.js → chunk-NXUS2CH7.js} +14 -1
  68. package/dist/chunk-NXUS2CH7.js.map +1 -0
  69. package/dist/{chunk-GJO3RGOB.js → chunk-OCPGOLVF.js} +56 -11
  70. package/dist/chunk-OCPGOLVF.js.map +1 -0
  71. package/dist/chunk-OEOE6IFY.js +628 -0
  72. package/dist/chunk-OEOE6IFY.js.map +1 -0
  73. package/dist/{chunk-SMLR736E.js → chunk-PV6OCXXN.js} +2 -2
  74. package/dist/chunk-PV6OCXXN.js.map +1 -0
  75. package/dist/chunk-Q66CJO3P.js +534 -0
  76. package/dist/chunk-Q66CJO3P.js.map +1 -0
  77. package/dist/{chunk-MG2VTZA4.js → chunk-QS3ANOWN.js} +2 -2
  78. package/dist/{chunk-ZN4LIKVG.js → chunk-QSJ543V2.js} +2 -2
  79. package/dist/chunk-QSJ543V2.js.map +1 -0
  80. package/dist/{chunk-FML6AG2V.js → chunk-RANC3OI6.js} +2 -2
  81. package/dist/chunk-T4BIN37Q.js +32 -0
  82. package/dist/chunk-T4BIN37Q.js.map +1 -0
  83. package/dist/{chunk-YVTFQHVY.js → chunk-TEAZZPDQ.js} +2 -2
  84. package/dist/chunk-TJK55CJ2.js +49 -0
  85. package/dist/chunk-TJK55CJ2.js.map +1 -0
  86. package/dist/chunk-UKIVLF7S.js +32 -0
  87. package/dist/chunk-UKIVLF7S.js.map +1 -0
  88. package/dist/chunk-V4R7PYP5.js +905 -0
  89. package/dist/chunk-V4R7PYP5.js.map +1 -0
  90. package/dist/{chunk-AG2COC64.js → chunk-VVYQ2DDS.js} +2 -2
  91. package/dist/chunk-WAMOAAMN.js +16 -0
  92. package/dist/chunk-WAMOAAMN.js.map +1 -0
  93. package/dist/chunk-WAYHHL4J.js +1234 -0
  94. package/dist/chunk-WAYHHL4J.js.map +1 -0
  95. package/dist/{chunk-YQ42EBK5.js → chunk-WH6HE6SY.js} +10 -4
  96. package/dist/chunk-WH6HE6SY.js.map +1 -0
  97. package/dist/chunk-XP6DI3VY.js +180 -0
  98. package/dist/chunk-XP6DI3VY.js.map +1 -0
  99. package/dist/{chunk-5EBWMPJS.js → chunk-XS6LNTSH.js} +76 -14
  100. package/dist/chunk-XS6LNTSH.js.map +1 -0
  101. package/dist/{chunk-WT4OATGP.js → chunk-ZKFCDVB4.js} +16 -7
  102. package/dist/chunk-ZKFCDVB4.js.map +1 -0
  103. package/dist/cms-theme.css +29 -0
  104. package/dist/contact-form/index.d.ts +220 -0
  105. package/dist/contact-form/index.js +16 -0
  106. package/dist/contact-form/index.js.map +1 -0
  107. package/dist/content-block/index.d.ts +39 -4
  108. package/dist/content-block/index.js +8 -4
  109. package/dist/cookie-consent/index.d.ts +60 -12
  110. package/dist/cookie-consent/index.js +3 -2
  111. package/dist/date-tile/index.js +2 -2
  112. package/dist/dropdown/index.d.ts +29 -11
  113. package/dist/dropdown/index.js +4 -2
  114. package/dist/feature-split/index.d.ts +6 -1
  115. package/dist/feature-split/index.js +5 -4
  116. package/dist/features-section/index.d.ts +53 -9
  117. package/dist/features-section/index.js +6 -5
  118. package/dist/flow/index.d.ts +35 -0
  119. package/dist/flow/index.js +9 -0
  120. package/dist/flow/index.js.map +1 -0
  121. package/dist/footer/index.d.ts +13 -0
  122. package/dist/footer/index.js +2 -2
  123. package/dist/header/index.d.ts +135 -16
  124. package/dist/header/index.js +3 -2
  125. package/dist/hero/index.d.ts +92 -8
  126. package/dist/hero/index.js +6 -3
  127. package/dist/icon-button/index.d.ts +7 -7
  128. package/dist/icon-button/index.js +2 -2
  129. package/dist/index.d.ts +12 -3
  130. package/dist/index.js +121 -47
  131. package/dist/items-accordion/index.d.ts +9 -0
  132. package/dist/items-accordion/index.js +4 -3
  133. package/dist/kpi-card/index.js +2 -2
  134. package/dist/markdown/index.d.ts +19 -2
  135. package/dist/markdown/index.js +3 -2
  136. package/dist/mega-menu/index.d.ts +95 -7
  137. package/dist/mega-menu/index.js +7 -2
  138. package/dist/menu-grid/index.d.ts +2 -3
  139. package/dist/menu-grid/index.js +2 -2
  140. package/dist/menu-grid-item/index.d.ts +6 -8
  141. package/dist/menu-grid-item/index.js +2 -2
  142. package/dist/menu-item/index.d.ts +11 -7
  143. package/dist/menu-item/index.js +3 -2
  144. package/dist/plan-cards/index.d.ts +69 -0
  145. package/dist/plan-cards/index.js +13 -0
  146. package/dist/plan-cards/index.js.map +1 -0
  147. package/dist/product-nav/index.d.ts +127 -0
  148. package/dist/product-nav/index.js +11 -0
  149. package/dist/product-nav/index.js.map +1 -0
  150. package/dist/promo-banner/index.d.ts +42 -4
  151. package/dist/promo-banner/index.js +6 -3
  152. package/dist/quote-dialog/index.d.ts +174 -0
  153. package/dist/quote-dialog/index.js +22 -0
  154. package/dist/quote-dialog/index.js.map +1 -0
  155. package/dist/schema/index.d.ts +11 -0
  156. package/dist/schema/index.js +9 -0
  157. package/dist/schema/index.js.map +1 -1
  158. package/dist/screenshot-tour/index.d.ts +54 -0
  159. package/dist/screenshot-tour/index.js +9 -0
  160. package/dist/screenshot-tour/index.js.map +1 -0
  161. package/dist/section/index.d.ts +3 -0
  162. package/dist/section/index.js +3 -3
  163. package/dist/segmented-control/index.js +2 -2
  164. package/dist/select/index.js +2 -2
  165. package/dist/shared/styles.d.ts +7 -1
  166. package/dist/shared/styles.js +3 -1
  167. package/dist/stats/index.js +2 -2
  168. package/dist/steps/index.d.ts +45 -0
  169. package/dist/steps/index.js +11 -0
  170. package/dist/steps/index.js.map +1 -0
  171. package/dist/tag-strip/index.d.ts +33 -0
  172. package/dist/tag-strip/index.js +9 -0
  173. package/dist/tag-strip/index.js.map +1 -0
  174. package/dist/testimonials/index.d.ts +9 -1
  175. package/dist/testimonials/index.js +3 -3
  176. package/dist/tooltip/index.js +2 -2
  177. package/package.json +38 -2
  178. package/dist/chunk-5EBWMPJS.js.map +0 -1
  179. package/dist/chunk-76AVBQUA.js +0 -252
  180. package/dist/chunk-76AVBQUA.js.map +0 -1
  181. package/dist/chunk-7NLZND6Q.js.map +0 -1
  182. package/dist/chunk-ALI26WOB.js.map +0 -1
  183. package/dist/chunk-BMHMNXIA.js +0 -158
  184. package/dist/chunk-BMHMNXIA.js.map +0 -1
  185. package/dist/chunk-DH53HZPB.js.map +0 -1
  186. package/dist/chunk-EMCQBT3S.js.map +0 -1
  187. package/dist/chunk-FLY7TNRT.js.map +0 -1
  188. package/dist/chunk-FZ36KL73.js.map +0 -1
  189. package/dist/chunk-GJO3RGOB.js.map +0 -1
  190. package/dist/chunk-J6EO4R73.js +0 -633
  191. package/dist/chunk-J6EO4R73.js.map +0 -1
  192. package/dist/chunk-JKBWZLG4.js +0 -348
  193. package/dist/chunk-JKBWZLG4.js.map +0 -1
  194. package/dist/chunk-JQY2G4QK.js.map +0 -1
  195. package/dist/chunk-KMU6ABQF.js.map +0 -1
  196. package/dist/chunk-LEXZKGQX.js.map +0 -1
  197. package/dist/chunk-MSSH3HFK.js +0 -205
  198. package/dist/chunk-MSSH3HFK.js.map +0 -1
  199. package/dist/chunk-R5G6KFTJ.js.map +0 -1
  200. package/dist/chunk-SMLR736E.js.map +0 -1
  201. package/dist/chunk-VWS53WY4.js +0 -157
  202. package/dist/chunk-VWS53WY4.js.map +0 -1
  203. package/dist/chunk-WT4OATGP.js.map +0 -1
  204. package/dist/chunk-XWB4CKDU.js +0 -708
  205. package/dist/chunk-XWB4CKDU.js.map +0 -1
  206. package/dist/chunk-YQ42EBK5.js.map +0 -1
  207. package/dist/chunk-ZN4LIKVG.js.map +0 -1
  208. /package/dist/{chunk-AKJQ345O.js.map → chunk-5AWGZQWU.js.map} +0 -0
  209. /package/dist/{chunk-BLQV2YMO.js.map → chunk-EZOKT7NJ.js.map} +0 -0
  210. /package/dist/{chunk-6D6ROU7X.js.map → chunk-IGMVF3KK.js.map} +0 -0
  211. /package/dist/{chunk-INMSEYT6.js.map → chunk-IVPVYVWG.js.map} +0 -0
  212. /package/dist/{chunk-35TX3AOA.js.map → chunk-NABSRUXG.js.map} +0 -0
  213. /package/dist/{chunk-MG2VTZA4.js.map → chunk-QS3ANOWN.js.map} +0 -0
  214. /package/dist/{chunk-FML6AG2V.js.map → chunk-RANC3OI6.js.map} +0 -0
  215. /package/dist/{chunk-YVTFQHVY.js.map → chunk-TEAZZPDQ.js.map} +0 -0
  216. /package/dist/{chunk-AG2COC64.js.map → chunk-VVYQ2DDS.js.map} +0 -0
@@ -1,21 +1,65 @@
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
- * optional subtitle and up to two call-to-action links. Port of `SankhyaUI`'s React `Hero`; the
7
- * framer-motion entrance is redone as CSS keyframes (skipped under `prefers-reduced-motion`).
20
+ * optional subtitle and up to two call-to-action links. The entrance animation is CSS keyframes
21
+ * (skipped under `prefers-reduced-motion`).
8
22
  *
9
23
  * `size`, `content-position` and `overlay="gradient"` give the large editorial layout (copy on the
10
24
  * lower left over a gradient that darkens towards it) used by enterprise marketing heroes; the
11
25
  * defaults keep the original centered banner. Put several heroes in an `st-carousel` with
12
26
  * `indicator-style="tabs"` for a tabbed hero carousel.
13
27
  *
14
- * @fires action - Cancelable, before navigating. Detail `{ href, kind }`, `kind` being `primary` or `secondary`.
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).
32
+ * `layout="split"` swaps the background for a two-column layout: copy on one side, `image-src` as an
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>`.
45
+ *
46
+ * @fires action - Cancelable, before following the link. Detail `{ href, kind }`, `kind` being `primary` or `secondary`.
15
47
  * @cssprop --st-hero-text-color - Text colour over the image.
16
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)`).
17
51
  * @csspart eyebrow - The small label above the title.
18
- * @csspart secondary-action - The outlined second button.
52
+ * @csspart badge - The pill above the title.
53
+ * @csspart highlights - The row of check-marked points.
54
+ * @csspart cta-note - The small line with a padlock under the buttons (`cta-note`).
55
+ * @csspart image - The image in `layout="split"`.
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.
19
63
  */
20
64
  declare class Hero extends LitElement {
21
65
  static styles: lit.CSSResult;
@@ -23,6 +67,9 @@ declare class Hero extends LitElement {
23
67
  subtitle: string;
24
68
  imageSrc: string;
25
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;
26
73
  href: string;
27
74
  textAlignment: 'left' | 'center' | 'right' | 'justify';
28
75
  padding: 'none' | 'small' | 'medium' | 'large';
@@ -32,26 +79,63 @@ declare class Hero extends LitElement {
32
79
  eyebrow: string;
33
80
  /** Label of an outlined second button next to the primary one. */
34
81
  secondaryActionLabel: string;
82
+ /** Shorter `secondary-action-label` for phones (< 480px). */
83
+ secondaryActionLabelShort: string;
35
84
  secondaryHref: string;
85
+ /** Small pill above the title (e.g. "New", "Now available"). */
86
+ badge: string;
87
+ /** Check-marked points shown in a row under the buttons. */
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;
93
+ /** `background` (default) puts `image-src` behind the copy; `split` puts copy and image side by side. */
94
+ layout: 'background' | 'split';
95
+ /** Alt text of the image in `layout="split"`. Empty marks it as decorative. */
96
+ imageAlt: string;
36
97
  /** `auto` sizes to the content; `large` is a tall editorial hero (`--st-hero-min-height`); `full` fills the viewport. */
37
98
  size: 'auto' | 'large' | 'full';
38
99
  /** `center` keeps the copy in the middle; `bottom` puts it in the lower part of the hero, on the page container. */
39
100
  contentPosition: 'center' | 'bottom';
40
101
  /** `even` darkens the whole image; `gradient` darkens behind the copy only; `none` shows the image as is. */
41
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;
42
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;
43
123
  protected willUpdate(): void;
44
124
  private emitAction;
45
- private onClick;
46
- private onSecondaryClick;
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;
47
131
  render(): lit.TemplateResult<1>;
48
132
  }
49
133
 
50
134
  /** Fired by `st-hero` / `st-promo-banner` when the call-to-action is activated (source: `onAction`). */
51
135
  interface HeroActionEventDetail {
52
136
  href: string;
53
- /** Which `st-hero` button was activated; `st-promo-banner` leaves it unset. */
137
+ /** Which button was activated. Unset for a primary button; `st-promo-banner` sets `secondary` on its second button. */
54
138
  kind?: 'primary' | 'secondary';
55
139
  }
56
140
 
57
- export { Hero, type HeroActionEventDetail };
141
+ export { Hero, type HeroActionEventDetail, type HeroMediaBadge, type HeroMediaInset };
@@ -1,8 +1,11 @@
1
1
  import {
2
2
  Hero
3
- } from "../chunk-JKBWZLG4.js";
4
- import "../chunk-FZ36KL73.js";
5
- import "../chunk-KMU6ABQF.js";
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
@@ -2,19 +2,19 @@ import * as lit from 'lit';
2
2
  import { LitElement } from 'lit';
3
3
 
4
4
  /**
5
- * A small, icon-only action button — ported from `SankhyaUI`'s React `IconButton` (a separate,
6
- * unrelated marketing-site project; that source takes an iconify string `icon` prop, this package
7
- * has no iconify dependency, so the icon is default-slotted content instead, same convention as
8
- * `st-dropdown`/`st-menu-grid-item`'s `slot="icon"`).
5
+ * A small, icon-only action button. The icon is default-slotted content (the package has no icon
6
+ * library dependency), the same convention as `st-dropdown`/`st-menu-grid-item`'s `slot="icon"`.
9
7
  *
10
8
  * Fires a plain native `click` — no custom event, since a caller just wants an ordinary button.
11
9
  */
12
10
  declare class IconButton extends LitElement {
13
11
  static styles: lit.CSSResult;
14
- /** Accessible name and tooltip — matches the source component's `ariaLabel` (renamed: modern
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
15
15
  * browsers already expose a native `ariaLabel` reflected property on every `Element`, so reusing
16
- * that exact name as a Lit reactive property would shadow it). Required for a control with no
17
- * visible text. */
16
+ * that exact name as a Lit reactive property would shadow it).
17
+ */
18
18
  label: string;
19
19
  disabled: boolean;
20
20
  render(): lit.TemplateResult<1>;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  IconButton
3
- } from "../chunk-YQ42EBK5.js";
4
- import "../chunk-KMU6ABQF.js";
3
+ } from "../chunk-WH6HE6SY.js";
4
+ import "../chunk-NXUS2CH7.js";
5
5
  import "../chunk-EUXUH3YW.js";
6
6
  export {
7
7
  IconButton
package/dist/index.d.ts CHANGED
@@ -1,31 +1,40 @@
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';
12
14
  export { FeatureItem, FeatureItemData, FeaturesSection } from './features-section/index.js';
15
+ export { Flow, FlowNode } from './flow/index.js';
13
16
  export { Footer, FooterColumn, FooterLink, FooterLinkEventDetail, FooterSocialLink } from './footer/index.js';
14
17
  export { Header, LanguageChangedEventDetail } from './header/index.js';
15
- export { Hero, HeroActionEventDetail } from './hero/index.js';
18
+ export { Hero, HeroActionEventDetail, HeroMediaBadge, HeroMediaInset } from './hero/index.js';
16
19
  export { IconButton } from './icon-button/index.js';
17
20
  export { AccordionItem, AccordionToggleEventDetail, ItemsAccordion } from './items-accordion/index.js';
18
21
  export { KpiCard } from './kpi-card/index.js';
19
22
  export { Markdown, MarkdownErrorEventDetail } from './markdown/index.js';
20
- 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';
21
24
  export { MenuGridItem, MenuGridItemSelectEventDetail } from './menu-grid-item/index.js';
22
25
  export { MenuGrid } from './menu-grid/index.js';
23
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';
24
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';
25
32
  export { Section } from './section/index.js';
26
33
  export { SegmentChangeEventDetail, SegmentedControl, SegmentedOption } from './segmented-control/index.js';
27
34
  export { Select, SelectChangedEventDetail, SelectOption } from './select/index.js';
28
35
  export { StatItem, Stats } from './stats/index.js';
36
+ export { StepItem, Steps } from './steps/index.js';
37
+ export { TagStrip } from './tag-strip/index.js';
29
38
  export { TestimonialItem, TestimonialMetric, Testimonials, TestimonialsLinkEventDetail } from './testimonials/index.js';
30
39
  export { Tooltip } from './tooltip/index.js';
31
40
  import 'lit';
package/dist/index.js CHANGED
@@ -1,120 +1,184 @@
1
+ import {
2
+ TagStrip
3
+ } from "./chunk-XP6DI3VY.js";
1
4
  import {
2
5
  Testimonials
3
- } from "./chunk-DH53HZPB.js";
6
+ } from "./chunk-37KFBKPD.js";
4
7
  import {
5
8
  Tooltip
6
- } from "./chunk-FML6AG2V.js";
9
+ } from "./chunk-RANC3OI6.js";
7
10
  import {
8
- PromoBanner
9
- } from "./chunk-VWS53WY4.js";
11
+ ScreenshotTour
12
+ } from "./chunk-535QAZ6A.js";
10
13
  import {
11
14
  Section
12
- } from "./chunk-7NLZND6Q.js";
15
+ } from "./chunk-GOFSMD6W.js";
13
16
  import {
14
17
  SegmentedControl
15
- } from "./chunk-MG2VTZA4.js";
18
+ } from "./chunk-QS3ANOWN.js";
16
19
  import {
17
20
  Select
18
- } from "./chunk-BLQV2YMO.js";
21
+ } from "./chunk-EZOKT7NJ.js";
19
22
  import {
20
23
  Stats
21
- } from "./chunk-YVTFQHVY.js";
24
+ } from "./chunk-TEAZZPDQ.js";
25
+ import {
26
+ Steps
27
+ } from "./chunk-JURCF4OD.js";
28
+ import {
29
+ MenuGrid
30
+ } from "./chunk-PV6OCXXN.js";
31
+ import {
32
+ MenuGridItem
33
+ } from "./chunk-2GTR37PU.js";
34
+ import {
35
+ MenuItem
36
+ } from "./chunk-NXKDZWS7.js";
37
+ import {
38
+ PlanCards
39
+ } from "./chunk-FF2LWEF3.js";
40
+ import {
41
+ ProductNav
42
+ } from "./chunk-OEOE6IFY.js";
43
+ import {
44
+ PromoBanner
45
+ } from "./chunk-EW2RK5Y6.js";
46
+ import {
47
+ DEFAULT_MAILTO_BODY_LIMIT,
48
+ QuoteDialog,
49
+ buildMailto,
50
+ buildQuoteMailto,
51
+ fillTemplate
52
+ } from "./chunk-AYNT7G3J.js";
53
+ import {
54
+ QUOTE_OPEN_EVENT
55
+ } from "./chunk-FOUK3NHR.js";
56
+ import {
57
+ Footer
58
+ } from "./chunk-OCPGOLVF.js";
59
+ import {
60
+ Header
61
+ } from "./chunk-WAYHHL4J.js";
62
+ import {
63
+ Hero
64
+ } from "./chunk-MFRGAT6D.js";
22
65
  import {
23
66
  IconButton
24
- } from "./chunk-YQ42EBK5.js";
67
+ } from "./chunk-WH6HE6SY.js";
25
68
  import {
26
69
  ItemsAccordion
27
- } from "./chunk-ALI26WOB.js";
70
+ } from "./chunk-4XPKKYVZ.js";
28
71
  import {
29
72
  KpiCard
30
- } from "./chunk-6D6ROU7X.js";
73
+ } from "./chunk-IGMVF3KK.js";
31
74
  import {
32
75
  MegaMenu,
33
76
  MegaMenuColumn,
34
77
  MegaMenuFeature
35
- } from "./chunk-J6EO4R73.js";
78
+ } from "./chunk-MIBVQXRU.js";
36
79
  import {
37
- MenuGrid
38
- } from "./chunk-SMLR736E.js";
80
+ CONTACT_FORM_ERROR_EVENT,
81
+ CONTACT_FORM_SENT_EVENT,
82
+ CONTACT_FORM_SUBMIT_EVENT,
83
+ ContactForm
84
+ } from "./chunk-V4R7PYP5.js";
39
85
  import {
40
- MenuGridItem
41
- } from "./chunk-JQY2G4QK.js";
42
- import {
43
- MenuItem
44
- } from "./chunk-R5G6KFTJ.js";
86
+ ContentBlock
87
+ } from "./chunk-6OZKZG5J.js";
88
+ import "./chunk-BEWX3E6P.js";
89
+ import "./chunk-T4BIN37Q.js";
45
90
  import {
46
91
  CookieConsent
47
- } from "./chunk-MSSH3HFK.js";
92
+ } from "./chunk-EKZFFY45.js";
93
+ import "./chunk-WAMOAAMN.js";
48
94
  import {
49
95
  DateTile
50
- } from "./chunk-INMSEYT6.js";
96
+ } from "./chunk-IVPVYVWG.js";
51
97
  import {
52
98
  Dropdown
53
- } from "./chunk-LEXZKGQX.js";
99
+ } from "./chunk-DJFWZOZM.js";
54
100
  import {
55
- FeatureSplit
56
- } from "./chunk-WT4OATGP.js";
101
+ MEGA_MENU_LAYOUT_EVENT
102
+ } from "./chunk-ER7MCPDV.js";
103
+ import "./chunk-UKIVLF7S.js";
104
+ import "./chunk-WTD2YIAA.js";
57
105
  import {
58
106
  FeatureItem,
59
107
  FeaturesSection
60
- } from "./chunk-FLY7TNRT.js";
108
+ } from "./chunk-2HMOX253.js";
61
109
  import {
62
- Footer
63
- } from "./chunk-GJO3RGOB.js";
110
+ FeatureSplit
111
+ } from "./chunk-ZKFCDVB4.js";
64
112
  import {
65
- Header
66
- } from "./chunk-XWB4CKDU.js";
67
- import "./chunk-WTD2YIAA.js";
113
+ Markdown
114
+ } from "./chunk-XS6LNTSH.js";
68
115
  import {
69
- Hero
70
- } from "./chunk-JKBWZLG4.js";
116
+ Flow
117
+ } from "./chunk-GB4NGCZI.js";
71
118
  import {
72
119
  AttentionPanel
73
- } from "./chunk-35TX3AOA.js";
120
+ } from "./chunk-NABSRUXG.js";
74
121
  import {
75
122
  BarChart
76
- } from "./chunk-AG2COC64.js";
123
+ } from "./chunk-VVYQ2DDS.js";
77
124
  import {
78
125
  BentoGrid
79
- } from "./chunk-76AVBQUA.js";
126
+ } from "./chunk-Q66CJO3P.js";
127
+ import "./chunk-TJK55CJ2.js";
128
+ import {
129
+ BOOKING_CANCELLED_EVENT,
130
+ BOOKING_CREATED_EVENT,
131
+ BOOKING_ERROR_EVENT,
132
+ BOOKING_RESCHEDULED_EVENT,
133
+ Booking,
134
+ DEFAULT_BOOKING_LABELS
135
+ } from "./chunk-DPANTC3O.js";
136
+ import "./chunk-CZUGPKXV.js";
80
137
  import {
81
138
  Card
82
- } from "./chunk-ZN4LIKVG.js";
139
+ } from "./chunk-QSJ543V2.js";
83
140
  import {
84
141
  Carousel
85
- } from "./chunk-EMCQBT3S.js";
142
+ } from "./chunk-LO6TZBGD.js";
143
+ import "./chunk-KZ7PMFWS.js";
86
144
  import {
87
145
  Chip
88
- } from "./chunk-AKJQ345O.js";
89
- import {
90
- ContentBlock
91
- } from "./chunk-BMHMNXIA.js";
92
- import {
93
- Markdown
94
- } from "./chunk-5EBWMPJS.js";
95
- import "./chunk-FZ36KL73.js";
96
- import "./chunk-KMU6ABQF.js";
146
+ } from "./chunk-5AWGZQWU.js";
147
+ import "./chunk-NXUS2CH7.js";
97
148
  import "./chunk-EUXUH3YW.js";
98
149
  export {
99
150
  AttentionPanel,
151
+ BOOKING_CANCELLED_EVENT,
152
+ BOOKING_CREATED_EVENT,
153
+ BOOKING_ERROR_EVENT,
154
+ BOOKING_RESCHEDULED_EVENT,
100
155
  BarChart,
101
156
  BentoGrid,
157
+ Booking,
158
+ CONTACT_FORM_ERROR_EVENT,
159
+ CONTACT_FORM_SENT_EVENT,
160
+ CONTACT_FORM_SUBMIT_EVENT,
102
161
  Card,
103
162
  Carousel,
104
163
  Chip,
164
+ ContactForm,
105
165
  ContentBlock,
106
166
  CookieConsent,
167
+ DEFAULT_BOOKING_LABELS,
168
+ DEFAULT_MAILTO_BODY_LIMIT,
107
169
  DateTile,
108
170
  Dropdown,
109
171
  FeatureItem,
110
172
  FeatureSplit,
111
173
  FeaturesSection,
174
+ Flow,
112
175
  Footer,
113
176
  Header,
114
177
  Hero,
115
178
  IconButton,
116
179
  ItemsAccordion,
117
180
  KpiCard,
181
+ MEGA_MENU_LAYOUT_EVENT,
118
182
  Markdown,
119
183
  MegaMenu,
120
184
  MegaMenuColumn,
@@ -122,12 +186,22 @@ export {
122
186
  MenuGrid,
123
187
  MenuGridItem,
124
188
  MenuItem,
189
+ PlanCards,
190
+ ProductNav,
125
191
  PromoBanner,
192
+ QUOTE_OPEN_EVENT,
193
+ QuoteDialog,
194
+ ScreenshotTour,
126
195
  Section,
127
196
  SegmentedControl,
128
197
  Select,
129
198
  Stats,
199
+ Steps,
200
+ TagStrip,
130
201
  Testimonials,
131
- Tooltip
202
+ Tooltip,
203
+ buildMailto,
204
+ buildQuoteMailto,
205
+ fillTemplate
132
206
  };
133
207
  //# sourceMappingURL=index.js.map
@@ -4,12 +4,18 @@ import { LitElement } from 'lit';
4
4
  interface AccordionItem {
5
5
  id: string;
6
6
  title: string;
7
+ /** Markdown (plain text works too). */
7
8
  content: string;
8
9
  }
9
10
  /**
10
11
  * A vertical list of collapsible title/content rows; one open at a time unless `allow-multiple`.
12
+ * Each row's `content` is Markdown, sanitized. `open-first` starts with the first row open. The
13
+ * section title is an `<h2>` and each row title an `<h3>` wrapping its toggle button, which
14
+ * exposes `aria-expanded` and `aria-controls` for the row's panel.
11
15
  *
12
16
  * @cssprop --st-items-accordion-padding - Overrides the block's padding.
17
+ * @csspart trigger - The button that opens and closes a row.
18
+ * @csspart heading - The `<h3>` wrapping each trigger.
13
19
  */
14
20
  declare class ItemsAccordion extends LitElement {
15
21
  static styles: lit.CSSResult;
@@ -17,7 +23,10 @@ declare class ItemsAccordion extends LitElement {
17
23
  subtitle: string;
18
24
  items: AccordionItem[];
19
25
  allowMultiple: boolean;
26
+ /** Starts with the first row open. Applies when `items` or this flag changes while nothing is open. */
27
+ openFirst: boolean;
20
28
  private openIds;
29
+ protected willUpdate(changed: Map<string, unknown>): void;
21
30
  private toggle;
22
31
  render(): lit.TemplateResult<1>;
23
32
  }
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  ItemsAccordion
3
- } from "../chunk-ALI26WOB.js";
4
- import "../chunk-FZ36KL73.js";
5
- import "../chunk-KMU6ABQF.js";
3
+ } from "../chunk-4XPKKYVZ.js";
4
+ import "../chunk-TJK55CJ2.js";
5
+ import "../chunk-KZ7PMFWS.js";
6
+ import "../chunk-NXUS2CH7.js";
6
7
  import "../chunk-EUXUH3YW.js";
7
8
  export {
8
9
  ItemsAccordion
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  KpiCard
3
- } from "../chunk-6D6ROU7X.js";
4
- import "../chunk-KMU6ABQF.js";
3
+ } from "../chunk-IGMVF3KK.js";
4
+ import "../chunk-NXUS2CH7.js";
5
5
  import "../chunk-EUXUH3YW.js";
6
6
  export {
7
7
  KpiCard
@@ -3,12 +3,27 @@ import { LitElement, nothing } from 'lit';
3
3
 
4
4
  /**
5
5
  * Renders Markdown (GFM, single newlines become `<br>`) from either an inline `content` string or
6
- * a `src` URL it fetches. Ports `SankhyaUI`'s `useMarkdown` hook + `react-markdown` (remark-gfm,
7
- * remark-breaks); output is sanitized with DOMPurify. `src` wins over `content` when both are set.
6
+ * a `src` URL it fetches. Output is sanitized with DOMPurify. `src` wins over `content` when both are set.
8
7
  * While a fetch is pending it shows "Loading content..."; on failure "Error loading content." and
9
8
  * a `markdown-error` event (detail: `{ error }`).
10
9
  *
11
10
  * Text color is inherited from the parent so inverted containers just work.
11
+ *
12
+ * `list-style="check"` replaces the bullets of unordered lists with a check mark, in the colour of
13
+ * `--st-markdown-list-check-color` (navy by default).
14
+ *
15
+ * Code blocks are a dark navy panel (14px monospace, 20px padding, 12px corners) that scrolls
16
+ * sideways only when a line is wider than the block; ```json fences get syntax colours. Inline
17
+ * `code` is a chip tinted from the surrounding text colour.
18
+ *
19
+ * @cssprop --st-markdown-list-check-color - Colour of the check marks (`list-style="check"`).
20
+ * @cssprop --st-markdown-code-bg - Code block background (default `#011d41`).
21
+ * @cssprop --st-markdown-code-color - Code block text (default `#e4ebff`).
22
+ * @cssprop --st-markdown-code-border - Code block hairline (default `#e4ebff` at 14%).
23
+ * @cssprop --st-markdown-code-key - JSON keys (default `#8eaffe`).
24
+ * @cssprop --st-markdown-code-string - JSON strings (default `#49cce0`).
25
+ * @cssprop --st-markdown-code-number - JSON numbers, `true`, `false`, `null` (default `#fbbf77`).
26
+ * @cssprop --st-markdown-code-punct - JSON punctuation (default `#c9d7fe`).
12
27
  */
13
28
  declare class Markdown extends LitElement {
14
29
  static styles: lit.CSSResult;
@@ -16,6 +31,8 @@ declare class Markdown extends LitElement {
16
31
  content: string;
17
32
  /** URL of a Markdown file to fetch. */
18
33
  src: string;
34
+ /** `default` keeps bullets; `check` shows a check mark on each unordered item. */
35
+ listStyle: 'default' | 'check';
19
36
  private fetched;
20
37
  private loading;
21
38
  private error;
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  Markdown
3
- } from "../chunk-5EBWMPJS.js";
4
- import "../chunk-KMU6ABQF.js";
3
+ } from "../chunk-XS6LNTSH.js";
4
+ import "../chunk-TJK55CJ2.js";
5
+ import "../chunk-NXUS2CH7.js";
5
6
  import "../chunk-EUXUH3YW.js";
6
7
  export {
7
8
  Markdown