@sankhyatronics/sankhya-cms 0.1.18 → 0.2.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 (101) hide show
  1. package/custom-elements.json +608 -15
  2. package/dist/bento-grid/index.d.ts +8 -1
  3. package/dist/bento-grid/index.js +2 -1
  4. package/dist/card/index.d.ts +3 -4
  5. package/dist/card/index.js +1 -1
  6. package/dist/{chunk-LEXZKGQX.js → chunk-2DXHPEB5.js} +1 -1
  7. package/dist/chunk-2DXHPEB5.js.map +1 -0
  8. package/dist/{chunk-R5G6KFTJ.js → chunk-2FJDNJ7R.js} +1 -1
  9. package/dist/chunk-2FJDNJ7R.js.map +1 -0
  10. package/dist/{chunk-ZN4LIKVG.js → chunk-3OEEOBHB.js} +1 -1
  11. package/dist/chunk-3OEEOBHB.js.map +1 -0
  12. package/dist/{chunk-BMHMNXIA.js → chunk-4AFOKKSU.js} +1 -1
  13. package/dist/chunk-4AFOKKSU.js.map +1 -0
  14. package/dist/{chunk-76AVBQUA.js → chunk-5C6C6K5U.js} +98 -4
  15. package/dist/chunk-5C6C6K5U.js.map +1 -0
  16. package/dist/{chunk-7NLZND6Q.js → chunk-5F5PTVWR.js} +27 -2
  17. package/dist/chunk-5F5PTVWR.js.map +1 -0
  18. package/dist/chunk-5MY6OWMK.js +125 -0
  19. package/dist/chunk-5MY6OWMK.js.map +1 -0
  20. package/dist/{chunk-FLY7TNRT.js → chunk-7NIWQWTA.js} +1 -1
  21. package/dist/chunk-7NIWQWTA.js.map +1 -0
  22. package/dist/{chunk-ALI26WOB.js → chunk-EE6PAN3B.js} +33 -2
  23. package/dist/chunk-EE6PAN3B.js.map +1 -0
  24. package/dist/{chunk-VWS53WY4.js → chunk-HMUZON6I.js} +49 -4
  25. package/dist/chunk-HMUZON6I.js.map +1 -0
  26. package/dist/chunk-O4FCRKDX.js +178 -0
  27. package/dist/chunk-O4FCRKDX.js.map +1 -0
  28. package/dist/{chunk-SMLR736E.js → chunk-OELI3IWC.js} +1 -1
  29. package/dist/chunk-OELI3IWC.js.map +1 -0
  30. package/dist/{chunk-JQY2G4QK.js → chunk-OLA35A2O.js} +1 -1
  31. package/dist/chunk-OLA35A2O.js.map +1 -0
  32. package/dist/{chunk-YQ42EBK5.js → chunk-PHEGSCOM.js} +1 -1
  33. package/dist/chunk-PHEGSCOM.js.map +1 -0
  34. package/dist/{chunk-5EBWMPJS.js → chunk-QLA4BH2B.js} +5 -5
  35. package/dist/chunk-QLA4BH2B.js.map +1 -0
  36. package/dist/{chunk-JKBWZLG4.js → chunk-SQ3OZO32.js} +141 -3
  37. package/dist/chunk-SQ3OZO32.js.map +1 -0
  38. package/dist/chunk-UAIUBPDN.js +11 -0
  39. package/dist/chunk-UAIUBPDN.js.map +1 -0
  40. package/dist/{chunk-XWB4CKDU.js → chunk-XUGEXERO.js} +6 -6
  41. package/dist/chunk-XUGEXERO.js.map +1 -0
  42. package/dist/chunk-ZRC5BVDX.js +219 -0
  43. package/dist/chunk-ZRC5BVDX.js.map +1 -0
  44. package/dist/cms-theme.css +7 -0
  45. package/dist/content-block/index.d.ts +2 -3
  46. package/dist/content-block/index.js +3 -2
  47. package/dist/dropdown/index.d.ts +8 -11
  48. package/dist/dropdown/index.js +1 -1
  49. package/dist/feature-split/index.js +2 -1
  50. package/dist/features-section/index.d.ts +4 -4
  51. package/dist/features-section/index.js +4 -3
  52. package/dist/flow/index.d.ts +35 -0
  53. package/dist/flow/index.js +9 -0
  54. package/dist/flow/index.js.map +1 -0
  55. package/dist/header/index.d.ts +8 -15
  56. package/dist/header/index.js +1 -1
  57. package/dist/hero/index.d.ts +18 -3
  58. package/dist/hero/index.js +1 -1
  59. package/dist/icon-button/index.d.ts +2 -4
  60. package/dist/icon-button/index.js +1 -1
  61. package/dist/index.d.ts +3 -0
  62. package/dist/index.js +36 -23
  63. package/dist/items-accordion/index.d.ts +5 -0
  64. package/dist/items-accordion/index.js +2 -1
  65. package/dist/markdown/index.d.ts +1 -2
  66. package/dist/markdown/index.js +2 -1
  67. package/dist/menu-grid/index.d.ts +2 -3
  68. package/dist/menu-grid/index.js +1 -1
  69. package/dist/menu-grid-item/index.d.ts +6 -8
  70. package/dist/menu-grid-item/index.js +1 -1
  71. package/dist/menu-item/index.d.ts +5 -7
  72. package/dist/menu-item/index.js +1 -1
  73. package/dist/promo-banner/index.d.ts +14 -3
  74. package/dist/promo-banner/index.js +1 -1
  75. package/dist/schema/index.d.ts +3 -0
  76. package/dist/schema/index.js +3 -0
  77. package/dist/schema/index.js.map +1 -1
  78. package/dist/section/index.d.ts +3 -0
  79. package/dist/section/index.js +1 -1
  80. package/dist/steps/index.d.ts +33 -0
  81. package/dist/steps/index.js +10 -0
  82. package/dist/steps/index.js.map +1 -0
  83. package/dist/tag-strip/index.d.ts +26 -0
  84. package/dist/tag-strip/index.js +9 -0
  85. package/dist/tag-strip/index.js.map +1 -0
  86. package/package.json +14 -2
  87. package/dist/chunk-5EBWMPJS.js.map +0 -1
  88. package/dist/chunk-76AVBQUA.js.map +0 -1
  89. package/dist/chunk-7NLZND6Q.js.map +0 -1
  90. package/dist/chunk-ALI26WOB.js.map +0 -1
  91. package/dist/chunk-BMHMNXIA.js.map +0 -1
  92. package/dist/chunk-FLY7TNRT.js.map +0 -1
  93. package/dist/chunk-JKBWZLG4.js.map +0 -1
  94. package/dist/chunk-JQY2G4QK.js.map +0 -1
  95. package/dist/chunk-LEXZKGQX.js.map +0 -1
  96. package/dist/chunk-R5G6KFTJ.js.map +0 -1
  97. package/dist/chunk-SMLR736E.js.map +0 -1
  98. package/dist/chunk-VWS53WY4.js.map +0 -1
  99. package/dist/chunk-XWB4CKDU.js.map +0 -1
  100. package/dist/chunk-YQ42EBK5.js.map +0 -1
  101. package/dist/chunk-ZN4LIKVG.js.map +0 -1
