@sankhyatronics/sankhya-cms 0.0.0-stage → 0.1.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 (134) hide show
  1. package/README.md +34 -3
  2. package/custom-elements.json +4008 -0
  3. package/dist/bento-grid/index.d.ts +27 -0
  4. package/dist/bento-grid/index.js +10 -0
  5. package/dist/bento-grid/index.js.map +1 -0
  6. package/dist/card/index.d.ts +20 -0
  7. package/dist/card/index.js +9 -0
  8. package/dist/card/index.js.map +1 -0
  9. package/dist/carousel/index.d.ts +44 -0
  10. package/dist/carousel/index.js +10 -0
  11. package/dist/carousel/index.js.map +1 -0
  12. package/dist/chunk-23IHTBAB.js +557 -0
  13. package/dist/chunk-23IHTBAB.js.map +1 -0
  14. package/dist/chunk-2VZFHTBC.js +203 -0
  15. package/dist/chunk-2VZFHTBC.js.map +1 -0
  16. package/dist/chunk-3ERKQNZT.js +155 -0
  17. package/dist/chunk-3ERKQNZT.js.map +1 -0
  18. package/dist/chunk-3JU3R22O.js +193 -0
  19. package/dist/chunk-3JU3R22O.js.map +1 -0
  20. package/dist/chunk-3TCP25JG.js +347 -0
  21. package/dist/chunk-3TCP25JG.js.map +1 -0
  22. package/dist/chunk-3VE6VFJ4.js +87 -0
  23. package/dist/chunk-3VE6VFJ4.js.map +1 -0
  24. package/dist/chunk-4HKSA5UT.js +312 -0
  25. package/dist/chunk-4HKSA5UT.js.map +1 -0
  26. package/dist/chunk-5REZSZCK.js +266 -0
  27. package/dist/chunk-5REZSZCK.js.map +1 -0
  28. package/dist/chunk-5UFRGZWG.js +268 -0
  29. package/dist/chunk-5UFRGZWG.js.map +1 -0
  30. package/dist/chunk-74MILER4.js +215 -0
  31. package/dist/chunk-74MILER4.js.map +1 -0
  32. package/dist/chunk-7PSYCTEN.js +118 -0
  33. package/dist/chunk-7PSYCTEN.js.map +1 -0
  34. package/dist/chunk-CDC4P77V.js +299 -0
  35. package/dist/chunk-CDC4P77V.js.map +1 -0
  36. package/dist/chunk-E52WO7R7.js +279 -0
  37. package/dist/chunk-E52WO7R7.js.map +1 -0
  38. package/dist/chunk-EUXUH3YW.js +15 -0
  39. package/dist/chunk-EUXUH3YW.js.map +1 -0
  40. package/dist/chunk-IMACP7HN.js +156 -0
  41. package/dist/chunk-IMACP7HN.js.map +1 -0
  42. package/dist/chunk-LHU23TF6.js +273 -0
  43. package/dist/chunk-LHU23TF6.js.map +1 -0
  44. package/dist/chunk-OEX5FDMR.js +250 -0
  45. package/dist/chunk-OEX5FDMR.js.map +1 -0
  46. package/dist/chunk-RHAOQ6K4.js +138 -0
  47. package/dist/chunk-RHAOQ6K4.js.map +1 -0
  48. package/dist/chunk-RMIJVTFS.js +397 -0
  49. package/dist/chunk-RMIJVTFS.js.map +1 -0
  50. package/dist/chunk-U7YKCCJG.js +228 -0
  51. package/dist/chunk-U7YKCCJG.js.map +1 -0
  52. package/dist/chunk-USNFT4DU.js +125 -0
  53. package/dist/chunk-USNFT4DU.js.map +1 -0
  54. package/dist/chunk-VYON56QO.js +90 -0
  55. package/dist/chunk-VYON56QO.js.map +1 -0
  56. package/dist/chunk-WCO7JAIK.js +195 -0
  57. package/dist/chunk-WCO7JAIK.js.map +1 -0
  58. package/dist/chunk-XHBC23TV.js +254 -0
  59. package/dist/chunk-XHBC23TV.js.map +1 -0
  60. package/dist/chunk-XXPBFHWR.js +70 -0
  61. package/dist/chunk-XXPBFHWR.js.map +1 -0
  62. package/dist/cms-theme.css +15 -0
  63. package/dist/content-block/index.d.ts +25 -0
  64. package/dist/content-block/index.js +11 -0
  65. package/dist/content-block/index.js.map +1 -0
  66. package/dist/cookie-consent/index.d.ts +33 -0
  67. package/dist/cookie-consent/index.js +9 -0
  68. package/dist/cookie-consent/index.js.map +1 -0
  69. package/dist/dropdown/index.d.ts +89 -0
  70. package/dist/dropdown/index.js +9 -0
  71. package/dist/dropdown/index.js.map +1 -0
  72. package/dist/feature-split/index.d.ts +38 -0
  73. package/dist/feature-split/index.js +11 -0
  74. package/dist/feature-split/index.js.map +1 -0
  75. package/dist/features-section/index.d.ts +50 -0
  76. package/dist/features-section/index.js +14 -0
  77. package/dist/features-section/index.js.map +1 -0
  78. package/dist/footer/index.d.ts +64 -0
  79. package/dist/footer/index.js +9 -0
  80. package/dist/footer/index.js.map +1 -0
  81. package/dist/header/index.d.ts +112 -0
  82. package/dist/header/index.js +10 -0
  83. package/dist/header/index.js.map +1 -0
  84. package/dist/hero/index.d.ts +32 -0
  85. package/dist/hero/index.js +10 -0
  86. package/dist/hero/index.js.map +1 -0
  87. package/dist/icon-button/index.d.ts +23 -0
  88. package/dist/icon-button/index.js +9 -0
  89. package/dist/icon-button/index.js.map +1 -0
  90. package/dist/index.d.ts +22 -0
  91. package/dist/index.js +93 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/items-accordion/index.d.ts +31 -0
  94. package/dist/items-accordion/index.js +10 -0
  95. package/dist/items-accordion/index.js.map +1 -0
  96. package/dist/markdown/index.d.ts +33 -0
  97. package/dist/markdown/index.js +9 -0
  98. package/dist/markdown/index.js.map +1 -0
  99. package/dist/menu-grid/index.d.ts +21 -0
  100. package/dist/menu-grid/index.js +9 -0
  101. package/dist/menu-grid/index.js.map +1 -0
  102. package/dist/menu-grid-item/index.d.ts +53 -0
  103. package/dist/menu-grid-item/index.js +9 -0
  104. package/dist/menu-grid-item/index.js.map +1 -0
  105. package/dist/menu-item/index.d.ts +50 -0
  106. package/dist/menu-item/index.js +9 -0
  107. package/dist/menu-item/index.js.map +1 -0
  108. package/dist/promo-banner/index.d.ts +22 -0
  109. package/dist/promo-banner/index.js +10 -0
  110. package/dist/promo-banner/index.js.map +1 -0
  111. package/dist/schema/index.d.ts +72 -0
  112. package/dist/schema/index.js +75 -0
  113. package/dist/schema/index.js.map +1 -0
  114. package/dist/select/index.d.ts +77 -0
  115. package/dist/select/index.js +10 -0
  116. package/dist/select/index.js.map +1 -0
  117. package/dist/shared/icons.d.ts +77 -0
  118. package/dist/shared/icons.js +64 -0
  119. package/dist/shared/icons.js.map +1 -0
  120. package/dist/shared/styles.d.ts +90 -0
  121. package/dist/shared/styles.js +48 -0
  122. package/dist/shared/styles.js.map +1 -0
  123. package/dist/stats/index.d.ts +17 -0
  124. package/dist/stats/index.js +9 -0
  125. package/dist/stats/index.js.map +1 -0
  126. package/dist/testimonials/index.d.ts +25 -0
  127. package/dist/testimonials/index.js +10 -0
  128. package/dist/testimonials/index.js.map +1 -0
  129. package/dist/theme.css +292 -0
  130. package/dist/themes.css +65 -0
  131. package/dist/theming/index.d.ts +28 -0
  132. package/dist/theming/index.js +53 -0
  133. package/dist/theming/index.js.map +1 -0
  134. package/package.json +161 -4
