@semantic-components/carousel 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,7 @@
1
+ # carousel
2
+
3
+ This library was generated with [Nx](https://nx.dev).
4
+
5
+ ## Running unit tests
6
+
7
+ Run `nx test carousel` to execute the unit tests.
@@ -0,0 +1,210 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ElementRef, input, computed, signal, afterNextRender, ChangeDetectionStrategy, ViewEncapsulation, Component, linkedSignal } from '@angular/core';
3
+ import { cn } from '@semantic-components/utils';
4
+ import EmblaCarousel from 'embla-carousel';
5
+ import { ScButtonBase, buttonVariants } from '@semantic-components/ui';
6
+
7
+ class ScCarousel {
8
+ host = inject(ElementRef);
9
+ classInput = input('', {
10
+ alias: 'class',
11
+ });
12
+ class = computed(() => cn('overflow-hidden', this.classInput()));
13
+ orientation = input('horizontal');
14
+ optionsInput = input({}, {
15
+ alias: 'options',
16
+ });
17
+ options = computed(() => {
18
+ const opts = this.optionsInput();
19
+ return {
20
+ ...opts,
21
+ axis: this.orientation() === 'horizontal' ? 'x' : 'y',
22
+ };
23
+ });
24
+ plugins = input([]);
25
+ canScrollPrev = signal(false);
26
+ canScrollNext = signal(false);
27
+ emblaApi;
28
+ get api() {
29
+ return this.emblaApi;
30
+ }
31
+ constructor() {
32
+ afterNextRender(() => {
33
+ this.emblaApi = EmblaCarousel(this.host.nativeElement, this.options(), this.plugins());
34
+ this.emblaApi
35
+ .on('select', this.togglePrevNextBtnsState)
36
+ .on('init', this.togglePrevNextBtnsState)
37
+ .on('reInit', this.togglePrevNextBtnsState);
38
+ });
39
+ }
40
+ togglePrevNextBtnsState = () => {
41
+ if (this.emblaApi.canScrollPrev()) {
42
+ this.canScrollPrev.set(true);
43
+ }
44
+ else {
45
+ this.canScrollPrev.set(false);
46
+ }
47
+ if (this.emblaApi.canScrollNext()) {
48
+ this.canScrollNext.set(true);
49
+ }
50
+ else {
51
+ this.canScrollNext.set(false);
52
+ }
53
+ };
54
+ handleKeydown(event) {
55
+ if (event.key === 'ArrowLeft') {
56
+ event.preventDefault();
57
+ this.scrollPrev();
58
+ }
59
+ else if (event.key === 'ArrowRight') {
60
+ event.preventDefault();
61
+ this.scrollNext();
62
+ }
63
+ }
64
+ scrollPrev() {
65
+ this.emblaApi.scrollPrev();
66
+ }
67
+ scrollNext() {
68
+ this.emblaApi.scrollNext();
69
+ }
70
+ ngOnDestroy() {
71
+ this.emblaApi.destroy();
72
+ }
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarousel, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.13", type: ScCarousel, isStandalone: true, selector: "div[sc-carousel]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, optionsInput: { classPropertyName: "optionsInput", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, plugins: { classPropertyName: "plugins", publicName: "plugins", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region", "aria-roledescription": "carousel" }, listeners: { "keydown": "handleKeydown($event)" }, properties: { "class": "class()" } }, ngImport: i0, template: `
75
+ <ng-content />
76
+ `, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarousel, decorators: [{
79
+ type: Component,
80
+ args: [{ selector: 'div[sc-carousel]', imports: [], template: `
81
+ <ng-content />
82
+ `, host: {
83
+ role: 'region',
84
+ 'aria-roledescription': 'carousel',
85
+ '[class]': 'class()',
86
+ '(keydown)': 'handleKeydown($event)',
87
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
88
+ }], ctorParameters: () => [] });
89
+
90
+ class ScCarouselContainer {
91
+ classInput = input('', {
92
+ alias: 'class',
93
+ });
94
+ class = computed(() => cn('relative', this.classInput()));
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselContainer, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.13", type: ScCarouselContainer, isStandalone: true, selector: "div[sc-carousel-container]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
97
+ <ng-content />
98
+ `, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselContainer, decorators: [{
101
+ type: Component,
102
+ args: [{ selector: 'div[sc-carousel-container]', imports: [], template: `
103
+ <ng-content />
104
+ `, host: {
105
+ '[class]': 'class()',
106
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
107
+ }] });
108
+
109
+ class ScCarouselItems {
110
+ scCarousel = inject(ScCarousel);
111
+ classInput = input('', {
112
+ alias: 'class',
113
+ });
114
+ class = computed(() => cn('flex', this.scCarousel.orientation() === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', this.classInput()));
115
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselItems, deps: [], target: i0.ɵɵFactoryTarget.Component });
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.13", type: ScCarouselItems, isStandalone: true, selector: "div[sc-carousel-items]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "class()" } }, ngImport: i0, template: `
117
+ <ng-content />
118
+ `, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselItems, decorators: [{
121
+ type: Component,
122
+ args: [{ selector: 'div[sc-carousel-items]', imports: [], template: `
123
+ <ng-content />
124
+ `, host: {
125
+ '[class]': 'class()',
126
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
127
+ }] });
128
+
129
+ class ScCarouselItem {
130
+ scCarousel = inject(ScCarousel);
131
+ classInput = input('', {
132
+ alias: 'class',
133
+ });
134
+ class = computed(() => cn('min-w-0 shrink-0 grow-0 basis-full', this.scCarousel.orientation() === 'horizontal' ? 'pl-4' : 'pt-4', this.classInput()));
135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.13", type: ScCarouselItem, isStandalone: true, selector: "div[sc-carousel-item]", inputs: { classInput: { classPropertyName: "classInput", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group", "aria-roledescription": "slide" }, properties: { "class": "class()" } }, ngImport: i0, template: `
137
+ <ng-content />
138
+ `, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
139
+ }
140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselItem, decorators: [{
141
+ type: Component,
142
+ args: [{ selector: 'div[sc-carousel-item]', imports: [], template: `
143
+ <ng-content />
144
+ `, host: {
145
+ role: 'group',
146
+ 'aria-roledescription': 'slide',
147
+ '[class]': 'class()',
148
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
149
+ }] });
150
+
151
+ class ScCarouselPrevious extends ScButtonBase {
152
+ scCarousel = inject(ScCarousel);
153
+ variantInput = input('outline');
154
+ sizeInput = input('icon');
155
+ class = computed(() => cn(buttonVariants({ variant: this.variant(), size: this.size() }), 'absolute h-8 w-8 rounded-full', this.scCarousel.orientation() === 'horizontal'
156
+ ? '-left-12 top-1/2 -translate-y-1/2'
157
+ : '-top-12 left-1/2 -translate-x-1/2 rotate-90', this.classInput()));
158
+ disabled = linkedSignal(() => {
159
+ return !this.scCarousel.canScrollPrev();
160
+ });
161
+ scrollPrev() {
162
+ this.scCarousel.api.scrollPrev();
163
+ }
164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselPrevious, deps: null, target: i0.ɵɵFactoryTarget.Component });
165
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.13", type: ScCarouselPrevious, isStandalone: true, selector: "button[sc-carousel-previous]", inputs: { variantInput: { classPropertyName: "variantInput", publicName: "variantInput", isSignal: true, isRequired: false, transformFunction: null }, sizeInput: { classPropertyName: "sizeInput", publicName: "sizeInput", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "scrollPrev()" } }, usesInheritance: true, ngImport: i0, template: `
166
+ <ng-content />
167
+ `, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselPrevious, decorators: [{
170
+ type: Component,
171
+ args: [{ selector: 'button[sc-carousel-previous]', imports: [], template: `
172
+ <ng-content />
173
+ `, host: {
174
+ '(click)': 'scrollPrev()',
175
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
176
+ }] });
177
+
178
+ class ScCarouselNext extends ScButtonBase {
179
+ scCarousel = inject(ScCarousel);
180
+ variantInput = input('outline');
181
+ sizeInput = input('icon');
182
+ class = computed(() => cn(buttonVariants({ variant: this.variant(), size: this.size() }), 'absolute h-8 w-8 rounded-full', this.scCarousel.orientation() === 'horizontal'
183
+ ? '-right-12 top-1/2 -translate-y-1/2'
184
+ : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90', this.classInput()));
185
+ disabled = linkedSignal(() => {
186
+ return !this.scCarousel.canScrollNext();
187
+ });
188
+ scrollNext() {
189
+ this.scCarousel.api.scrollNext();
190
+ }
191
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselNext, deps: null, target: i0.ɵɵFactoryTarget.Component });
192
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.13", type: ScCarouselNext, isStandalone: true, selector: "button[sc-carousel-next]", inputs: { variantInput: { classPropertyName: "variantInput", publicName: "variantInput", isSignal: true, isRequired: false, transformFunction: null }, sizeInput: { classPropertyName: "sizeInput", publicName: "sizeInput", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "scrollNext()" } }, usesInheritance: true, ngImport: i0, template: `
193
+ <ng-content />
194
+ `, isInline: true, styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
195
+ }
196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.13", ngImport: i0, type: ScCarouselNext, decorators: [{
197
+ type: Component,
198
+ args: [{ selector: 'button[sc-carousel-next]', imports: [], template: `
199
+ <ng-content />
200
+ `, host: {
201
+ '(click)': 'scrollNext()',
202
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush }]
203
+ }] });
204
+
205
+ /**
206
+ * Generated bundle index. Do not edit.
207
+ */
208
+
209
+ export { ScCarousel, ScCarouselContainer, ScCarouselItem, ScCarouselItems, ScCarouselNext, ScCarouselPrevious };
210
+ //# sourceMappingURL=semantic-components-carousel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-components-carousel.mjs","sources":["../../../../libs/carousel/src/lib/carousel/carousel.ts","../../../../libs/carousel/src/lib/carousel/carousel-container.ts","../../../../libs/carousel/src/lib/carousel/carousel-items.ts","../../../../libs/carousel/src/lib/carousel/carousel-item.ts","../../../../libs/carousel/src/lib/carousel/carousel-previous.ts","../../../../libs/carousel/src/lib/carousel/carousel-next.ts","../../../../libs/carousel/src/semantic-components-carousel.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnDestroy,\n ViewEncapsulation,\n afterNextRender,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\nimport EmblaCarousel, {\n EmblaCarouselType,\n EmblaOptionsType,\n EmblaPluginType,\n} from 'embla-carousel';\n\n@Component({\n selector: 'div[sc-carousel]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'region',\n 'aria-roledescription': 'carousel',\n '[class]': 'class()',\n '(keydown)': 'handleKeydown($event)',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarousel implements OnDestroy {\n private readonly host = inject(ElementRef);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('overflow-hidden', this.classInput()));\n\n readonly orientation = input<'horizontal' | 'vertical'>('horizontal');\n\n readonly optionsInput = input<EmblaOptionsType>(\n {},\n {\n alias: 'options',\n },\n );\n\n readonly options = computed<EmblaOptionsType>(() => {\n const opts = this.optionsInput();\n\n return {\n ...opts,\n axis: this.orientation() === 'horizontal' ? 'x' : 'y',\n };\n });\n\n readonly plugins = input<EmblaPluginType[]>([]);\n\n readonly canScrollPrev = signal(false);\n\n readonly canScrollNext = signal(false);\n\n private emblaApi!: EmblaCarouselType;\n\n get api() {\n return this.emblaApi;\n }\n\n constructor() {\n afterNextRender(() => {\n this.emblaApi = EmblaCarousel(this.host.nativeElement, this.options(), this.plugins());\n\n this.emblaApi\n .on('select', this.togglePrevNextBtnsState)\n .on('init', this.togglePrevNextBtnsState)\n .on('reInit', this.togglePrevNextBtnsState);\n });\n }\n\n togglePrevNextBtnsState = (): void => {\n if (this.emblaApi.canScrollPrev()) {\n this.canScrollPrev.set(true);\n } else {\n this.canScrollPrev.set(false);\n }\n\n if (this.emblaApi.canScrollNext()) {\n this.canScrollNext.set(true);\n } else {\n this.canScrollNext.set(false);\n }\n };\n\n handleKeydown(event: KeyboardEvent) {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n this.scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n this.scrollNext();\n }\n }\n\n private scrollPrev() {\n this.emblaApi.scrollPrev();\n }\n\n private scrollNext() {\n this.emblaApi.scrollNext();\n }\n\n ngOnDestroy() {\n this.emblaApi.destroy();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\n@Component({\n selector: 'div[sc-carousel-container]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselContainer {\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() => cn('relative', this.classInput()));\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'div[sc-carousel-items]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselItems {\n private readonly scCarousel = inject(ScCarousel);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'flex',\n this.scCarousel.orientation() === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n} from '@angular/core';\n\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'div[sc-carousel-item]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n role: 'group',\n 'aria-roledescription': 'slide',\n '[class]': 'class()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselItem {\n private readonly scCarousel = inject(ScCarousel);\n\n readonly classInput = input<string>('', {\n alias: 'class',\n });\n\n protected readonly class = computed(() =>\n cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n this.scCarousel.orientation() === 'horizontal' ? 'pl-4' : 'pt-4',\n this.classInput(),\n ),\n );\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '@semantic-components/ui';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'button[sc-carousel-previous]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '(click)': 'scrollPrev()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselPrevious extends ScButtonBase {\n private readonly scCarousel = inject(ScCarousel);\n\n override readonly variantInput = input<ButtonVariants['variant']>('outline');\n\n override readonly sizeInput = input<ButtonVariants['size']>('icon');\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute h-8 w-8 rounded-full',\n this.scCarousel.orientation() === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n this.classInput(),\n ),\n );\n\n protected override readonly disabled = linkedSignal(() => {\n return !this.scCarousel.canScrollPrev();\n });\n\n protected scrollPrev() {\n this.scCarousel.api.scrollPrev();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n computed,\n inject,\n input,\n linkedSignal,\n} from '@angular/core';\n\nimport { ButtonVariants, ScButtonBase, buttonVariants } from '@semantic-components/ui';\nimport { cn } from '@semantic-components/utils';\n\nimport { ScCarousel } from './carousel';\n\n@Component({\n selector: 'button[sc-carousel-next]',\n imports: [],\n template: `\n <ng-content />\n `,\n host: {\n '(click)': 'scrollNext()',\n },\n styles: ``,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ScCarouselNext extends ScButtonBase {\n private readonly scCarousel = inject(ScCarousel);\n\n override readonly variantInput = input<ButtonVariants['variant']>('outline');\n\n override readonly sizeInput = input<ButtonVariants['size']>('icon');\n\n protected override readonly class = computed(() =>\n cn(\n buttonVariants({ variant: this.variant(), size: this.size() }),\n 'absolute h-8 w-8 rounded-full',\n this.scCarousel.orientation() === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n this.classInput(),\n ),\n );\n\n protected override readonly disabled = linkedSignal(() => {\n return !this.scCarousel.canScrollNext();\n });\n\n protected scrollNext() {\n this.scCarousel.api.scrollNext();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './lib/carousel';
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ScCarouselContainer {
3
+ readonly classInput: import("@angular/core").InputSignal<string>;
4
+ protected readonly class: import("@angular/core").Signal<string>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScCarouselContainer, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScCarouselContainer, "div[sc-carousel-container]", never, { "classInput": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
7
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ScCarouselItem {
3
+ private readonly scCarousel;
4
+ readonly classInput: import("@angular/core").InputSignal<string>;
5
+ protected readonly class: import("@angular/core").Signal<string>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScCarouselItem, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScCarouselItem, "div[sc-carousel-item]", never, { "classInput": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ScCarouselItems {
3
+ private readonly scCarousel;
4
+ readonly classInput: import("@angular/core").InputSignal<string>;
5
+ protected readonly class: import("@angular/core").Signal<string>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScCarouselItems, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScCarouselItems, "div[sc-carousel-items]", never, { "classInput": { "alias": "class"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8
+ }
@@ -0,0 +1,12 @@
1
+ import { ScButtonBase } from '@semantic-components/ui';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScCarouselNext extends ScButtonBase {
4
+ private readonly scCarousel;
5
+ readonly variantInput: import("@angular/core").InputSignal<"primary" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined>;
6
+ readonly sizeInput: import("@angular/core").InputSignal<"default" | "sm" | "lg" | "icon" | null | undefined>;
7
+ protected readonly class: import("@angular/core").Signal<string>;
8
+ protected readonly disabled: import("@angular/core").WritableSignal<boolean>;
9
+ protected scrollNext(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScCarouselNext, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScCarouselNext, "button[sc-carousel-next]", never, { "variantInput": { "alias": "variantInput"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "sizeInput"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
12
+ }
@@ -0,0 +1,12 @@
1
+ import { ScButtonBase } from '@semantic-components/ui';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ScCarouselPrevious extends ScButtonBase {
4
+ private readonly scCarousel;
5
+ readonly variantInput: import("@angular/core").InputSignal<"primary" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined>;
6
+ readonly sizeInput: import("@angular/core").InputSignal<"default" | "sm" | "lg" | "icon" | null | undefined>;
7
+ protected readonly class: import("@angular/core").Signal<string>;
8
+ protected readonly disabled: import("@angular/core").WritableSignal<boolean>;
9
+ protected scrollPrev(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScCarouselPrevious, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScCarouselPrevious, "button[sc-carousel-previous]", never, { "variantInput": { "alias": "variantInput"; "required": false; "isSignal": true; }; "sizeInput": { "alias": "sizeInput"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
12
+ }
@@ -0,0 +1,24 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { EmblaCarouselType } from 'embla-carousel';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ScCarousel implements OnDestroy {
5
+ private readonly host;
6
+ readonly classInput: import("@angular/core").InputSignal<string>;
7
+ protected readonly class: import("@angular/core").Signal<string>;
8
+ readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical">;
9
+ readonly optionsInput: import("@angular/core").InputSignal<Partial<import("embla-carousel/components/Options").OptionsType>>;
10
+ readonly options: import("@angular/core").Signal<Partial<import("embla-carousel/components/Options").OptionsType>>;
11
+ readonly plugins: import("@angular/core").InputSignal<import("embla-carousel").CreatePluginType<import("embla-carousel/components/Plugins").LoosePluginType, {}>[]>;
12
+ readonly canScrollPrev: import("@angular/core").WritableSignal<boolean>;
13
+ readonly canScrollNext: import("@angular/core").WritableSignal<boolean>;
14
+ private emblaApi;
15
+ get api(): EmblaCarouselType;
16
+ constructor();
17
+ togglePrevNextBtnsState: () => void;
18
+ handleKeydown(event: KeyboardEvent): void;
19
+ private scrollPrev;
20
+ private scrollNext;
21
+ ngOnDestroy(): void;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScCarousel, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScCarousel, "div[sc-carousel]", never, { "classInput": { "alias": "class"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "optionsInput": { "alias": "options"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
24
+ }
@@ -0,0 +1,6 @@
1
+ export * from './carousel';
2
+ export * from './carousel-container';
3
+ export * from './carousel-items';
4
+ export * from './carousel-item';
5
+ export * from './carousel-previous';
6
+ export * from './carousel-next';
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@semantic-components/carousel",
3
+ "version": "0.0.1",
4
+ "private": false,
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "author": "Khalil LAGRIDA",
9
+ "license": "MIT",
10
+ "peerDependencies": {
11
+ "@angular/core": ">=19.0.0",
12
+ "@semantic-components/utils": "0.39.0",
13
+ "embla-carousel": "^8.6.0",
14
+ "@semantic-components/ui": "0.50.0"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/khalilou88/semantic-components",
19
+ "directory": "libs/carousel"
20
+ },
21
+ "sideEffects": false,
22
+ "module": "fesm2022/semantic-components-carousel.mjs",
23
+ "typings": "index.d.ts",
24
+ "exports": {
25
+ "./package.json": {
26
+ "default": "./package.json"
27
+ },
28
+ ".": {
29
+ "types": "./index.d.ts",
30
+ "default": "./fesm2022/semantic-components-carousel.mjs"
31
+ }
32
+ },
33
+ "dependencies": {
34
+ "tslib": "^2.3.0"
35
+ }
36
+ }