@@ -3,9 +3,8 @@ import { LitElement } from 'lit';
3
3
 
4
4
  /**
5
5
  * A long-form article section: centered title/subtitle, an optional featured image with caption,
6
- * then Markdown body text. Ports `SankhyaUI`'s React `ContentBlock`. The body comes from
7
- * `content-src` (a Markdown URL, as in the source) or an inline `content` string (added so the
8
- * block works without a fetch); `content-src` wins when both are set.
6
+ * then Markdown body text. The body comes from `content-src` (a Markdown URL) or an inline
7
+ * `content` string (so the block works without a fetch); `content-src` wins when both are set.
9
8
  *
10
9
  * @cssprop --st-content-block-padding - Overrides the block's padding.
11
10
  */
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  ContentBlock
3
- } from "../chunk-BMHMNXIA.js";
4
- import "../chunk-5EBWMPJS.js";
3
+ } from "../chunk-4AFOKKSU.js";
4
+ import "../chunk-QLA4BH2B.js";
5
+ import "../chunk-UAIUBPDN.js";
5
6
  import "../chunk-FZ36KL73.js";
6
7
  import "../chunk-KMU6ABQF.js";
7
8
  import "../chunk-EUXUH3YW.js";
@@ -3,23 +3,20 @@ import { LitElement } from 'lit';
3
3
 
