@sankhyatronics/sankhya-cms 0.1.1 → 0.1.3

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/custom-elements.json +1843 -952
  3. package/dist/carousel/index.d.ts +38 -2
  4. package/dist/carousel/index.js +1 -1
  5. package/dist/chunk-47RPYNFG.js +527 -0
  6. package/dist/chunk-47RPYNFG.js.map +1 -0
  7. package/dist/chunk-5DNVCMOO.js +509 -0
  8. package/dist/chunk-5DNVCMOO.js.map +1 -0
  9. package/dist/{chunk-RMIJVTFS.js → chunk-FWIG6GEZ.js} +8 -4
  10. package/dist/chunk-FWIG6GEZ.js.map +1 -0
  11. package/dist/{chunk-U7YKCCJG.js → chunk-K4ZICRZL.js} +134 -14
  12. package/dist/chunk-K4ZICRZL.js.map +1 -0
  13. package/dist/chunk-N63TVWK3.js +203 -0
  14. package/dist/chunk-N63TVWK3.js.map +1 -0
  15. package/dist/{chunk-23IHTBAB.js → chunk-PKTRYUGP.js} +108 -2
  16. package/dist/chunk-PKTRYUGP.js.map +1 -0
  17. package/dist/{chunk-LHU23TF6.js → chunk-TH5NZXA7.js} +5 -4
  18. package/dist/chunk-TH5NZXA7.js.map +1 -0
  19. package/dist/dropdown/index.js +1 -1
  20. package/dist/header/index.d.ts +18 -0
  21. package/dist/header/index.js +1 -1
  22. package/dist/hero/index.d.ts +29 -4
  23. package/dist/hero/index.js +1 -1
  24. package/dist/index.d.ts +2 -1
  25. package/dist/index.js +23 -19
  26. package/dist/menu-item/index.js +1 -1
  27. package/dist/schema/index.d.ts +1 -0
  28. package/dist/schema/index.js +1 -0
  29. package/dist/schema/index.js.map +1 -1
  30. package/dist/section/index.d.ts +33 -0
  31. package/dist/section/index.js +10 -0
  32. package/dist/section/index.js.map +1 -0
  33. package/dist/testimonials/index.d.ts +62 -6
  34. package/dist/testimonials/index.js +2 -1
  35. package/package.json +25 -21
  36. package/dist/chunk-23IHTBAB.js.map +0 -1
  37. package/dist/chunk-LHU23TF6.js.map +0 -1
  38. package/dist/chunk-RMIJVTFS.js.map +0 -1
  39. package/dist/chunk-U7YKCCJG.js.map +0 -1
  40. package/dist/chunk-WCO7JAIK.js +0 -195
  41. package/dist/chunk-WCO7JAIK.js.map +0 -1
  42. package/dist/chunk-XHBC23TV.js +0 -254
  43. package/dist/chunk-XHBC23TV.js.map +0 -1