@@ -0,0 +1,14 @@
1
+ import {
2
+ FeatureItem,
3
+ FeaturesSection
4
+ } from "../chunk-E52WO7R7.js";
5
+ import "../chunk-7PSYCTEN.js";
6
+ import "../chunk-3JU3R22O.js";
7
+ import "../chunk-3VE6VFJ4.js";
8
+ import "../chunk-RHAOQ6K4.js";
9
+ import "../chunk-EUXUH3YW.js";
10
+ export {
11
+ FeatureItem,
12
+ FeaturesSection
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,64 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement, PropertyValues } from 'lit';
3
+
4
+ interface FooterLink {
5
+ label: string;
6
+ href: string;
7
+ }
8
+ interface FooterColumn {
9
+ title: string;
10
+ links: FooterLink[];
11
+ }
12
+ interface FooterSocialLink {
13
+ /** Iconify icon name, e.g. `mdi:github`. */
14
+ icon: string;
15
+ href: string;
16
+ }
17
+ /** Fired when an internal footer link is activated — cancelable, so an SPA can `preventDefault()` and route instead. */
18
+ interface FooterLinkEventDetail {
19
+ href: string;
20
+ }
21
+ /**
22
+ * The footer, in two layouts:
23
+ *
24
+ * - **Bar** (default): a copyright line plus an optional "powered by" link — what the suite's
25
+ * authenticated apps use.
26
+ * - **Site**: when `columns`, `socialLinks`, `description` or `imageSrc` is set, the footer becomes a
27
+ * marketing-site footer — brand (logo/company name, description, social icons), link columns and a
28
+ * bottom bar with the copyright and "powered by".
29
+ *
30
+ * Fires a cancelable `footer-link` event (detail `{ href }`) when an internal link is clicked.
31
+ */
32
+ declare class Footer extends LitElement {
33
+ static styles: lit.CSSResult;
34
+ /** Inverts the footer's color roles (light-on-dark instead of dark-on-light) — matches the
35
+ * source component's `inverted` (from its shared `BaseProps`), same as `st-header`'s. */
36
+ inverted: boolean;
37
+ /** Used to build the default `copyright` line (`© {year} {companyName}`) when `copyright` isn't set explicitly. */
38
+ companyName: string;
39
+ /** Overrides the default computed copyright line entirely. */
40
+ copyright: string;
41
+ poweredBy: string;
42
+ poweredByLink: string;
43
+ /** App version, rendered as `v{version}` after the copyright line — for apps that show their own
44
+ * version in the footer rather than the header title. */
45
+ version: string;
46
+ /** Logo shown in the brand block (site layout). */
47
+ imageSrc: string;
48
+ /** Short blurb under the logo (site layout). */
49
+ description: string;
50
+ /** Link columns (site layout). */
51
+ columns: FooterColumn[];
52
+ /** Social icon links under the description (site layout). */
53
+ socialLinks: FooterSocialLink[];
54
+ private get isSite();
55
+ private get resolvedCopyright();
56
+ protected willUpdate(changed: PropertyValues): void;
57
+ private onLinkClick;
58
+ private renderLink;
59
+ private renderPoweredBy;
60
+ private renderSite;
61
+ render(): lit.TemplateResult<1>;
62
+ }
63
+
64
+ export { Footer, type FooterColumn, type FooterLink, type FooterLinkEventDetail, type FooterSocialLink };
@@ -0,0 +1,9 @@
1
+ import {
2
+ Footer
3
+ } from "../chunk-CDC4P77V.js";
4
+ import "../chunk-RHAOQ6K4.js";
5
+ import "../chunk-EUXUH3YW.js";
6
+ export {
7
+ Footer
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,112 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+
4
+ /**
5
+ * The app-shell header bar — brand (image + title, or title alone) on the left, a `slot="menu"`
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).
15
+ *
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
19
+ * toggle (closes on Escape or a click inside it), where the menu's `st-dropdown`s are switched to
20
+ * `inline` so they open in the flow — the same two slotted elements just get repositioned by CSS
21
+ * (`.mobile-panel`'s `display: contents` at desktop width vs. a real fixed-position box below
22
+ * `BREAKPOINT_TABLET`), rather than the slots being duplicated in the template, since a shadow
23
+ * root can only ever assign a given light-DOM child to the *first* slot of a given name.
24
+ *
25
+ * Also carries an optional built-in language switcher (`languages`/`currentLanguageCode`, fires
26
+ * `language-change`) — ported from `st-app-header`'s own implementation verbatim rather than
27
+ * rebuilt, since the source `Header`'s reference story shows an equivalent flag/language `Select`
28
+ * as a first-class header utility. Hidden entirely when `languages` has fewer than two entries.
29
+ * This component has no translation logic itself; the consuming app owns what a language `code`
30
+ * means and which content it re-renders in response.
31
+ */
32
+ declare class Header extends LitElement {
33
+ static styles: lit.CSSResult;
34
+ title: string;
35
+ /** 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). */
36
+ brandImageUrl: string;
37
+ /** `alt` text for the brand image — matches the source component's `altText` (default `'Logo'`). */
38
+ altText: string;
39
+ /** Wraps the brand in an `<a>` when set (e.g. `/`); a plain non-link `<div>` otherwise. */
40
+ logoHref: string;
41
+ /** `target` for the brand `<a>` — matches the source component's `logoTarget` (default `_self`). No effect when `logoHref` isn't set. */
42
+ logoTarget: string;
43
+ /** Extra class(es) appended to the brand link/div — matches the source component's `logoClassName`. */
44
+ logoClassName: string;
45
+ /** Inverts the header's color roles (light-on-dark instead of dark-on-light) — matches the
46
+ * source component's `inverted` (from its shared `BaseProps`). */
47
+ inverted: boolean;
48
+ sticky: boolean;
49
+ /**
50
+ * Language switcher options, e.g. `[{ code: 'en', label: 'English' }, ...]` — hidden entirely
51
+ * when empty or when only one language is offered (same convention as `st-app-header`'s
52
+ * `languages`, which this reuses verbatim). This component has no translation logic itself —
53
+ * selecting an option fires `language-change` (detail: `{ code }`), and the consuming app owns
54
+ * what `code` actually means and which content it re-renders.
55
+ */
56
+ languages: {
57
+ code: string;
58
+ label: string;
59
+ }[];
60
+ currentLanguageCode: string;
61
+ languageMenuLabel: string;
62
+ /** Internal open/closed state for the mobile nav overlay, reflected to an attribute purely so
63
+ * the `:host([mobile-open])` CSS selector above can react to it — not meant to be set from
64
+ * outside. */
65
+ mobileOpen: boolean;
66
+ /** True while the menu doesn't fit the bar at the current width: the header then shows the same
67
+ * hamburger layout it uses on a narrow screen. Set by `evaluateFit`, never from outside. */
68
+ compact: boolean;
69
+ private languageMenuOpen;
70
+ /** Whether `slot="utility"` has content — an empty utility row (and its divider) is hidden. */
71
+ private hasUtility;
72
+ private resizeObserver?;
73
+ /** Matches below BREAKPOINT_TABLET, where the hamburger layout is always on. */
74
+ private narrowQuery?;
75
+ /** The dropdowns this header switched to `inline` — only these are switched back, so a caller's
76
+ * own `inline` setting is left alone. */
77
+ private inlinedDropdowns;
78
+ /** While the hamburger layout is on, the dropdowns in the header open in the flow of the
79
+ * full-screen panel instead of floating over it (SankhyaUI's touch-device layout). */
80
+ private syncInlineDropdowns;
81
+ private onUtilitySlotChange;
82
+ private onMenuSlotChange;
83
+ protected updated(changed: Map<string, unknown>): void;
84
+ /** The bar width at which the menu last overflowed — the bar only expands again once it is
85
+ * clearly wider than this, so it can't flip back and forth right at the threshold. */
86
+ private collapsedAtWidth;
87
+ /** Collapses to the hamburger layout when the slotted menu overflows its row, and expands again
88
+ * once there is room. The collapsed layout hides the menu, so the room it needs can't be
89
+ * measured then; the width remembered when it collapsed stands in for it. */
90
+ private evaluateFit;
91
+ /** Whether the visible menu items reach past the right edge of the menu row. Measured from the
92
+ * items' own boxes (the slotted elements and their direct children), not the row's scrollWidth:
93
+ * a closed dropdown's absolutely positioned panel also counts towards scrollWidth, which would
94
+ * report overflow at any width. */
95
+ private menuOverflows;
96
+ protected firstUpdated(): void;
97
+ connectedCallback(): void;
98
+ private lightDomObserver?;
99
+ disconnectedCallback(): void;
100
+ private closeOnEscape;
101
+ private closeLanguageMenuOnOutsideClick;
102
+ private renderLanguageMenu;
103
+ private onLanguageSelect;
104
+ private renderBrand;
105
+ render(): lit.TemplateResult<1>;
106
+ }
107
+
108
+ interface LanguageChangedEventDetail {
109
+ code: string;
110
+ }
111
+
112
+ export { Header, type LanguageChangedEventDetail };
@@ -0,0 +1,10 @@
1
+ import {
2
+ Header
3
+ } from "../chunk-23IHTBAB.js";
4
+ import "../chunk-3TCP25JG.js";
5
+ import "../chunk-RHAOQ6K4.js";
6
+ import "../chunk-EUXUH3YW.js";
7
+ export {
8
+ Header
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,32 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+
4
+ /**
5
+ * Full-width hero banner: background image with a darkening overlay, title, optional subtitle and
6
+ * a call-to-action link. Port of `SankhyaUI`'s React `Hero`; the framer-motion entrance is redone
7
+ * as CSS keyframes (skipped under `prefers-reduced-motion`). The CTA fires a cancelable `action`
8
+ * event (detail `{ href }`) before navigating.
9
+ */
10
+ declare class Hero extends LitElement {
11
+ static styles: lit.CSSResult;
12
+ title: string;
13
+ subtitle: string;
14
+ imageSrc: string;
15
+ actionLabel: string;
16
+ href: string;
17
+ textAlignment: 'left' | 'center' | 'right' | 'justify';
18
+ padding: 'none' | 'small' | 'medium' | 'large';
19
+ inverted: boolean;
20
+ focalPoint: 'top' | 'left' | 'right' | 'bottom' | 'center';
21
+ private static positions;
22
+ protected willUpdate(): void;
23
+ private onClick;
24
+ render(): lit.TemplateResult<1>;
25
+ }
26
+
27
+ /** Fired by `st-hero` / `st-promo-banner` when the call-to-action is activated (source: `onAction`). */
28
+ interface HeroActionEventDetail {
29
+ href: string;
30
+ }
31
+
32
+ export { Hero, type HeroActionEventDetail };
@@ -0,0 +1,10 @@
1
+ import {
2
+ Hero
3
+ } from "../chunk-U7YKCCJG.js";
4
+ import "../chunk-3VE6VFJ4.js";
5
+ import "../chunk-RHAOQ6K4.js";
6
+ import "../chunk-EUXUH3YW.js";
7
+ export {
8
+ Hero
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,23 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+
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"`).
9
+ *
10
+ * Fires a plain native `click` — no custom event, since a caller just wants an ordinary button.
11
+ */
12
+ declare class IconButton extends LitElement {
13
+ static styles: lit.CSSResult;
14
+ /** Accessible name and tooltip — matches the source component's `ariaLabel` (renamed: modern
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. */
18
+ label: string;
19
+ disabled: boolean;
20
+ render(): lit.TemplateResult<1>;
21
+ }
22
+
23
+ export { IconButton };
@@ -0,0 +1,9 @@
1
+ import {
2
+ IconButton
3
+ } from "../chunk-XXPBFHWR.js";
4
+ import "../chunk-RHAOQ6K4.js";
5
+ import "../chunk-EUXUH3YW.js";
6
+ export {
7
+ IconButton
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,22 @@
1
+ export { BentoGrid, BentoGridItem } from './bento-grid/index.js';
2
+ export { Card } from './card/index.js';
3
+ export { Carousel, CarouselChangeEventDetail } from './carousel/index.js';
4
+ export { ContentBlock } from './content-block/index.js';
5
+ export { CookieConsent, CookieConsentEventDetail, CookieConsentStatus } from './cookie-consent/index.js';
6
+ export { Dropdown, DropdownToggleEventDetail } from './dropdown/index.js';
7
+ export { FeatureSplit, FeatureSplitActionEventDetail, FeatureSplitImagePosition, FeatureSplitItem } from './feature-split/index.js';
8
+ export { FeatureItem, FeatureItemData, FeaturesSection } from './features-section/index.js';
9
+ export { Footer, FooterColumn, FooterLink, FooterLinkEventDetail, FooterSocialLink } from './footer/index.js';
10
+ export { Header, LanguageChangedEventDetail } from './header/index.js';
11
+ export { Hero, HeroActionEventDetail } from './hero/index.js';
12
+ export { IconButton } from './icon-button/index.js';
13
+ export { AccordionItem, AccordionToggleEventDetail, ItemsAccordion } from './items-accordion/index.js';
14
+ export { Markdown, MarkdownErrorEventDetail } from './markdown/index.js';
15
+ export { MenuGrid } from './menu-grid/index.js';
16
+ export { MenuGridItem, MenuGridItemSelectEventDetail } from './menu-grid-item/index.js';
17
+ export { MenuItem, MenuItemSelectEventDetail } from './menu-item/index.js';
18
+ export { PromoBanner } from './promo-banner/index.js';
19
+ export { Select, SelectChangedEventDetail, SelectOption } from './select/index.js';
20
+ export { StatItem, Stats } from './stats/index.js';
21
+ export { TestimonialItem, Testimonials } from './testimonials/index.js';
22
+ import 'lit';
package/dist/index.js ADDED
@@ -0,0 +1,93 @@
1
+ import {
2
+ Testimonials
3
+ } from "./chunk-WCO7JAIK.js";
4
+ import {
5
+ MenuGridItem
6
+ } from "./chunk-4HKSA5UT.js";
7
+ import {
8
+ MenuItem
9
+ } from "./chunk-LHU23TF6.js";
10
+ import {
11
+ PromoBanner
12
+ } from "./chunk-3ERKQNZT.js";
13
+ import {
14
+ Select
15
+ } from "./chunk-5UFRGZWG.js";
16
+ import {
17
+ Stats
18
+ } from "./chunk-USNFT4DU.js";
19
+ import {
20
+ FeatureItem,
21
+ FeaturesSection
22
+ } from "./chunk-E52WO7R7.js";
23
+ import {
24
+ Footer
25
+ } from "./chunk-CDC4P77V.js";
26
+ import {
27
+ Header
28
+ } from "./chunk-23IHTBAB.js";
29
+ import "./chunk-3TCP25JG.js";
30
+ import {
31
+ Hero
32
+ } from "./chunk-U7YKCCJG.js";
33
+ import {
34
+ IconButton
35
+ } from "./chunk-XXPBFHWR.js";
36
+ import {
37
+ ItemsAccordion
38
+ } from "./chunk-74MILER4.js";
39
+ import {
40
+ MenuGrid
41
+ } from "./chunk-VYON56QO.js";
42
+ import {
43
+ BentoGrid
44
+ } from "./chunk-OEX5FDMR.js";
45
+ import {
46
+ Card
47
+ } from "./chunk-7PSYCTEN.js";
48
+ import {
49
+ Carousel
50
+ } from "./chunk-XHBC23TV.js";
51
+ import {
52
+ ContentBlock
53
+ } from "./chunk-IMACP7HN.js";
54
+ import {
55
+ CookieConsent
56
+ } from "./chunk-2VZFHTBC.js";
57
+ import {
58
+ Dropdown
59
+ } from "./chunk-RMIJVTFS.js";
60
+ import {
61
+ FeatureSplit
62
+ } from "./chunk-5REZSZCK.js";
63
+ import {
64
+ Markdown
65
+ } from "./chunk-3JU3R22O.js";
66
+ import "./chunk-3VE6VFJ4.js";
67
+ import "./chunk-RHAOQ6K4.js";
68
+ import "./chunk-EUXUH3YW.js";
69
+ export {
70
+ BentoGrid,
71
+ Card,
72
+ Carousel,
73
+ ContentBlock,
74
+ CookieConsent,
75
+ Dropdown,
76
+ FeatureItem,
77
+ FeatureSplit,
78
+ FeaturesSection,
79
+ Footer,
80
+ Header,
81
+ Hero,
82
+ IconButton,
83
+ ItemsAccordion,
84
+ Markdown,
85
+ MenuGrid,
86
+ MenuGridItem,
87
+ MenuItem,
88
+ PromoBanner,
89
+ Select,
90
+ Stats,
91
+ Testimonials
92
+ };
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,31 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+
4
+ interface AccordionItem {
5
+ id: string;
6
+ title: string;
7
+ content: string;
8
+ }
9
+ /** A vertical list of collapsible title/content rows; one open at a time unless `allow-multiple`. */
10
+ declare class ItemsAccordion extends LitElement {
11
+ static styles: lit.CSSResult;
12
+ title: string;
13
+ subtitle: string;
14
+ items: AccordionItem[];
15
+ allowMultiple: boolean;
16
+ private openIds;
17
+ private toggle;
18
+ render(): lit.TemplateResult<1>;
19
+ }
20
+
21
+ interface AccordionToggleEventDetail {
22
+ id: string;
23
+ open: boolean;
24
+ }
25
+ declare global {
26
+ interface HTMLElementEventMap {
27
+ 'accordion-toggle': CustomEvent<AccordionToggleEventDetail>;
28
+ }
29
+ }
30
+
31
+ export { type AccordionItem, type AccordionToggleEventDetail, ItemsAccordion };
@@ -0,0 +1,10 @@
1
+ import {
2
+ ItemsAccordion
3
+ } from "../chunk-74MILER4.js";
4
+ import "../chunk-3VE6VFJ4.js";
5
+ import "../chunk-RHAOQ6K4.js";
6
+ import "../chunk-EUXUH3YW.js";
7
+ export {
8
+ ItemsAccordion
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,33 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement, nothing } from 'lit';
3
+
4
+ /**
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.
8
+ * While a fetch is pending it shows "Loading content..."; on failure "Error loading content." and
9
+ * a `markdown-error` event (detail: `{ error }`).
10
+ *
11
+ * Text color is inherited from the parent so inverted containers just work.
12
+ */
13
+ declare class Markdown extends LitElement {
14
+ static styles: lit.CSSResult;
15
+ /** Inline Markdown source. Ignored when `src` is set. */
16
+ content: string;
17
+ /** URL of a Markdown file to fetch. */
18
+ src: string;
19
+ private fetched;
20
+ private loading;
21
+ private error;
22
+ private abort?;
23
+ willUpdate(changed: Map<string, unknown>): void;
24
+ disconnectedCallback(): void;
25
+ private load;
26
+ render(): lit.TemplateResult<1> | typeof nothing;
27
+ }
28
+
29
+ interface MarkdownErrorEventDetail {
30
+ error: Error;
31
+ }
32
+
33
+ export { Markdown, type MarkdownErrorEventDetail };
@@ -0,0 +1,9 @@
1
+ import {
2
+ Markdown
3
+ } from "../chunk-3JU3R22O.js";
4
+ import "../chunk-RHAOQ6K4.js";
5
+ import "../chunk-EUXUH3YW.js";
6
+ export {
7
+ Markdown
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,21 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+
4
+ /**
5
+ * A responsive grid of `st-menu-grid-item`s — the "rich" nav-menu layout (icon + title +
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).
10
+ */
11
+ declare class MenuGrid extends LitElement {
12
+ static styles: lit.CSSResult;
13
+ /** Number of columns at full width (1–4, same as the source component's `columns-N` classes). */
14
+ columns: number;
15
+ /** Extra class(es) appended to the inner grid element — the source component's `gridClassName`.
16
+ * Its outer `className` is the host element itself here: set a `class` attribute on `st-menu-grid`. */
17
+ gridClassName: string;
18
+ render(): lit.TemplateResult<1>;
19
+ }
20
+
21
+ export { MenuGrid };
@@ -0,0 +1,9 @@
1
+ import {
2
+ MenuGrid
3
+ } from "../chunk-VYON56QO.js";
4
+ import "../chunk-RHAOQ6K4.js";
5
+ import "../chunk-EUXUH3YW.js";
6
+ export {
7
+ MenuGrid
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,53 @@
1
+ import * as lit from 'lit';
2
+ import { LitElement } from 'lit';
3
+
4
+ /**
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.
11
+ *
12
+ * An `http(s)` `href` opens in a new tab, like the source. Any other `href` fires a *cancelable*
13
+ * `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).
16
+ */
17
+ declare class MenuGridItem extends LitElement {
18
+ /** `focus()` on the element focuses its link, so `st-dropdown` can arrow-key between items. */
19
+ static shadowRootOptions: {
20
+ delegatesFocus: boolean;
21
+ clonable?: boolean;
22
+ customElementRegistry?: CustomElementRegistry | null;
23
+ mode: ShadowRootMode;
24
+ serializable?: boolean;
25
+ slotAssignment?: SlotAssignmentMode;
26
+ };
27
+ static styles: lit.CSSResult;
28
+ title: string;
29
+ description: string;
30
+ href: string;
31
+ /** Small corner label, e.g. "New"/"Beta" — omit for none. */
32
+ badge: string;
33
+ compact: boolean;
34
+ /** Suppresses the description even when `description` is set (source: `showDescription`, default `true`). */
35
+ showDescription: boolean;
36
+ /** Whether `slot="icon"` has content, so an omitted icon leaves no empty box. */
37
+ private hasIcon;
38
+ /** True until the item first scrolls into view (the source's `whileInView ... once`). */
39
+ private pending;
40
+ private observer?;
41
+ connectedCallback(): void;
42
+ disconnectedCallback(): void;
43
+ private onIconSlotChange;
44
+ private get isExternal();
45
+ private onClick;
46
+ render(): lit.TemplateResult<1>;
47
+ }
48
+
49
+ interface MenuGridItemSelectEventDetail {
50
+ href: string;
51
+ }
52
+
53
+ export { MenuGridItem, type MenuGridItemSelectEventDetail };
@@ -0,0 +1,9 @@
1
+ import {
2
+ MenuGridItem
3
+ } from "../chunk-4HKSA5UT.js";
4
+ import "../chunk-RHAOQ6K4.js";
5
+ import "../chunk-EUXUH3YW.js";
6
+ export {
7
+ MenuGridItem
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}