4
4
  /**
5
5
  * A labeled trigger + slotted dropdown panel — nav menus (typically holding an `st-menu-grid`),
6
- * action menus, anything "click a trigger, show content under it". A 1:1 port of `SankhyaUI`'s
7
- * React `Dropdown` (`SankhyaCMS/SankhyaUI/src/components/Dropdown`): same markup
6
+ * action menus, anything "click a trigger, show content under it". Markup
8
7
  * (`.menu` > `.menu-title` + `.menu-dropdown`), sizes, 0.3s slide/fade, and behavior —
9
8
  *
10
- * - only one dropdown is open at a time (the source's `DropdownProvider`, built in here, so no
11
- * provider element is needed);
9
+ * - only one dropdown is open at a time (a shared provider is built in, so no provider element
10
+ * is needed);
12
11
  * - a mousedown outside, Escape, or a click inside the panel closes it;
13
12
  * - an `href` trigger toggles the panel when it has content, and is a plain link when it doesn't;
14
13
  * - `inline` opens the panel in the flow, the source's `.touch-device` layout.
15
14
  *
16
- * Colors and the panel's surface come from the suite theme (the source left those to the
17
- * consumer's `className`/`itemGroupClassName` utility classes). Two source rules are left out
18
- * because they break existing suite uses (`st-source-bar`'s site/library menus): the 100vw panel
19
- * at <=768px (overflows the screen from wherever the trigger sits; the header uses `inline`
20
- * instead) and `overflow: hidden` on slotted children (clips their focus rings). Suite additions
21
- * kept on top: `align`, `active`, `disabled`, `inline`, and the `dropdown-toggle` event — plus
22
- * `mega` and `open-on-hover` for an okta.com-style mega menu (see `st-mega-menu`).
15
+ * Colors and the panel's surface come from the suite theme. The panel is never 100vw wide at
16
+ * <=768px (it would overflow the screen from wherever the trigger sits; use `inline` in headers
17
+ * instead), and slotted children are not clipped with `overflow: hidden` (that would cut off their
18
+ * focus rings). Other attributes: `align`, `active`, `disabled`, `inline`, the `dropdown-toggle`
19
+ * event, and `mega` plus `open-on-hover` for a mega menu (see `st-mega-menu`).
23
20
  *
24
21
  * @cssprop --st-mega-menu-max-width - Maximum width of a `mega` panel (default `1400px`).
25
22
  * @cssprop --st-mega-menu-inset - Minimum space between a `mega` panel and the header's sides (default `1rem`).
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Dropdown
3
- } from "../chunk-LEXZKGQX.js";
3
+ } from "../chunk-2DXHPEB5.js";
4
4
  import "../chunk-WTD2YIAA.js";
5
5
  import "../chunk-KMU6ABQF.js";
6
6
  import "../chunk-EUXUH3YW.js";
@@ -1,7 +1,8 @@
1
1
  import {
2
2
  FeatureSplit
3
3
  } from "../chunk-WT4OATGP.js";
4
- import "../chunk-5EBWMPJS.js";
4
+ import "../chunk-QLA4BH2B.js";
5
+ import "../chunk-UAIUBPDN.js";
5
6
  import "../chunk-FZ36KL73.js";
6
7
  import "../chunk-KMU6ABQF.js";
7
8
  import "../chunk-EUXUH3YW.js";
@@ -29,10 +29,10 @@ interface FeatureItemData {
29
29
  href?: string;
30
30
  }
31
31
  /**
32
- * A titled grid of feature tiles. Ports `SankhyaUI`'s React `FeaturesSection`: tiles come from the
33
- * `items` property, from slotted `st-feature-item` elements (the source's `children`), or both
34
- * (slotted first). `columns` sets the grid width (default 2; one column below 768px). `inverted`
35
- * is passed on to the `items` tiles; slotted tiles need their own `inverted` attribute.
32
+ * A titled grid of feature tiles. Tiles come from the `items` property, from slotted
33
+ * `st-feature-item` elements, or both (slotted first). `columns` sets the grid width (default 2;
34
+ * one column below 768px). `inverted` is passed on to the `items` tiles; slotted tiles need their
35
+ * own `inverted` attribute.
36
36
  *
37
37
  * @cssprop --st-features-section-padding - Overrides the section's padding.
38
38
  */
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  FeatureItem,
3
3
  FeaturesSection
4
- } from "../chunk-FLY7TNRT.js";
5
- import "../chunk-ZN4LIKVG.js";
6
- import "../chunk-5EBWMPJS.js";
4
+ } from "../chunk-7NIWQWTA.js";
5
+ import "../chunk-3OEEOBHB.js";
6
+ import "../chunk-QLA4BH2B.js";
7
+ import "../chunk-UAIUBPDN.js";
7
8
  import "../chunk-FZ36KL73.js";
8
9
  import "../chunk-KMU6ABQF.js";
9
10
  import "../chunk-EUXUH3YW.js";