@@ -1,254 +0,0 @@
1
- import {
2
- reducedMotionStyles
3
- } from "./chunk-3VE6VFJ4.js";
4
- import {
5
- buttonResetStyles,
6
- controlBaseStyles
7
- } from "./chunk-RHAOQ6K4.js";
8
- import {
9
- __decorateClass
10
- } from "./chunk-EUXUH3YW.js";
11
-
12
- // src/carousel/Carousel.ts
13
- import { LitElement, css, html, nothing } from "lit";
14
- import { customElement, property, state } from "lit/decorators.js";
15
- var Carousel = class extends LitElement {
16
- constructor() {
17
- super(...arguments);
18
- this.autoPlay = true;
19
- this.interval = 5e3;
20
- this.showArrows = true;
21
- this.showIndicators = true;
22
- this.index = 0;
23
- this.count = 0;
24
- this.paused = false;
25
- this.pause = () => {
26
- this.paused = true;
27
- };
28
- this.resume = () => {
29
- this.paused = false;
30
- };
31
- }
32
- connectedCallback() {
33
- super.connectedCallback();
34
- this.addEventListener("mouseenter", this.pause);
35
- this.addEventListener("mouseleave", this.resume);
36
- this.addEventListener("focusin", this.pause);
37
- this.addEventListener("focusout", this.resume);
38
- }
39
- disconnectedCallback() {
40
- this.stopTimer();
41
- this.removeEventListener("mouseenter", this.pause);
42
- this.removeEventListener("mouseleave", this.resume);
43
- this.removeEventListener("focusin", this.pause);
44
- this.removeEventListener("focusout", this.resume);
45
- super.disconnectedCallback();
46
- }
47
- updated(changed) {
48
- if (changed.has("index") || changed.has("count")) this.syncSlides();
49
- if (changed.has("autoPlay") || changed.has("interval") || changed.has("count")) this.restartTimer();
50
- }
51
- get slides() {
52
- return this.shadowRoot?.querySelector("slot")?.assignedElements({ flatten: true }) ?? [];
53
- }
54
- syncSlides() {
55
- this.slides.forEach((el, i) => el.toggleAttribute("data-st-active", i === this.index));
56
- }
57
- onSlotChange() {
58
- this.count = this.slides.length;
59
- if (this.index >= this.count) this.index = 0;
60
- this.syncSlides();
61
- }
62
- stopTimer() {
63
- if (this.timer !== void 0) clearInterval(this.timer);
64
- this.timer = void 0;
65
- }
66
- restartTimer() {
67
- this.stopTimer();
68
- if (!this.autoPlay || this.count < 2) return;
69
- this.timer = setInterval(() => {
70
- if (!this.paused) this.go(this.index + 1, "next");
71
- }, this.interval);
72
- }
73
- go(target, direction) {
74
- if (this.count === 0) return;
75
- this.setAttribute("data-direction", direction);
76
- this.index = (target + this.count) % this.count;
77
- this.dispatchEvent(
78
- new CustomEvent("carousel-change", {
79
- detail: { index: this.index },
80
- bubbles: true,
81
- composed: true
82
- })
83
- );
84
- this.restartTimer();
85
- }
86
- render() {
87
- const multiple = this.count > 1;
88
- return html`
89
- <slot @slotchange=${this.onSlotChange}></slot>
90
- ${this.showArrows && multiple ? html`
91
- <button part="nav-button prev" class="nav prev" aria-label="Previous Slide" @click=${() => this.go(this.index - 1, "prev")}>&#10094;</button>
92
- <button part="nav-button next" class="nav next" aria-label="Next Slide" @click=${() => this.go(this.index + 1, "next")}>&#10095;</button>
93
- ` : nothing}
94
- ${this.showIndicators && multiple ? html`<div class="indicators" part="indicators">
95
- ${Array.from(
96
- { length: this.count },
97
- (_, i) => html`
98
- <button
99
- part="dot"
100
- class="dot ${i === this.index ? "active" : ""}"
101
- aria-label="Go to slide ${i + 1}"
102
- aria-current=${i === this.index ? "true" : "false"}
103
- @click=${() => this.go(i, i > this.index ? "next" : "prev")}
104
- ></button>
105
- `
106
- )}
107
- </div>` : nothing}
108
- `;
109
- }
110
- };
111
- Carousel.styles = css`
112
- ${controlBaseStyles}
113
-
114
- :host {
115
- display: block;
116
- position: relative;
117
- width: 100%;
118
- overflow: hidden;
119
- }
120
-
121
- ::slotted(*) {
122
- display: none !important;
123
- }
124
-
125
- ::slotted([data-st-active]) {
126
- display: block !important;
127
- animation: st-carousel-in-next 0.4s ease both;
128
- }
129
-
130
- :host([data-direction='prev']) ::slotted([data-st-active]) {
131
- animation-name: st-carousel-in-prev;
132
- }
133
-
134
- @keyframes st-carousel-in-next {
135
- from {
136
- transform: translateX(10%);
137
- opacity: 0;
138
- }
139
- to {
140
- transform: none;
141
- opacity: 1;
142
- }
143
- }
144
-
145
- @keyframes st-carousel-in-prev {
146
- from {
147
- transform: translateX(-10%);
148
- opacity: 0;
149
- }
150
- to {
151
- transform: none;
152
- opacity: 1;
153
- }
154
- }
155
-
156
- .nav {
157
- ${buttonResetStyles}
158
- position: absolute;
159
- top: 50%;
160
- transform: translateY(-50%);
161
- z-index: 10;
162
- display: flex;
163
- align-items: center;
164
- justify-content: center;
165
- width: var(--st-size-38);
166
- height: var(--st-size-38);
167
- border-radius: var(--st-radius-circle);
168
- border: 1px solid var(--st-color-border);
169
- background: var(--st-color-surface);
170
- color: var(--st-color-text-strong);
171
- font-size: var(--st-text-xl);
172
- opacity: 0.8;
173
- transition:
174
- opacity 0.3s ease,
175
- transform 0.3s ease;
176
- }
177
-
178
- .nav:hover {
179
- opacity: 1;
180
- transform: translateY(-50%) scale(1.1);
181
- }
182
-
183
- .prev {
184
- left: var(--st-space-12);
185
- }
186
-
187
- .next {
188
- right: var(--st-space-12);
189
- }
190
-
191
- .indicators {
192
- position: absolute;
193
- bottom: var(--st-space-24);
194
- left: 50%;
195
- transform: translateX(-50%);
196
- z-index: 10;
197
- display: flex;
198
- gap: var(--st-space-12);
199
- }
200
-
201
- .dot {
202
- ${buttonResetStyles}
203
- width: var(--st-space-12);
204
- height: var(--st-space-12);
205
- padding: 0;
206
- border-radius: var(--st-radius-circle);
207
- background: var(--st-color-border-strong);
208
- transition:
209
- background 0.3s ease,
210
- transform 0.3s ease;
211
- }
212
-
213
- .dot:hover {
214
- background: var(--st-color-text-muted);
215
- }
216
-
217
- .dot.active {
218
- background: var(--st-color-text-strong);
219
- transform: scale(1.2);
220
- }
221
-
222
- ${reducedMotionStyles}
223
- @media (prefers-reduced-motion: reduce) {
224
- ::slotted([data-st-active]) {
225
- animation: none;
226
- }
227
- }
228
- `;
229
- __decorateClass([
230
- property({ type: Boolean, attribute: "auto-play" })
231
- ], Carousel.prototype, "autoPlay", 2);
232
- __decorateClass([
233
- property({ type: Number })
234
- ], Carousel.prototype, "interval", 2);
235
- __decorateClass([
236
- property({ type: Boolean, attribute: "show-arrows" })
237
- ], Carousel.prototype, "showArrows", 2);
238
- __decorateClass([
239
- property({ type: Boolean, attribute: "show-indicators" })
240
- ], Carousel.prototype, "showIndicators", 2);
241
- __decorateClass([
242
- state()
243
- ], Carousel.prototype, "index", 2);
244
- __decorateClass([
245
- state()
246
- ], Carousel.prototype, "count", 2);
247
- Carousel = __decorateClass([
248
- customElement("st-carousel")
249
- ], Carousel);
250
-
251
- export {
252
- Carousel
253
- };
254
- //# sourceMappingURL=chunk-XHBC23TV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/carousel/Carousel.ts"],"sourcesContent":["import { LitElement, css, html, nothing } from 'lit';\r\nimport { customElement, property, state } from 'lit/decorators.js';\r\n\r\nimport { buttonResetStyles, controlBaseStyles } from '../shared/styles';\r\nimport { reducedMotionStyles } from '../shared/section-styles';\r\nimport type { CarouselChangeEventDetail } from './CarouselEvents';\r\n\r\n/**\r\n * Cycles through its slotted children, one visible at a time, with optional autoplay, arrows and\r\n * dot indicators. The incoming slide slides in from the travel direction (CSS keyframes in place\r\n * of the source's framer-motion spring). Autoplay pauses while hovered or focused and stops when\r\n * the element is disconnected.\r\n */\r\n@customElement('st-carousel')\r\nexport class Carousel extends LitElement {\r\n static styles = css`\r\n ${controlBaseStyles}\r\n\r\n :host {\r\n display: block;\r\n position: relative;\r\n width: 100%;\r\n overflow: hidden;\r\n }\r\n\r\n ::slotted(*) {\r\n display: none !important;\r\n }\r\n\r\n ::slotted([data-st-active]) {\r\n display: block !important;\r\n animation: st-carousel-in-next 0.4s ease both;\r\n }\r\n\r\n :host([data-direction='prev']) ::slotted([data-st-active]) {\r\n animation-name: st-carousel-in-prev;\r\n }\r\n\r\n @keyframes st-carousel-in-next {\r\n from {\r\n transform: translateX(10%);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: none;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n @keyframes st-carousel-in-prev {\r\n from {\r\n transform: translateX(-10%);\r\n opacity: 0;\r\n }\r\n to {\r\n transform: none;\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .nav {\r\n ${buttonResetStyles}\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n z-index: 10;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--st-size-38);\r\n height: var(--st-size-38);\r\n border-radius: var(--st-radius-circle);\r\n border: 1px solid var(--st-color-border);\r\n background: var(--st-color-surface);\r\n color: var(--st-color-text-strong);\r\n font-size: var(--st-text-xl);\r\n opacity: 0.8;\r\n transition:\r\n opacity 0.3s ease,\r\n transform 0.3s ease;\r\n }\r\n\r\n .nav:hover {\r\n opacity: 1;\r\n transform: translateY(-50%) scale(1.1);\r\n }\r\n\r\n .prev {\r\n left: var(--st-space-12);\r\n }\r\n\r\n .next {\r\n right: var(--st-space-12);\r\n }\r\n\r\n .indicators {\r\n position: absolute;\r\n bottom: var(--st-space-24);\r\n left: 50%;\r\n transform: translateX(-50%);\r\n z-index: 10;\r\n display: flex;\r\n gap: var(--st-space-12);\r\n }\r\n\r\n .dot {\r\n ${buttonResetStyles}\r\n width: var(--st-space-12);\r\n height: var(--st-space-12);\r\n padding: 0;\r\n border-radius: var(--st-radius-circle);\r\n background: var(--st-color-border-strong);\r\n transition:\r\n background 0.3s ease,\r\n transform 0.3s ease;\r\n }\r\n\r\n .dot:hover {\r\n background: var(--st-color-text-muted);\r\n }\r\n\r\n .dot.active {\r\n background: var(--st-color-text-strong);\r\n transform: scale(1.2);\r\n }\r\n\r\n ${reducedMotionStyles}\r\n @media (prefers-reduced-motion: reduce) {\r\n ::slotted([data-st-active]) {\r\n animation: none;\r\n }\r\n }\r\n `;\r\n\r\n @property({ type: Boolean, attribute: 'auto-play' })\r\n autoPlay = true;\r\n\r\n /** Autoplay delay in milliseconds. */\r\n @property({ type: Number })\r\n interval = 5000;\r\n\r\n @property({ type: Boolean, attribute: 'show-arrows' })\r\n showArrows = true;\r\n\r\n @property({ type: Boolean, attribute: 'show-indicators' })\r\n showIndicators = true;\r\n\r\n @state() private index = 0;\r\n @state() private count = 0;\r\n private paused = false;\r\n private timer?: ReturnType<typeof setInterval>;\r\n\r\n connectedCallback() {\r\n super.connectedCallback();\r\n this.addEventListener('mouseenter', this.pause);\r\n this.addEventListener('mouseleave', this.resume);\r\n this.addEventListener('focusin', this.pause);\r\n this.addEventListener('focusout', this.resume);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.stopTimer();\r\n this.removeEventListener('mouseenter', this.pause);\r\n this.removeEventListener('mouseleave', this.resume);\r\n this.removeEventListener('focusin', this.pause);\r\n this.removeEventListener('focusout', this.resume);\r\n super.disconnectedCallback();\r\n }\r\n\r\n protected updated(changed: Map<string, unknown>) {\r\n if (changed.has('index') || changed.has('count')) this.syncSlides();\r\n if (changed.has('autoPlay') || changed.has('interval') || changed.has('count')) this.restartTimer();\r\n }\r\n\r\n private pause = () => {\r\n this.paused = true;\r\n };\r\n\r\n private resume = () => {\r\n this.paused = false;\r\n };\r\n\r\n private get slides(): Element[] {\r\n return this.shadowRoot?.querySelector('slot')?.assignedElements({ flatten: true }) ?? [];\r\n }\r\n\r\n private syncSlides() {\r\n this.slides.forEach((el, i) => el.toggleAttribute('data-st-active', i === this.index));\r\n }\r\n\r\n private onSlotChange() {\r\n this.count = this.slides.length;\r\n if (this.index >= this.count) this.index = 0;\r\n this.syncSlides();\r\n }\r\n\r\n private stopTimer() {\r\n if (this.timer !== undefined) clearInterval(this.timer);\r\n this.timer = undefined;\r\n }\r\n\r\n private restartTimer() {\r\n this.stopTimer();\r\n if (!this.autoPlay || this.count < 2) return;\r\n this.timer = setInterval(() => {\r\n if (!this.paused) this.go(this.index + 1, 'next');\r\n }, this.interval);\r\n }\r\n\r\n private go(target: number, direction: 'next' | 'prev') {\r\n if (this.count === 0) return;\r\n this.setAttribute('data-direction', direction);\r\n this.index = (target + this.count) % this.count;\r\n this.dispatchEvent(\r\n new CustomEvent<CarouselChangeEventDetail>('carousel-change', {\r\n detail: { index: this.index },\r\n bubbles: true,\r\n composed: true,\r\n }),\r\n );\r\n this.restartTimer();\r\n }\r\n\r\n render() {\r\n const multiple = this.count > 1;\r\n return html`\r\n <slot @slotchange=${this.onSlotChange}></slot>\r\n ${this.showArrows && multiple\r\n ? html`\r\n <button part=\"nav-button prev\" class=\"nav prev\" aria-label=\"Previous Slide\" @click=${() => this.go(this.index - 1, 'prev')}>&#10094;</button>\r\n <button part=\"nav-button next\" class=\"nav next\" aria-label=\"Next Slide\" @click=${() => this.go(this.index + 1, 'next')}>&#10095;</button>\r\n `\r\n : nothing}\r\n ${this.showIndicators && multiple\r\n ? html`<div class=\"indicators\" part=\"indicators\">\r\n ${Array.from(\r\n { length: this.count },\r\n (_, i) => html`\r\n <button\r\n part=\"dot\"\r\n class=\"dot ${i === this.index ? 'active' : ''}\"\r\n aria-label=\"Go to slide ${i + 1}\"\r\n aria-current=${i === this.index ? 'true' : 'false'}\r\n @click=${() => this.go(i, i > this.index ? 'next' : 'prev')}\r\n ></button>\r\n `,\r\n )}\r\n </div>`\r\n : nothing}\r\n `;\r\n }\r\n}\r\n"],"mappings":"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","names":[]}