@@ -0,0 +1,35 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+
4
+ interface FlowNode {
5
+ label: string;
6
+ caption?: string;
7
+ /** `solid` (default, primary fill), `outline` (dashed accent border) or `accent` (cyan fill). */
8
+ variant?: 'solid' | 'outline' | 'accent';
9
+ }
10
+ /**
11
+ * A left-to-right process or architecture flow: boxes joined by arrows. Boxes come in three looks
12
+ * (`solid`, `outline`, `accent`); the arrows are decorative (`aria-hidden`), and the list is exposed
13
+ * as an ordered list. Below 600px the row stacks vertically and the arrows point down.
14
+ * `inverted` puts the flow on the dark band (`--st-cms-band-dark-bg`).
15
+ *
16
+ * @cssprop --st-flow-padding - Overrides the block's padding.
17
+ * @csspart flow - The ordered list of nodes.
18
+ * @csspart node - Each step's box (a `li`'s child).
19
+ * @csspart label - The box's label.
20
+ * @csspart caption - The box's caption.
21
+ * @csspart arrow - The arrow between two boxes.
22
+ */
23
+ declare class Flow extends LitElement {
24
+ static styles: lit.CSSResult;
25
+ /** The boxes, in order. */
26
+ nodes: FlowNode[];
27
+ /** Accessible name for the list of steps. */
28
+ label: string;
29
+ /** Puts the flow on the dark band (`--st-cms-band-dark-bg`), which stays dark in the dark theme. */
30
+ inverted: boolean;
31
+ private arrow;
32
+ render(): lit.TemplateResult<1>;
33
+ }
34
+
35
+ export { Flow, type FlowNode };
@@ -0,0 +1,9 @@
1
+ import {
2
+ Flow
3
+ } from "../chunk-O4FCRKDX.js";
4
+ import "../chunk-KMU6ABQF.js";
5
+ import "../chunk-EUXUH3YW.js";
6
+ export {
7
+ Flow
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -4,18 +4,13 @@ import { LitElement } from 'lit';
4
4
  /**
5
5
  * The app-shell header bar — brand (image + title, or title alone) on the left, a `slot="menu"`
6
6
  * for primary nav (e.g. `st-dropdown`/`st-menu-grid` mega-menus, or plain links) taking the
7
- * middle, and a `slot="utility"` for account/app-switcher/theme controls on the right. Ported
8
- * from `SankhyaUI`'s React `Header` (a separate, unrelated marketing-site project) to this
9
- * package's Lit conventions and this workspace's actual needs — that source component takes an
10
- * `imageSrc` logo with no text fallback, but none of this suite's apps has a logo image today, so
11
- * `title` is the primary brand prop here and `brand-image-url` is optional, mirroring
12
- * `st-app-header`'s own brand/title split (this component's slotted-menu/utility shape is a
13
- * deliberately different, more generic surface than `st-app-header`'s fixed nav-links/user-menu
14
- * props — pick whichever fits a given app's header).
7
+ * middle, and a `slot="utility"` for account/app-switcher/theme controls on the right. `title` is
8
+ * the primary brand prop; `brand-image-url` is optional. For a fixed nav-links/user-menu header,
9
+ * use `st-app-header` instead.
15
10
  *
16
- * Layout follows the source's `Header.css`: the menu starts 4rem after the brand, the utility
17
- * controls sit after a vertical divider, and below `BREAKPOINT_TABLET` (900px here; 768px in the
18
- * source) `menu`/`utility` collapse behind a hamburger toggle into a full-screen layer under the
11
+ * Layout: the menu starts 4rem after the brand, the utility
12
+ * controls sit after a vertical divider, and below `BREAKPOINT_TABLET` (900px) `menu`/`utility`
13
+ * collapse behind a hamburger toggle into a full-screen layer under the
19
14
  * toggle (closes on Escape or a click inside it), where the menu's `st-dropdown`s are switched to
20
15
  * `inline` so they open in the flow — the same two slotted elements just get repositioned by CSS
21
16
  * (`.mobile-panel`'s `display: contents` at desktop width vs. a real fixed-position box below
@@ -26,9 +21,7 @@ import { LitElement } from 'lit';
26
21
  * "🇮🇳 India Edition"); unlike `menu`/`utility` it stays in the bar at every width.
27
22
  *
28
23
  * Also carries an optional built-in language switcher (`languages`/`currentLanguageCode`, fires
29
- * `language-change`) — ported from `st-app-header`'s own implementation verbatim rather than
30
- * rebuilt, since the source `Header`'s reference story shows an equivalent flag/language `Select`
31
- * as a first-class header utility. Hidden entirely when `languages` has fewer than two entries.
24
+ * `language-change`). Hidden entirely when `languages` has fewer than two entries.
32
25
  * This component has no translation logic itself; the consuming app owns what a language `code`
33
26
  * means and which content it re-renders in response.
34
27
  *
@@ -106,7 +99,7 @@ declare class Header extends LitElement {
106
99
  * own `inline` setting is left alone. */
107
100
  private inlinedDropdowns;
108
101
  /** While the hamburger layout is on, the dropdowns in the header open in the flow of the
109
- * full-screen panel instead of floating over it (SankhyaUI's touch-device layout). */
102
+ * full-screen panel instead of floating over it (the touch-device layout). */
110
103
  private syncInlineDropdowns;
111
104
  private onBrandExtraSlotChange;
112
105
  private onUtilitySlotChange;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Header
3
- } from "../chunk-XWB4CKDU.js";
3
+ } from "../chunk-XUGEXERO.js";
4
4
  import "../chunk-WTD2YIAA.js";
5
5
  import "../chunk-KMU6ABQF.js";
6
6
  import "../chunk-EUXUH3YW.js";
@@ -3,18 +3,25 @@ import { LitElement } from 'lit';
3
3
 
4
4
  /**
5
5
  * 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`).
6
+ * optional subtitle and up to two call-to-action links. The entrance animation is CSS keyframes
7
+ * (skipped under `prefers-reduced-motion`).
8
8
  *
9
9
  * `size`, `content-position` and `overlay="gradient"` give the large editorial layout (copy on the
10
10
  * lower left over a gradient that darkens towards it) used by enterprise marketing heroes; the
11
11
  * defaults keep the original centered banner. Put several heroes in an `st-carousel` with
12
12
  * `indicator-style="tabs"` for a tabbed hero carousel.
13
13
  *
14
+ * `badge` is a pill above the title; `highlights` is a row of check-marked points under the buttons.
15
+ * `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.
17
+ *
14
18
  * @fires action - Cancelable, before navigating. Detail `{ href, kind }`, `kind` being `primary` or `secondary`.
15
19
  * @cssprop --st-hero-text-color - Text colour over the image.
16
20
  * @cssprop --st-hero-min-height - Minimum height when `size` is `large` (default `640px`).
17
21
  * @csspart eyebrow - The small label above the title.
22
+ * @csspart badge - The pill above the title.
23
+ * @csspart highlights - The row of check-marked points.
24
+ * @csspart image - The image in `layout="split"`.
18
25
  * @csspart secondary-action - The outlined second button.
19
26
  */
20
27
  declare class Hero extends LitElement {
@@ -33,6 +40,14 @@ declare class Hero extends LitElement {
33
40
  /** Label of an outlined second button next to the primary one. */
34
41
  secondaryActionLabel: string;
35
42
  secondaryHref: string;
43
+ /** Small pill above the title (e.g. "New", "Now available"). */
44
+ badge: string;
45
+ /** Check-marked points shown in a row under the buttons. */
46
+ highlights: string[];
47
+ /** `background` (default) puts `image-src` behind the copy; `split` puts copy and image side by side. */
48
+ layout: 'background' | 'split';
49
+ /** Alt text of the image in `layout="split"`. Empty marks it as decorative. */
50
+ imageAlt: string;
36
51
  /** `auto` sizes to the content; `large` is a tall editorial hero (`--st-hero-min-height`); `full` fills the viewport. */
37
52
  size: 'auto' | 'large' | 'full';
38
53
  /** `center` keeps the copy in the middle; `bottom` puts it in the lower part of the hero, on the page container. */
@@ -50,7 +65,7 @@ declare class Hero extends LitElement {
50
65
  /** Fired by `st-hero` / `st-promo-banner` when the call-to-action is activated (source: `onAction`). */
51
66
  interface HeroActionEventDetail {
52
67
  href: string;
53
- /** Which `st-hero` button was activated; `st-promo-banner` leaves it unset. */
68
+ /** Which button was activated. Unset for a primary button; `st-promo-banner` sets `secondary` on its second button. */
54
69
  kind?: 'primary' | 'secondary';
55
70
  }
56
71
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Hero
3
- } from "../chunk-JKBWZLG4.js";
3
+ } from "../chunk-SQ3OZO32.js";
4
4
  import "../chunk-FZ36KL73.js";
5
5
  import "../chunk-KMU6ABQF.js";
6
6
  import "../chunk-EUXUH3YW.js";
@@ -2,10 +2,8 @@ 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
  */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  IconButton
3
- } from "../chunk-YQ42EBK5.js";
3
+ } from "../chunk-PHEGSCOM.js";
4
4
  import "../chunk-KMU6ABQF.js";
5
5
  import "../chunk-EUXUH3YW.js";
6
6
  export {
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export { DateTile } from './date-tile/index.js';
10
10
  export { Dropdown, DropdownToggleEventDetail } from './dropdown/index.js';
11
11
  export { FeatureSplit, FeatureSplitActionEventDetail, FeatureSplitImagePosition, FeatureSplitItem } from './feature-split/index.js';
12
12
  export { FeatureItem, FeatureItemData, FeaturesSection } from './features-section/index.js';
13
+ export { Flow, FlowNode } from './flow/index.js';
13
14
  export { Footer, FooterColumn, FooterLink, FooterLinkEventDetail, FooterSocialLink } from './footer/index.js';
14
15
  export { Header, LanguageChangedEventDetail } from './header/index.js';
15
16
  export { Hero, HeroActionEventDetail } from './hero/index.js';
@@ -26,6 +27,8 @@ export { Section } from './section/index.js';
26
27
  export { SegmentChangeEventDetail, SegmentedControl, SegmentedOption } from './segmented-control/index.js';
27
28
  export { Select, SelectChangedEventDetail, SelectOption } from './select/index.js';
28
29
  export { StatItem, Stats } from './stats/index.js';
30
+ export { StepItem, Steps } from './steps/index.js';
31
+ export { TagStrip } from './tag-strip/index.js';
29
32
  export { TestimonialItem, TestimonialMetric, Testimonials, TestimonialsLinkEventDetail } from './testimonials/index.js';
30
33
  export { Tooltip } from './tooltip/index.js';
31
34
  import 'lit';
package/dist/index.js CHANGED
@@ -1,15 +1,27 @@
1
+ import {
2
+ Stats
3
+ } from "./chunk-YVTFQHVY.js";
4
+ import {
5
+ Steps
6
+ } from "./chunk-ZRC5BVDX.js";
7
+ import {
8
+ TagStrip
9
+ } from "./chunk-5MY6OWMK.js";
1
10
  import {
2
11
  Testimonials
3
12
  } from "./chunk-DH53HZPB.js";
4
13
  import {
5
14
  Tooltip
6
15
  } from "./chunk-FML6AG2V.js";
16
+ import {
17
+ MenuItem
18
+ } from "./chunk-2FJDNJ7R.js";
7
19
  import {
8
20
  PromoBanner
9
- } from "./chunk-VWS53WY4.js";
21
+ } from "./chunk-HMUZON6I.js";
10
22
  import {
11
23
  Section
12
- } from "./chunk-7NLZND6Q.js";
24
+ } from "./chunk-5F5PTVWR.js";
13
25
  import {
14
26
  SegmentedControl
15
27
  } from "./chunk-MG2VTZA4.js";
@@ -17,14 +29,14 @@ import {
17
29
  Select
18
30
  } from "./chunk-BLQV2YMO.js";
19
31
  import {
20
- Stats
21
- } from "./chunk-YVTFQHVY.js";
32
+ Hero
33
+ } from "./chunk-SQ3OZO32.js";
22
34
  import {
23
35
  IconButton
24
- } from "./chunk-YQ42EBK5.js";
36
+ } from "./chunk-PHEGSCOM.js";
25
37
  import {
26
38
  ItemsAccordion
27
- } from "./chunk-ALI26WOB.js";
39
+ } from "./chunk-EE6PAN3B.js";
28
40
  import {
29
41
  KpiCard
30
42
  } from "./chunk-6D6ROU7X.js";
@@ -35,13 +47,10 @@ import {
35
47
  } from "./chunk-J6EO4R73.js";
36
48
  import {
37
49
  MenuGrid
38
- } from "./chunk-SMLR736E.js";
50
+ } from "./chunk-OELI3IWC.js";
39
51
  import {
40
52
  MenuGridItem
41
- } from "./chunk-JQY2G4QK.js";
42
- import {
43
- MenuItem
44
- } from "./chunk-R5G6KFTJ.js";
53
+ } from "./chunk-OLA35A2O.js";
45
54
  import {
46
55
  CookieConsent
47
56
  } from "./chunk-MSSH3HFK.js";
@@ -50,36 +59,36 @@ import {
50
59
  } from "./chunk-INMSEYT6.js";
51
60
  import {
52
61
  Dropdown
53
- } from "./chunk-LEXZKGQX.js";
62
+ } from "./chunk-2DXHPEB5.js";
54
63
  import {
55
64
  FeatureSplit
56
65
  } from "./chunk-WT4OATGP.js";
57
66
  import {
58
67
  FeatureItem,
59
68
  FeaturesSection
60
- } from "./chunk-FLY7TNRT.js";
69
+ } from "./chunk-7NIWQWTA.js";
70
+ import {
71
+ Flow
72
+ } from "./chunk-O4FCRKDX.js";
61
73
  import {
62
74
  Footer
63
75
  } from "./chunk-GJO3RGOB.js";
64
76
  import {
65
77
  Header
66
- } from "./chunk-XWB4CKDU.js";
78
+ } from "./chunk-XUGEXERO.js";
67
79
  import "./chunk-WTD2YIAA.js";
68
- import {
69
- Hero
70
- } from "./chunk-JKBWZLG4.js";
71
80
  import {
72
81
  AttentionPanel
73
82
  } from "./chunk-35TX3AOA.js";
74
83
  import {
75
84
  BarChart
76
85
  } from "./chunk-AG2COC64.js";
77
- import {
78
- BentoGrid
79
- } from "./chunk-76AVBQUA.js";
80
86
  import {
81
87
  Card
82
- } from "./chunk-ZN4LIKVG.js";
88
+ } from "./chunk-3OEEOBHB.js";
89
+ import {
90
+ BentoGrid
91
+ } from "./chunk-5C6C6K5U.js";
83
92
  import {
84
93
  Carousel
85
94
  } from "./chunk-EMCQBT3S.js";
@@ -88,10 +97,11 @@ import {
88
97
  } from "./chunk-AKJQ345O.js";
89
98
  import {
90
99
  ContentBlock
91
- } from "./chunk-BMHMNXIA.js";
100
+ } from "./chunk-4AFOKKSU.js";
92
101
  import {
93
102
  Markdown
94
- } from "./chunk-5EBWMPJS.js";
103
+ } from "./chunk-QLA4BH2B.js";
104
+ import "./chunk-UAIUBPDN.js";
95
105
  import "./chunk-FZ36KL73.js";
96
106
  import "./chunk-KMU6ABQF.js";
97
107
  import "./chunk-EUXUH3YW.js";
@@ -109,6 +119,7 @@ export {
109
119
  FeatureItem,
110
120
  FeatureSplit,
111
121
  FeaturesSection,
122
+ Flow,
112
123
  Footer,
113
124
  Header,
114
125
  Hero,
@@ -127,6 +138,8 @@ export {
127
138
  SegmentedControl,
128
139
  Select,
129
140
  Stats,
141
+ Steps,
142
+ TagStrip,
130
143
  Testimonials,
131
144
  Tooltip
132
145
  };
@@ -4,10 +4,12 @@ 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.
11
13
  *
12
14
  * @cssprop --st-items-accordion-padding - Overrides the block's padding.
13
15
  */
@@ -17,7 +19,10 @@ declare class ItemsAccordion extends LitElement {
17
19
  subtitle: string;
18
20
  items: AccordionItem[];
19
21
  allowMultiple: boolean;
22
+ /** Starts with the first row open. Applies when `items` or this flag changes while nothing is open. */
23
+ openFirst: boolean;
20
24
  private openIds;
25
+ protected willUpdate(changed: Map<string, unknown>): void;
21
26
  private toggle;
22
27
  render(): lit.TemplateResult<1>;
23
28
  }
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  ItemsAccordion
3
- } from "../chunk-ALI26WOB.js";
3
+ } from "../chunk-EE6PAN3B.js";
4
+ import "../chunk-UAIUBPDN.js";
4
5
  import "../chunk-FZ36KL73.js";
5
6
  import "../chunk-KMU6ABQF.js";
6
7
  import "../chunk-EUXUH3YW.js";
@@ -3,8 +3,7 @@ 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
  *
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  Markdown
3
- } from "../chunk-5EBWMPJS.js";
3
+ } from "../chunk-QLA4BH2B.js";
4
+ import "../chunk-UAIUBPDN.js";
4
5
  import "../chunk-KMU6ABQF.js";
5
6
  import "../chunk-EUXUH3YW.js";
6
7
  export {
@@ -4,9 +4,8 @@ import { LitElement } from 'lit';
4
4
  /**
5
5
  * A responsive grid of `st-menu-grid-item`s — the "rich" nav-menu layout (icon + title +
6
6
  * description per entry, arranged in columns), typically slotted into `st-dropdown`'s default
7
- * slot. A 1:1 port of `SankhyaUI`'s React `MenuGrid` (`SankhyaCMS/SankhyaUI/src/components/Menu`):
8
- * same markup (`.menu-grid-container` > `.menu-grid.columns-N`), gap and breakpoints (768px: 2–4
9
- * columns → 2; 480px: everything → 1; a 1-column grid stays 1).
7
+ * slot. Markup is `.menu-grid-container` > `.menu-grid.columns-N`; breakpoints: at 768px, 2–4
8
+ * columns become 2; at 480px, everything becomes 1 (a 1-column grid stays 1).
10
9
  */
11
10
  declare class MenuGrid extends LitElement {
12
11
  static styles: lit.CSSResult;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MenuGrid
3
- } from "../chunk-SMLR736E.js";
3
+ } from "../chunk-OELI3IWC.js";
4
4
  import "../chunk-KMU6ABQF.js";
5
5
  import "../chunk-EUXUH3YW.js";
6
6
  export {
@@ -3,16 +3,14 @@ import { LitElement } from 'lit';
3
3
 
4
4
  /**
5
5
  * One entry in an `st-menu-grid` — icon (via `slot="icon"`) + title on one line, an optional
6
- * description below, and an optional corner badge ("New", "Popular", ...). A 1:1 port of
7
- * `SankhyaUI`'s React `MenuGridItem` (`SankhyaCMS/SankhyaUI/src/components/Menu`): same markup and
8
- * CSS, with its `motion` effects redone in CSS — fades up the first time it scrolls into view,
9
- * scales to 1.02 on hover / 0.98 while pressed, the icon tilts on hover, the badge pops in.
10
- * Colors come from the suite theme rather than per-item utility classes.
6
+ * description below, and an optional corner badge ("New", "Popular", ...). Effects are CSS:
7
+ * fades up the first time it scrolls into view, scales to 1.02 on hover / 0.98 while pressed, the
8
+ * icon tilts on hover, the badge pops in. Colors come from the suite theme rather than per-item
9
+ * utility classes.
11
10
  *
12
- * An `http(s)` `href` opens in a new tab, like the source. Any other `href` fires a *cancelable*
11
+ * An `http(s)` `href` opens in a new tab. Any other `href` fires a *cancelable*
13
12
  * `menu-grid-item-select` event (detail: `{ href }`) first: a host doing client-side routing calls
14
- * `event.preventDefault()` on it, which also cancels the anchor's own navigation (the source used
15
- * react-router's `Link` here; the suite apps have no router).
13
+ * `event.preventDefault()` on it, which also cancels the anchor's own navigation.
16
14
  */
17
15
  declare class MenuGridItem extends LitElement {
18
16
  /** `focus()` on the element focuses its link, so `st-dropdown` can arrow-key between items. */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MenuGridItem
3
- } from "../chunk-JQY2G4QK.js";
3
+ } from "../chunk-OLA35A2O.js";
4
4
  import "../chunk-KMU6ABQF.js";
5
5
  import "../chunk-EUXUH3YW.js";
6
6
  export {
@@ -3,15 +3,13 @@ import { LitElement } from 'lit';
3
3
 
4
4
  /**
5
5
  * A single flat nav row — icon (`slot="icon"`) + title + badge on one line, an optional
6
- * description below — as opposed to `st-menu-grid-item`'s card for a multi-column grid. A 1:1
7
- * port of `SankhyaUI`'s React `MenuItem` (`SankhyaCMS/SankhyaUI/src/components/Menu`): same
8
- * markup and CSS, with its `motion` effects redone in CSS — nudges right and scales to 1.01 on
9
- * hover / 0.99 while pressed, the icon tilts on hover, the badge pops in, the description fades
10
- * in. Colors come from the suite theme rather than per-item utility classes.
6
+ * description below — as opposed to `st-menu-grid-item`'s card for a multi-column grid. Effects
7
+ * are CSS: nudges right and scales to 1.01 on hover / 0.99 while pressed, the icon tilts on hover,
8
+ * the badge pops in, the description fades in. Colors come from the suite theme rather than
9
+ * per-item utility classes.
11
10
  *
12
11
  * Renders a real `<a href>` but fires a *cancelable* `menu-item-select` event (detail: `{ href }`)
13
- * before navigating — a host doing client-side routing calls `event.preventDefault()` on it (the
14
- * source used react-router's `Link` here; the suite apps have no router).
12
+ * before navigating — a host doing client-side routing calls `event.preventDefault()` on it.
15
13
  *
16
14
  * @slot icon - The row's icon, sized to `icon-size` (16px, or 14px when `compact`).
17
15
  * @cssprop --st-menu-item-icon-size - Width and height of the slotted icon; `icon-size` sets it.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MenuItem
3
- } from "../chunk-R5G6KFTJ.js";
3
+ } from "../chunk-2FJDNJ7R.js";
4
4
  import "../chunk-WTD2YIAA.js";
5
5
  import "../chunk-KMU6ABQF.js";
6
6
  import "../chunk-EUXUH3YW.js";