thread-ui 0.12.0 → 0.13.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.
- package/README.md +5 -1
- package/dist/components/content-display/carousel/carousel-context.d.ts +48 -0
- package/dist/components/content-display/carousel/carousel-context.js +5 -0
- package/dist/components/content-display/carousel/carousel-context.js.map +1 -0
- package/dist/components/content-display/carousel/carousel.d.ts +18 -0
- package/dist/components/content-display/carousel/carousel.js +71 -0
- package/dist/components/content-display/carousel/carousel.js.map +1 -0
- package/dist/components/content-display/carousel/carousel.types.d.ts +47 -0
- package/dist/components/content-display/carousel/carousel.types.js +2 -0
- package/dist/components/content-display/carousel/carousel.types.js.map +1 -0
- package/dist/components/content-display/carousel/components/carousel-content.d.ts +1 -0
- package/dist/components/content-display/carousel/components/carousel-content.js +33 -0
- package/dist/components/content-display/carousel/components/carousel-content.js.map +1 -0
- package/dist/components/content-display/carousel/components/carousel-controls.d.ts +3 -0
- package/dist/components/content-display/carousel/components/carousel-controls.js +27 -0
- package/dist/components/content-display/carousel/components/carousel-controls.js.map +1 -0
- package/dist/components/content-display/carousel/components/carousel-header.d.ts +1 -0
- package/dist/components/content-display/carousel/components/carousel-header.js +24 -0
- package/dist/components/content-display/carousel/components/carousel-header.js.map +1 -0
- package/dist/components/content-display/carousel/components/carousel-item.d.ts +6 -0
- package/dist/components/content-display/carousel/components/carousel-item.js +43 -0
- package/dist/components/content-display/carousel/components/carousel-item.js.map +1 -0
- package/dist/components/content-display/carousel/components/carousel-items-display.d.ts +1 -0
- package/dist/components/content-display/carousel/components/carousel-items-display.js +19 -0
- package/dist/components/content-display/carousel/components/carousel-items-display.js.map +1 -0
- package/dist/components/content-display/carousel/index.d.ts +2 -0
- package/dist/components/content-display/carousel/index.js +2 -0
- package/dist/components/content-display/carousel/index.js.map +1 -0
- package/dist/components/content-display/gallery/components/gallery-content.d.ts +1 -0
- package/dist/components/content-display/gallery/components/gallery-content.js +64 -0
- package/dist/components/content-display/gallery/components/gallery-content.js.map +1 -0
- package/dist/components/content-display/gallery/components/gallery-header.d.ts +1 -0
- package/dist/components/content-display/gallery/components/gallery-header.js +19 -0
- package/dist/components/content-display/gallery/components/gallery-header.js.map +1 -0
- package/dist/components/content-display/gallery/components/item-display/gallery-item.d.ts +6 -0
- package/dist/components/content-display/gallery/components/item-display/gallery-item.js +59 -0
- package/dist/components/content-display/gallery/components/item-display/gallery-item.js.map +1 -0
- package/dist/components/content-display/gallery/components/item-display/gallery-items-display.d.ts +1 -0
- package/dist/components/content-display/gallery/components/item-display/gallery-items-display.js +23 -0
- package/dist/components/content-display/gallery/components/item-display/gallery-items-display.js.map +1 -0
- package/dist/components/content-display/gallery/components/item-track/item-track.d.ts +1 -0
- package/dist/components/content-display/gallery/components/item-track/item-track.js +21 -0
- package/dist/components/content-display/gallery/components/item-track/item-track.js.map +1 -0
- package/dist/components/content-display/gallery/components/item-track/track-item.d.ts +6 -0
- package/dist/components/content-display/gallery/components/item-track/track-item.js +60 -0
- package/dist/components/content-display/gallery/components/item-track/track-item.js.map +1 -0
- package/dist/components/content-display/gallery/gallery-context.d.ts +45 -0
- package/dist/components/content-display/gallery/gallery-context.js +5 -0
- package/dist/components/content-display/gallery/gallery-context.js.map +1 -0
- package/dist/components/content-display/gallery/gallery-display-constants.d.ts +9 -0
- package/dist/components/content-display/gallery/gallery-display-constants.js +15 -0
- package/dist/components/content-display/gallery/gallery-display-constants.js.map +1 -0
- package/dist/components/content-display/gallery/gallery.d.ts +18 -0
- package/dist/components/content-display/gallery/gallery.js +83 -0
- package/dist/components/content-display/gallery/gallery.js.map +1 -0
- package/dist/components/content-display/gallery/gallery.types.d.ts +47 -0
- package/dist/components/content-display/gallery/gallery.types.js +2 -0
- package/dist/components/content-display/gallery/gallery.types.js.map +1 -0
- package/dist/components/content-display/gallery/index.d.ts +2 -0
- package/dist/components/content-display/gallery/index.js +2 -0
- package/dist/components/content-display/gallery/index.js.map +1 -0
- package/dist/components/content-display/index.d.ts +4 -0
- package/dist/components/content-display/index.js +5 -0
- package/dist/components/content-display/index.js.map +1 -0
- package/dist/components/content-display/lightbox/components/lightbox-content.d.ts +1 -0
- package/dist/components/content-display/lightbox/components/lightbox-content.js +19 -0
- package/dist/components/content-display/lightbox/components/lightbox-content.js.map +1 -0
- package/dist/components/content-display/lightbox/components/lightbox-title.d.ts +1 -0
- package/dist/components/content-display/lightbox/components/lightbox-title.js +22 -0
- package/dist/components/content-display/lightbox/components/lightbox-title.js.map +1 -0
- package/dist/components/content-display/lightbox/index.d.ts +2 -0
- package/dist/components/content-display/lightbox/index.js +2 -0
- package/dist/components/content-display/lightbox/index.js.map +1 -0
- package/dist/components/content-display/lightbox/lightbox-context.d.ts +19 -0
- package/dist/components/content-display/lightbox/lightbox-context.js +3 -0
- package/dist/components/content-display/lightbox/lightbox-context.js.map +1 -0
- package/dist/components/content-display/lightbox/lightbox.d.ts +17 -0
- package/dist/components/content-display/lightbox/lightbox.js +46 -0
- package/dist/components/content-display/lightbox/lightbox.js.map +1 -0
- package/dist/components/content-display/lightbox/lightbox.types.d.ts +11 -0
- package/dist/components/content-display/lightbox/lightbox.types.js +2 -0
- package/dist/components/content-display/lightbox/lightbox.types.js.map +1 -0
- package/dist/components/{ui → content-display}/tab-view/components/tab-item-content.d.ts +2 -1
- package/dist/components/{ui → content-display}/tab-view/components/tab-item-content.js +2 -1
- package/dist/components/content-display/tab-view/components/tab-item-content.js.map +1 -0
- package/dist/components/{ui → content-display}/tab-view/components/tab-view-content.js +1 -0
- package/dist/components/content-display/tab-view/components/tab-view-content.js.map +1 -0
- package/dist/components/{ui → content-display}/tab-view/components/tab-view-controls.js +1 -0
- package/dist/components/content-display/tab-view/components/tab-view-controls.js.map +1 -0
- package/dist/components/content-display/tab-view/index.js.map +1 -0
- package/dist/components/content-display/tab-view/tab-view-context.d.ts +40 -0
- package/dist/components/content-display/tab-view/tab-view-context.js.map +1 -0
- package/dist/components/{ui → content-display}/tab-view/tab-view.d.ts +1 -2
- package/dist/components/{ui → content-display}/tab-view/tab-view.js +3 -4
- package/dist/components/content-display/tab-view/tab-view.js.map +1 -0
- package/dist/components/{ui → content-display}/tab-view/tab-view.types.d.ts +7 -11
- package/dist/components/content-display/tab-view/tab-view.types.js.map +1 -0
- package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js +1 -1
- package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js.map +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/layouts/column-layout/column-layout.types.d.ts +4 -2
- package/dist/components/layouts/column-layout/column-skeleton/column-skeleton.types.d.ts +3 -2
- package/dist/components/layouts/column-layout/index.d.ts +1 -1
- package/dist/components/layouts/column-layout/index.js.map +1 -1
- package/dist/components/media-display/image-panel/image-panel.js.map +1 -0
- package/dist/components/media-display/image-panel/image-panel.types.js.map +1 -0
- package/dist/components/media-display/image-panel/index.js.map +1 -0
- package/dist/components/media-display/index.js.map +1 -0
- package/dist/components/media-display/info-card/index.js.map +1 -0
- package/dist/components/media-display/info-card/info-card.js.map +1 -0
- package/dist/components/media-display/info-card/info-card.types.js.map +1 -0
- package/dist/components/media-display/media-card/index.js.map +1 -0
- package/dist/components/media-display/media-card/media-card.js.map +1 -0
- package/dist/components/media-display/media-card/media-card.types.js.map +1 -0
- package/dist/components/ui/card/card.js +2 -2
- package/dist/components/ui/card/card.js.map +1 -1
- package/dist/components/ui/index.d.ts +0 -1
- package/dist/components/ui/index.js +0 -1
- package/dist/components/ui/index.js.map +1 -1
- package/dist/components/ui/modal/components/modal-content.js +3 -8
- package/dist/components/ui/modal/components/modal-content.js.map +1 -1
- package/dist/components/ui/modal/modal-context.d.ts +13 -2
- package/dist/components/ui/modal/modal.d.ts +2 -2
- package/dist/components/ui/modal/modal.js +4 -22
- package/dist/components/ui/modal/modal.js.map +1 -1
- package/dist/components/ui/modal/modal.types.d.ts +5 -17
- package/dist/hooks/use-click-outside/use-click-outside.d.ts +9 -2
- package/dist/hooks/use-click-outside/use-click-outside.js +2 -2
- package/dist/hooks/use-click-outside/use-click-outside.js.map +1 -1
- package/dist/hooks/use-dismiss/use-dismiss.d.ts +12 -4
- package/dist/hooks/use-dismiss/use-dismiss.js +8 -8
- package/dist/hooks/use-dismiss/use-dismiss.js.map +1 -1
- package/dist/internal-components/index.d.ts +1 -0
- package/dist/internal-components/index.js +1 -0
- package/dist/internal-components/index.js.map +1 -1
- package/dist/internal-components/modal-primitive/index.d.ts +2 -0
- package/dist/internal-components/modal-primitive/index.js +2 -0
- package/dist/internal-components/modal-primitive/index.js.map +1 -0
- package/dist/internal-components/modal-primitive/modal-primitive.d.ts +2 -0
- package/dist/internal-components/modal-primitive/modal-primitive.js +34 -0
- package/dist/internal-components/modal-primitive/modal-primitive.js.map +1 -0
- package/dist/internal-components/modal-primitive/modal-primitive.types.d.ts +19 -0
- package/dist/internal-components/modal-primitive/modal-primitive.types.js +2 -0
- package/dist/internal-components/modal-primitive/modal-primitive.types.js.map +1 -0
- package/dist/styled-system/patterns/divider.d.ts +1 -1
- package/dist/styled-system/patterns/float.d.ts +1 -1
- package/dist/styled-system/patterns/spacer.js +6 -2
- package/dist/styled-system/styles.css +1 -1
- package/dist/styles/panda.css +1 -1
- package/dist/styles/theme.css +1 -1
- package/dist/theme/default-theme.js +1 -1
- package/dist/utils/theme-utilities/get-utility-size-value/get-utility-size-value.d.ts +1 -1
- package/package.json +8 -3
- package/dist/components/media/image-panel/image-panel.js.map +0 -1
- package/dist/components/media/image-panel/image-panel.types.js.map +0 -1
- package/dist/components/media/image-panel/index.js.map +0 -1
- package/dist/components/media/index.js.map +0 -1
- package/dist/components/media/info-card/index.js.map +0 -1
- package/dist/components/media/info-card/info-card.js.map +0 -1
- package/dist/components/media/info-card/info-card.types.js.map +0 -1
- package/dist/components/media/media-card/index.js.map +0 -1
- package/dist/components/media/media-card/media-card.js.map +0 -1
- package/dist/components/media/media-card/media-card.types.js.map +0 -1
- package/dist/components/ui/tab-view/components/tab-item-content.js.map +0 -1
- package/dist/components/ui/tab-view/components/tab-view-content.js.map +0 -1
- package/dist/components/ui/tab-view/components/tab-view-controls.js.map +0 -1
- package/dist/components/ui/tab-view/index.js.map +0 -1
- package/dist/components/ui/tab-view/tab-view-context.d.ts +0 -34
- package/dist/components/ui/tab-view/tab-view-context.js.map +0 -1
- package/dist/components/ui/tab-view/tab-view.js.map +0 -1
- package/dist/components/ui/tab-view/tab-view.types.js.map +0 -1
- /package/dist/components/{ui → content-display}/tab-view/components/tab-view-content.d.ts +0 -0
- /package/dist/components/{ui → content-display}/tab-view/components/tab-view-controls.d.ts +0 -0
- /package/dist/components/{ui → content-display}/tab-view/index.d.ts +0 -0
- /package/dist/components/{ui → content-display}/tab-view/index.js +0 -0
- /package/dist/components/{ui → content-display}/tab-view/tab-view-context.js +0 -0
- /package/dist/components/{ui → content-display}/tab-view/tab-view.types.js +0 -0
- /package/dist/components/{media → media-display}/image-panel/image-panel.d.ts +0 -0
- /package/dist/components/{media → media-display}/image-panel/image-panel.js +0 -0
- /package/dist/components/{media → media-display}/image-panel/image-panel.types.d.ts +0 -0
- /package/dist/components/{media → media-display}/image-panel/image-panel.types.js +0 -0
- /package/dist/components/{media → media-display}/image-panel/index.d.ts +0 -0
- /package/dist/components/{media → media-display}/image-panel/index.js +0 -0
- /package/dist/components/{media → media-display}/index.d.ts +0 -0
- /package/dist/components/{media → media-display}/index.js +0 -0
- /package/dist/components/{media → media-display}/info-card/index.d.ts +0 -0
- /package/dist/components/{media → media-display}/info-card/index.js +0 -0
- /package/dist/components/{media → media-display}/info-card/info-card.d.ts +0 -0
- /package/dist/components/{media → media-display}/info-card/info-card.js +0 -0
- /package/dist/components/{media → media-display}/info-card/info-card.types.d.ts +0 -0
- /package/dist/components/{media → media-display}/info-card/info-card.types.js +0 -0
- /package/dist/components/{media → media-display}/media-card/index.d.ts +0 -0
- /package/dist/components/{media → media-display}/media-card/index.js +0 -0
- /package/dist/components/{media → media-display}/media-card/media-card.d.ts +0 -0
- /package/dist/components/{media → media-display}/media-card/media-card.js +0 -0
- /package/dist/components/{media → media-display}/media-card/media-card.types.d.ts +0 -0
- /package/dist/components/{media → media-display}/media-card/media-card.types.js +0 -0
package/README.md
CHANGED
|
@@ -96,12 +96,16 @@ Component CSS is pre-generated using Panda CSS, so components render correctly s
|
|
|
96
96
|
|
|
97
97
|
### UI Elements
|
|
98
98
|
|
|
99
|
-
`Button` `Card` `Divider` `DotsLoader` `Icon` `IconButton` `Modal` `SkeletonLayoutLoader` `SkeletonLoader` `SpinLoader` `TabView` `Toggle`
|
|
99
|
+
`Button` `Card` `Carousel` `Divider` `DotsLoader` `Gallery` `Icon` `IconButton` `Modal` `SkeletonLayoutLoader` `SkeletonLoader` `SpinLoader` `TabView` `Toggle`
|
|
100
100
|
|
|
101
101
|
### Media Display
|
|
102
102
|
|
|
103
103
|
`ImagePanel` `InfoCard` `MediaCard`
|
|
104
104
|
|
|
105
|
+
### Content Display
|
|
106
|
+
|
|
107
|
+
`Lightbox`
|
|
108
|
+
|
|
105
109
|
### Typography Elements
|
|
106
110
|
|
|
107
111
|
`Title` `H1` `H2` `H3` `Text` `Subtitle` `List` `OrderedList` `PageHeader`
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CarouselEmblaContext } from './carousel.types';
|
|
2
|
+
export declare const CarouselProvider: {
|
|
3
|
+
({ initialValue, children, }: {
|
|
4
|
+
initialValue: {
|
|
5
|
+
title?: import("react").ReactNode;
|
|
6
|
+
mdCols: import("../..").MediumColumnOptions;
|
|
7
|
+
lgCols: import("../..").LargeColumnOptions;
|
|
8
|
+
items: Record<string, {
|
|
9
|
+
title: string;
|
|
10
|
+
content: import("react").ReactNode;
|
|
11
|
+
id: import("./carousel.types").CarouselItemId;
|
|
12
|
+
}>;
|
|
13
|
+
itemOrder: import("./carousel.types").CarouselItemId[];
|
|
14
|
+
controlsPosition: import("./carousel.types").CarouselControlsPosition;
|
|
15
|
+
ItemWrapper: import("react").ComponentType<any> | undefined;
|
|
16
|
+
};
|
|
17
|
+
children: import("react").ReactNode;
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
displayName: string;
|
|
20
|
+
}, useCarouselContext: () => {
|
|
21
|
+
value: {
|
|
22
|
+
title?: import("react").ReactNode;
|
|
23
|
+
mdCols: import("../..").MediumColumnOptions;
|
|
24
|
+
lgCols: import("../..").LargeColumnOptions;
|
|
25
|
+
items: Record<string, {
|
|
26
|
+
title: string;
|
|
27
|
+
content: import("react").ReactNode;
|
|
28
|
+
id: import("./carousel.types").CarouselItemId;
|
|
29
|
+
}>;
|
|
30
|
+
itemOrder: import("./carousel.types").CarouselItemId[];
|
|
31
|
+
controlsPosition: import("./carousel.types").CarouselControlsPosition;
|
|
32
|
+
ItemWrapper: import("react").ComponentType<any> | undefined;
|
|
33
|
+
};
|
|
34
|
+
setValue: import("react").Dispatch<import("react").SetStateAction<{
|
|
35
|
+
title?: import("react").ReactNode;
|
|
36
|
+
mdCols: import("../..").MediumColumnOptions;
|
|
37
|
+
lgCols: import("../..").LargeColumnOptions;
|
|
38
|
+
items: Record<string, {
|
|
39
|
+
title: string;
|
|
40
|
+
content: import("react").ReactNode;
|
|
41
|
+
id: import("./carousel.types").CarouselItemId;
|
|
42
|
+
}>;
|
|
43
|
+
itemOrder: import("./carousel.types").CarouselItemId[];
|
|
44
|
+
controlsPosition: import("./carousel.types").CarouselControlsPosition;
|
|
45
|
+
ItemWrapper: import("react").ComponentType<any> | undefined;
|
|
46
|
+
}>>;
|
|
47
|
+
};
|
|
48
|
+
export declare const CarouselEmblaProvider: import("react").Provider<CarouselEmblaContext | undefined>, useCarouselEmblaContext: () => CarouselEmblaContext;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { createStatefulComponentContext, createComponentContext } from '../../../utils';
|
|
3
|
+
export const [CarouselProvider, useCarouselContext] = createStatefulComponentContext('Carousel');
|
|
4
|
+
export const [CarouselEmblaProvider, useCarouselEmblaContext] = createComponentContext('CarouselEmbla');
|
|
5
|
+
//# sourceMappingURL=carousel-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel-context.js","sourceRoot":"","sources":["../../../../src/components/content-display/carousel/carousel-context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,8BAA8B,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGjF,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,GAClD,8BAA8B,CAAgB,UAAU,CAAC,CAAC;AAE3D,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,GAC5D,sBAAsB,CAAuB,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CarouselProps } from './carousel.types';
|
|
2
|
+
/**
|
|
3
|
+
* A scrollable carousel with optional navigation controls and responsive column configuration. Powered by [Embla Carousel](https://www.embla-carousel.com)
|
|
4
|
+
*
|
|
5
|
+
* Renders items in a single horizontally-scrollable track with forward/back controls.
|
|
6
|
+
* Column counts at `md` and `lg` breakpoints determine how many items are visible at once.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <Carousel
|
|
11
|
+
* title="Featured"
|
|
12
|
+
* items={[{ content: <Card /> }, { content: <Card /> }]}
|
|
13
|
+
* mdCols={2}
|
|
14
|
+
* lgCols={3}
|
|
15
|
+
* />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare const Carousel: ({ title, items: itemList, controlsPosition, mdCols, lgCols, itemWrapper, }: CarouselProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useState, useEffect, useCallback } from 'react';
|
|
4
|
+
import useEmblaCarousel from 'embla-carousel-react';
|
|
5
|
+
import { CarouselProvider, CarouselEmblaProvider } from './carousel-context';
|
|
6
|
+
import { CarouselContent } from './components/carousel-content';
|
|
7
|
+
/**
|
|
8
|
+
* A scrollable carousel with optional navigation controls and responsive column configuration. Powered by [Embla Carousel](https://www.embla-carousel.com)
|
|
9
|
+
*
|
|
10
|
+
* Renders items in a single horizontally-scrollable track with forward/back controls.
|
|
11
|
+
* Column counts at `md` and `lg` breakpoints determine how many items are visible at once.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* <Carousel
|
|
16
|
+
* title="Featured"
|
|
17
|
+
* items={[{ content: <Card /> }, { content: <Card /> }]}
|
|
18
|
+
* mdCols={2}
|
|
19
|
+
* lgCols={3}
|
|
20
|
+
* />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export const Carousel = ({ title, items: itemList, controlsPosition = 'above', mdCols, lgCols, itemWrapper, }) => {
|
|
24
|
+
// Embla Config
|
|
25
|
+
const [emblaRef, emblaApi] = useEmblaCarousel();
|
|
26
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
27
|
+
const [canScrollPrev, setCanScrollPrev] = useState(false);
|
|
28
|
+
const [canScrollNext, setCanScrollNext] = useState(false);
|
|
29
|
+
const onSelect = useCallback((api) => {
|
|
30
|
+
setSelectedIndex(api.selectedScrollSnap());
|
|
31
|
+
setCanScrollPrev(api.canScrollPrev());
|
|
32
|
+
setCanScrollNext(api.canScrollNext());
|
|
33
|
+
}, []);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (!emblaApi)
|
|
36
|
+
return;
|
|
37
|
+
onSelect(emblaApi); // initial state
|
|
38
|
+
emblaApi.on('select', onSelect).on('reInit', onSelect);
|
|
39
|
+
return () => {
|
|
40
|
+
emblaApi.off('select', onSelect).off('reInit', onSelect);
|
|
41
|
+
};
|
|
42
|
+
}, [emblaApi, onSelect]);
|
|
43
|
+
const normalizedItems = useMemo(() => itemList.map((item, index) => ({
|
|
44
|
+
...item,
|
|
45
|
+
id: String(index),
|
|
46
|
+
})), [itemList]);
|
|
47
|
+
const initialState = useMemo(() => {
|
|
48
|
+
const items = Object.fromEntries(normalizedItems.map((item) => [item.id, item]));
|
|
49
|
+
const itemOrder = normalizedItems.map((item) => item.id);
|
|
50
|
+
return {
|
|
51
|
+
title,
|
|
52
|
+
items,
|
|
53
|
+
itemOrder,
|
|
54
|
+
ItemWrapper: itemWrapper,
|
|
55
|
+
controlsPosition,
|
|
56
|
+
mdCols,
|
|
57
|
+
lgCols: lgCols ? lgCols : mdCols,
|
|
58
|
+
};
|
|
59
|
+
}, [title, normalizedItems, controlsPosition, mdCols, lgCols]);
|
|
60
|
+
const emblaValue = useMemo(() => ({
|
|
61
|
+
emblaRef,
|
|
62
|
+
emblaApi,
|
|
63
|
+
selectedIndex,
|
|
64
|
+
canScrollPrev,
|
|
65
|
+
canScrollNext,
|
|
66
|
+
}), [emblaRef, emblaApi, selectedIndex, canScrollPrev, canScrollNext]);
|
|
67
|
+
if (!itemList.length)
|
|
68
|
+
return null;
|
|
69
|
+
return (_jsx(CarouselProvider, { initialValue: initialState, children: _jsx(CarouselEmblaProvider, { value: emblaValue, children: _jsx(CarouselContent, {}) }) }));
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=carousel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../../../src/components/content-display/carousel/carousel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
import { Prettify } from '../../../types';
|
|
3
|
+
import { EmblaViewportRefType } from 'embla-carousel-react';
|
|
4
|
+
import { EmblaCarouselType } from 'embla-carousel';
|
|
5
|
+
import { LargeColumnOptions, MediumColumnOptions } from '../../../components';
|
|
6
|
+
export type CarouselControlsPosition = 'above' | 'around' | 'below' | 'none';
|
|
7
|
+
/** A single pane consumed and displayed by the `Carousel` component */
|
|
8
|
+
export type CarouselItem = {
|
|
9
|
+
/** Optional title rendered with content */
|
|
10
|
+
title: string;
|
|
11
|
+
/** Content rendered in the carousel */
|
|
12
|
+
content: ReactNode;
|
|
13
|
+
};
|
|
14
|
+
export type CarouselItemId = string;
|
|
15
|
+
type InternalCarouselItem = Prettify<CarouselItem & {
|
|
16
|
+
id: CarouselItemId;
|
|
17
|
+
}>;
|
|
18
|
+
export type CarouselProps = Prettify<{
|
|
19
|
+
/** Optional Title */
|
|
20
|
+
title?: string | ReactNode;
|
|
21
|
+
/** Items to render, in display order */
|
|
22
|
+
items: InternalCarouselItem[];
|
|
23
|
+
/** Location to Render Controls @default 'around' */
|
|
24
|
+
controlsPosition?: CarouselControlsPosition;
|
|
25
|
+
/** Optional Carousel Item Wrapper @default `Card` */
|
|
26
|
+
itemWrapper?: ComponentType<any>;
|
|
27
|
+
/** Number of Columns in Medium Viewport */
|
|
28
|
+
mdCols: MediumColumnOptions;
|
|
29
|
+
/** Number of Columns in Large Viewport */
|
|
30
|
+
lgCols?: LargeColumnOptions;
|
|
31
|
+
}>;
|
|
32
|
+
export type CarouselState = Prettify<Pick<CarouselProps, 'title' | 'mdCols'> & Required<Pick<CarouselProps, 'lgCols'>> & {
|
|
33
|
+
items: Record<CarouselItemId, InternalCarouselItem>;
|
|
34
|
+
itemOrder: CarouselItemId[];
|
|
35
|
+
controlsPosition: CarouselControlsPosition;
|
|
36
|
+
ItemWrapper: CarouselProps['itemWrapper'];
|
|
37
|
+
}>;
|
|
38
|
+
/** Live embla values, bridged out of embla's mutable api via its event loop.
|
|
39
|
+
* Separate from CarouselState because these change externally, not via dispatch. */
|
|
40
|
+
export type CarouselEmblaContext = {
|
|
41
|
+
emblaRef: EmblaViewportRefType;
|
|
42
|
+
emblaApi: EmblaCarouselType | undefined;
|
|
43
|
+
selectedIndex: number;
|
|
44
|
+
canScrollPrev: boolean;
|
|
45
|
+
canScrollNext: boolean;
|
|
46
|
+
};
|
|
47
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel.types.js","sourceRoot":"","sources":["../../../../src/components/content-display/carousel/carousel.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CarouselContent: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { css } from '../../../../styled-system/css';
|
|
4
|
+
import { Container } from '../../../../components/layouts';
|
|
5
|
+
import { useCarouselContext } from '../carousel-context';
|
|
6
|
+
import { CarouselHeader } from './carousel-header';
|
|
7
|
+
import { CarouselControls, NextButton, PreviousButton } from './carousel-controls';
|
|
8
|
+
import { CarouselItemsDisplay } from './carousel-items-display';
|
|
9
|
+
const styles = {
|
|
10
|
+
belowControls: css({
|
|
11
|
+
width: '50px',
|
|
12
|
+
marginX: 'auto',
|
|
13
|
+
marginTop: '3',
|
|
14
|
+
}),
|
|
15
|
+
aroundWrapper: css({
|
|
16
|
+
display: 'flex',
|
|
17
|
+
flexDirection: 'row',
|
|
18
|
+
gap: '1',
|
|
19
|
+
}),
|
|
20
|
+
buttonWrapper: css({
|
|
21
|
+
display: 'flex',
|
|
22
|
+
alignItems: 'center',
|
|
23
|
+
justifyContent: 'center',
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
26
|
+
export const CarouselContent = () => {
|
|
27
|
+
const { value: { controlsPosition }, } = useCarouselContext();
|
|
28
|
+
if (controlsPosition === 'around') {
|
|
29
|
+
return (_jsxs(Container, { children: [_jsx(CarouselHeader, {}), _jsxs("div", { className: styles.aroundWrapper, children: [_jsx("div", { className: styles.buttonWrapper, children: _jsx(PreviousButton, {}) }), _jsx(CarouselItemsDisplay, {}), _jsx("div", { className: styles.buttonWrapper, children: _jsx(NextButton, {}) })] })] }));
|
|
30
|
+
}
|
|
31
|
+
return (_jsxs(Container, { children: [_jsx(CarouselHeader, {}), _jsx(CarouselItemsDisplay, {}), controlsPosition === 'below' && (_jsx("div", { className: styles.belowControls, children: _jsx(CarouselControls, {}) }))] }));
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=carousel-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel-content.js","sourceRoot":"","sources":["../../../../../src/components/content-display/carousel/components/carousel-content.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,GAAG;IACd,aAAa,EAAE,GAAG,CAAC;QAClB,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM;QACf,SAAS,EAAE,GAAG;KACd,CAAC;IACF,aAAa,EAAE,GAAG,CAAC;QAClB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,GAAG,EAAE,GAAG;KACR,CAAC;IACF,aAAa,EAAE,GAAG,CAAC;QAClB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACxB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IACnC,MAAM,EACL,KAAK,EAAE,EAAE,gBAAgB,EAAE,GAC3B,GAAG,kBAAkB,EAAE,CAAC;IAEzB,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,CACN,MAAC,SAAS,eACT,KAAC,cAAc,KAAG,EAClB,eAAK,SAAS,EAAE,MAAM,CAAC,aAAa,aACnC,cAAK,SAAS,EAAE,MAAM,CAAC,aAAa,YACnC,KAAC,cAAc,KAAG,GACb,EACN,KAAC,oBAAoB,KAAG,EACxB,cAAK,SAAS,EAAE,MAAM,CAAC,aAAa,YACnC,KAAC,UAAU,KAAG,GACT,IACD,IACK,CACZ,CAAC;IACH,CAAC;IAED,OAAO,CACN,MAAC,SAAS,eACT,KAAC,cAAc,KAAG,EAClB,KAAC,oBAAoB,KAAG,EACvB,gBAAgB,KAAK,OAAO,IAAI,CAChC,cAAK,SAAS,EAAE,MAAM,CAAC,aAAa,YACnC,KAAC,gBAAgB,KAAG,GACf,CACN,IACU,CACZ,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { css } from '../../../../styled-system/css';
|
|
4
|
+
import { IconButton } from '../../../../components/ui';
|
|
5
|
+
import { useCarouselEmblaContext } from '../carousel-context';
|
|
6
|
+
const styles = {
|
|
7
|
+
container: css({
|
|
8
|
+
display: 'flex',
|
|
9
|
+
flexDirection: 'row',
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
gap: '1',
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
export const PreviousButton = () => {
|
|
15
|
+
const { emblaApi, canScrollPrev } = useCarouselEmblaContext();
|
|
16
|
+
const goToPrev = () => emblaApi?.scrollPrev();
|
|
17
|
+
return (_jsx(IconButton, { color: "neutral", name: "CaretLeft", size: "sm", onClick: goToPrev, disabled: !canScrollPrev }));
|
|
18
|
+
};
|
|
19
|
+
export const NextButton = () => {
|
|
20
|
+
const { emblaApi, canScrollPrev, canScrollNext } = useCarouselEmblaContext();
|
|
21
|
+
const goToNext = () => emblaApi?.scrollNext();
|
|
22
|
+
return (_jsx(IconButton, { color: "neutral", name: "CaretRight", size: "sm", onClick: goToNext, disabled: !canScrollNext }));
|
|
23
|
+
};
|
|
24
|
+
export const CarouselControls = () => {
|
|
25
|
+
return (_jsxs("div", { className: styles.container, children: [_jsx(PreviousButton, {}), _jsx(NextButton, {})] }));
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=carousel-controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel-controls.js","sourceRoot":"","sources":["../../../../../src/components/content-display/carousel/components/carousel-controls.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,MAAM,GAAG;IACd,SAAS,EAAE,GAAG,CAAC;QACd,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,GAAG;KACR,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAClC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAE9D,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;IAE9C,OAAO,CACN,KAAC,UAAU,IACV,KAAK,EAAC,SAAS,EACf,IAAI,EAAC,WAAW,EAChB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,aAAa,GACvB,CACF,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC9B,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAE7E,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;IAE9C,OAAO,CACN,KAAC,UAAU,IACV,KAAK,EAAC,SAAS,EACf,IAAI,EAAC,YAAY,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,aAAa,GACvB,CACF,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACpC,OAAO,CACN,eAAK,SAAS,EAAE,MAAM,CAAC,SAAS,aAC/B,KAAC,cAAc,KAAG,EAClB,KAAC,UAAU,KAAG,IACT,CACN,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CarouselHeader: () => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCarouselContext } from '../carousel-context';
|
|
4
|
+
import { H2 } from '../../../../components/typography';
|
|
5
|
+
import { css } from '../../../../styled-system/css';
|
|
6
|
+
import { CarouselControls } from './carousel-controls';
|
|
7
|
+
const styles = {
|
|
8
|
+
titleBlock: css({
|
|
9
|
+
display: 'flex',
|
|
10
|
+
flexDirection: 'row',
|
|
11
|
+
justifyContent: 'space-between',
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
marginBottom: '4',
|
|
14
|
+
}),
|
|
15
|
+
};
|
|
16
|
+
export const CarouselHeader = () => {
|
|
17
|
+
const { value: { controlsPosition, title }, } = useCarouselContext();
|
|
18
|
+
if (!title && controlsPosition !== 'above') {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const titleDisplay = typeof title === 'string' ? _jsx(H2, { inline: true, children: title }) : title;
|
|
22
|
+
return (_jsxs("div", { className: styles.titleBlock, children: [title && titleDisplay, controlsPosition === 'above' && _jsx(CarouselControls, {})] }));
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=carousel-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel-header.js","sourceRoot":"","sources":["../../../../../src/components/content-display/carousel/components/carousel-header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,GAAG;IACd,UAAU,EAAE,GAAG,CAAC;QACf,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,GAAG;KACjB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAClC,MAAM,EACL,KAAK,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAClC,GAAG,kBAAkB,EAAE,CAAC;IAEzB,IAAI,CAAC,KAAK,IAAI,gBAAgB,KAAK,OAAO,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,YAAY,GAAc,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,EAAE,IAAC,MAAM,kBAAE,KAAK,GAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAE5F,OAAO,CACN,eAAK,SAAS,EAAE,MAAM,CAAC,UAAU,aAC/B,KAAK,IAAI,YAAY,EACrB,gBAAgB,KAAK,OAAO,IAAI,KAAC,gBAAgB,KAAG,IAChD,CACN,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cva } from '../../../../styled-system/css';
|
|
4
|
+
import { Card } from '../../../../components/ui';
|
|
5
|
+
import { useCarouselContext } from '../carousel-context';
|
|
6
|
+
const styles = {
|
|
7
|
+
wrapper: cva({
|
|
8
|
+
base: {
|
|
9
|
+
flexGrow: 0,
|
|
10
|
+
flexShrink: 0,
|
|
11
|
+
minWidth: '0',
|
|
12
|
+
paddingLeft: { base: '3', md: '4' },
|
|
13
|
+
},
|
|
14
|
+
variants: {
|
|
15
|
+
mdCols: {
|
|
16
|
+
1: { flexBasis: { base: '100%', md: '100%' } },
|
|
17
|
+
2: { flexBasis: { base: '100%', md: '50%' } },
|
|
18
|
+
3: { flexBasis: { base: '100%', md: '33.333%' } },
|
|
19
|
+
},
|
|
20
|
+
lgCols: {
|
|
21
|
+
1: { flexBasis: { lg: '100%' } },
|
|
22
|
+
2: { flexBasis: { lg: '50%' } },
|
|
23
|
+
3: { flexBasis: { lg: '33.333%' } },
|
|
24
|
+
4: { flexBasis: { lg: '25%' } },
|
|
25
|
+
5: { flexBasis: { lg: '20%' } },
|
|
26
|
+
6: { flexBasis: { lg: '16.666%' } },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
mdCols: 3,
|
|
31
|
+
lgCols: 3,
|
|
32
|
+
},
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
|
+
export const CarouselItem = ({ itemId }) => {
|
|
36
|
+
const { value: { items, ItemWrapper, mdCols, lgCols }, } = useCarouselContext();
|
|
37
|
+
const item = items[itemId];
|
|
38
|
+
if (ItemWrapper) {
|
|
39
|
+
return (_jsx("div", { className: styles.wrapper({ mdCols, lgCols }), children: _jsx(ItemWrapper, { children: item.content }) }));
|
|
40
|
+
}
|
|
41
|
+
return (_jsx("div", { className: styles.wrapper({ mdCols, lgCols }), children: _jsx(Card, { fullWidth: true, title: { text: item.title }, size: "md", children: item.content }) }));
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=carousel-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel-item.js","sourceRoot":"","sources":["../../../../../src/components/content-display/carousel/components/carousel-item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAO,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAOzD,MAAM,MAAM,GAAG;IACd,OAAO,EAAE,GAAG,CAAC;QACZ,IAAI,EAAE;YACL,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,GAAG;YACb,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;SACnC;QACD,QAAQ,EAAE;YACT,MAAM,EAAE;gBACP,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;gBAC9C,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;gBAC7C,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;aACjD;YACD,MAAM,EAAE;gBACP,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;gBAChC,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;gBAC/B,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;gBACnC,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;gBAC/B,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE;gBAC/B,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;aACnC;SACD;QACD,eAAe,EAAE;YAChB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;SACT;KACD,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,MAAM,EAAqB,EAAE,EAAE;IAC7D,MAAM,EACL,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAC7C,GAAG,kBAAkB,EAAE,CAAC;IAEzB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,CACN,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,YACjD,KAAC,WAAW,cAAE,IAAI,CAAC,OAAO,GAAe,GACpC,CACN,CAAC;IACH,CAAC;IAED,OAAO,CACN,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,YACjD,KAAC,IAAI,IAAC,SAAS,QAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAC,IAAI,YACpD,IAAI,CAAC,OAAO,GACP,GACF,CACN,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CarouselItemsDisplay: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { css } from '../../../../styled-system/css';
|
|
4
|
+
import { useCarouselContext, useCarouselEmblaContext } from '../carousel-context';
|
|
5
|
+
import { CarouselItem } from './carousel-item';
|
|
6
|
+
const styles = {
|
|
7
|
+
viewport: css({ width: '100%', overflow: 'hidden' }),
|
|
8
|
+
track: css({
|
|
9
|
+
display: 'flex',
|
|
10
|
+
marginLeft: { base: '-3', md: '-4' },
|
|
11
|
+
touchAction: 'pan-y pinch-zoom',
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
export const CarouselItemsDisplay = () => {
|
|
15
|
+
const { value: { itemOrder }, } = useCarouselContext();
|
|
16
|
+
const { emblaRef } = useCarouselEmblaContext();
|
|
17
|
+
return (_jsx("div", { ref: emblaRef, className: styles.viewport, children: _jsx("div", { className: styles.track, children: itemOrder.map((itemId) => (_jsx(CarouselItem, { itemId: itemId }, itemId))) }) }));
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=carousel-items-display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"carousel-items-display.js","sourceRoot":"","sources":["../../../../../src/components/content-display/carousel/components/carousel-items-display.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,GAAG;IACd,QAAQ,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACpD,KAAK,EAAE,GAAG,CAAC;QACV,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE;QACpC,WAAW,EAAE,kBAAkB;KAC/B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACxC,MAAM,EACL,KAAK,EAAE,EAAE,SAAS,EAAE,GACpB,GAAG,kBAAkB,EAAE,CAAC;IAEzB,MAAM,EAAE,QAAQ,EAAE,GAAG,uBAAuB,EAAE,CAAC;IAE/C,OAAO,CACN,cAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,YAC7C,cAAK,SAAS,EAAE,MAAM,CAAC,KAAK,YAC1B,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC1B,KAAC,YAAY,IAAc,MAAM,EAAE,MAAM,IAAtB,MAAM,CAAoB,CAC7C,CAAC,GACG,GACD,CACN,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/content-display/carousel/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GalleryContent: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { css, cva } from '../../../../styled-system/css';
|
|
4
|
+
import { H2 } from '../../../../components/typography';
|
|
5
|
+
import { useGalleryContext } from '../gallery-context';
|
|
6
|
+
import { GALLERY_DISPLAY_CONSTANT_NAMES, GALLERY_DISPLAY_CONSTANTS, } from '../gallery-display-constants';
|
|
7
|
+
import { GalleryItemsDisplay } from './item-display/gallery-items-display';
|
|
8
|
+
import { ItemTrack } from './item-track/item-track';
|
|
9
|
+
const styles = {
|
|
10
|
+
container: cva({
|
|
11
|
+
base: {
|
|
12
|
+
display: 'flex',
|
|
13
|
+
flexDirection: 'column',
|
|
14
|
+
width: '100%',
|
|
15
|
+
},
|
|
16
|
+
variants: {
|
|
17
|
+
size: {
|
|
18
|
+
sm: { height: '300px' },
|
|
19
|
+
md: { height: '500px' },
|
|
20
|
+
lg: { height: '700px' },
|
|
21
|
+
fill: { height: '100%' },
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
}),
|
|
25
|
+
internalContent: css({
|
|
26
|
+
display: 'flex',
|
|
27
|
+
flexDirection: 'column',
|
|
28
|
+
width: '100%',
|
|
29
|
+
flex: '1',
|
|
30
|
+
gap: '3',
|
|
31
|
+
minHeight: 0,
|
|
32
|
+
}),
|
|
33
|
+
displayContent: css({
|
|
34
|
+
width: '100%',
|
|
35
|
+
flex: '1',
|
|
36
|
+
minHeight: 0,
|
|
37
|
+
overflow: 'hidden',
|
|
38
|
+
}),
|
|
39
|
+
trackContent: cva({
|
|
40
|
+
base: {
|
|
41
|
+
width: '100%',
|
|
42
|
+
},
|
|
43
|
+
variants: {
|
|
44
|
+
size: {
|
|
45
|
+
sm: {
|
|
46
|
+
height: '60px',
|
|
47
|
+
},
|
|
48
|
+
md: {
|
|
49
|
+
height: '75px',
|
|
50
|
+
},
|
|
51
|
+
lg: {
|
|
52
|
+
height: '100px',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
}),
|
|
57
|
+
};
|
|
58
|
+
export const GalleryContent = () => {
|
|
59
|
+
const { value: { size, title }, } = useGalleryContext();
|
|
60
|
+
const titleDisplay = typeof title === 'string' ? _jsx(H2, { children: title }) : title;
|
|
61
|
+
const cssVariables = Object.fromEntries(Object.entries(GALLERY_DISPLAY_CONSTANT_NAMES).map(([key, cssVar]) => [cssVar, GALLERY_DISPLAY_CONSTANTS[key]]));
|
|
62
|
+
return (_jsxs("div", { className: styles.container({ size }), style: cssVariables, children: [title && titleDisplay, _jsxs("div", { className: styles.internalContent, children: [_jsx("div", { className: styles.displayContent, children: _jsx(GalleryItemsDisplay, {}) }), _jsx("div", { className: styles.trackContent({ size: size === 'fill' ? 'lg' : size }), children: _jsx(ItemTrack, {}) })] })] }));
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=gallery-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gallery-content.js","sourceRoot":"","sources":["../../../../../src/components/content-display/gallery/components/gallery-content.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAEN,8BAA8B,EAC9B,yBAAyB,GACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,MAAM,GAAG;IACd,SAAS,EAAE,GAAG,CAAC;QACd,IAAI,EAAE;YACL,OAAO,EAAE,MAAM;YACf,aAAa,EAAE,QAAQ;YACvB,KAAK,EAAE,MAAM;SACb;QACD,QAAQ,EAAE;YACT,IAAI,EAAE;gBACL,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBACvB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBACvB,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;gBACvB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;aACxB;SACD;KACD,CAAC;IACF,eAAe,EAAE,GAAG,CAAC;QACpB,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,QAAQ;QACvB,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,GAAG;QACT,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,CAAC;KACZ,CAAC;IACF,cAAc,EAAE,GAAG,CAAC;QACnB,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,QAAQ;KAClB,CAAC;IACF,YAAY,EAAE,GAAG,CAAC;QACjB,IAAI,EAAE;YACL,KAAK,EAAE,MAAM;SACb;QACD,QAAQ,EAAE;YACT,IAAI,EAAE;gBACL,EAAE,EAAE;oBACH,MAAM,EAAE,MAAM;iBACd;gBACD,EAAE,EAAE;oBACH,MAAM,EAAE,MAAM;iBACd;gBACD,EAAE,EAAE;oBACH,MAAM,EAAE,OAAO;iBACf;aACD;SACD;KACD,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAClC,MAAM,EACL,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GACtB,GAAG,iBAAiB,EAAE,CAAC;IAExB,MAAM,YAAY,GAAc,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,EAAE,cAAE,KAAK,GAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAErF,MAAM,YAAY,GAA2B,MAAM,CAAC,WAAW,CAC7D,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAsC,CAAC,GAAG,CACvF,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAC3D,CACD,CAAC;IAEF,OAAO,CACN,eAAK,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,aAC7D,KAAK,IAAI,YAAY,EACtB,eAAK,SAAS,EAAE,MAAM,CAAC,eAAe,aACrC,cAAK,SAAS,EAAE,MAAM,CAAC,cAAc,YACpC,KAAC,mBAAmB,KAAG,GAClB,EACN,cAAK,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,YAC3E,KAAC,SAAS,KAAG,GACR,IACD,IACD,CACN,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GalleryHeader: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { css } from '../../../../styled-system/css';
|
|
4
|
+
import { useGalleryContext } from '../gallery-context';
|
|
5
|
+
import { H2 } from '../../../../components/typography';
|
|
6
|
+
const styles = {
|
|
7
|
+
container: css({
|
|
8
|
+
display: 'flex',
|
|
9
|
+
width: '100%',
|
|
10
|
+
flexDirection: 'row',
|
|
11
|
+
justifyContent: 'space-between',
|
|
12
|
+
}),
|
|
13
|
+
};
|
|
14
|
+
export const GalleryHeader = () => {
|
|
15
|
+
const { value: { title }, } = useGalleryContext();
|
|
16
|
+
const titleDisplay = typeof title === 'string' ? _jsx(H2, { inline: true, children: title }) : title;
|
|
17
|
+
return _jsx("div", { className: styles.container, children: title && titleDisplay });
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=gallery-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gallery-header.js","sourceRoot":"","sources":["../../../../../src/components/content-display/gallery/components/gallery-header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,yBAAyB,CAAC;AAE7C,MAAM,MAAM,GAAG;IACd,SAAS,EAAE,GAAG,CAAC;QACd,OAAO,EAAE,MAAM;QACf,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;KAC/B,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IACjC,MAAM,EACL,KAAK,EAAE,EAAE,KAAK,EAAE,GAChB,GAAG,iBAAiB,EAAE,CAAC;IAExB,MAAM,YAAY,GAAc,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,EAAE,IAAC,MAAM,kBAAE,KAAK,GAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAE5F,OAAO,cAAK,SAAS,EAAE,MAAM,CAAC,SAAS,YAAG,KAAK,IAAI,YAAY,GAAO,CAAC;AACxE,CAAC,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { css, cva } from '../../../../../styled-system/css';
|
|
4
|
+
import { useGalleryContext } from '../../gallery-context';
|
|
5
|
+
const styles = {
|
|
6
|
+
container: css({
|
|
7
|
+
borderColor: 'transparent',
|
|
8
|
+
borderWidth: 'lg',
|
|
9
|
+
borderStyle: 'solid',
|
|
10
|
+
transform: 'translate3d(0, 0, 0)',
|
|
11
|
+
flexGrow: 0,
|
|
12
|
+
flexShrink: 0,
|
|
13
|
+
flexBasis: 'var(--thread-gallery-display-item-width)', // Tracks with GALLERY_DISPLAY_CONSTANT_NAMES
|
|
14
|
+
minWidth: 0,
|
|
15
|
+
paddingLeft: 'var(--thread-gallery-display-item-spacing)', // Tracks with GALLERY_DISPLAY_CONSTANT_NAMES
|
|
16
|
+
}),
|
|
17
|
+
content: cva({
|
|
18
|
+
base: {
|
|
19
|
+
width: '100%',
|
|
20
|
+
height: 'var(--thread-gallery-display-item-height)', // Tracks with GALLERY_DISPLAY_CONSTANT_NAMES
|
|
21
|
+
display: 'flex',
|
|
22
|
+
alignItems: 'center',
|
|
23
|
+
justifyContent: 'center',
|
|
24
|
+
userSelect: 'none',
|
|
25
|
+
overflow: 'hidden',
|
|
26
|
+
'& img': {
|
|
27
|
+
maxWidth: '100%',
|
|
28
|
+
maxHeight: '100%',
|
|
29
|
+
width: 'auto',
|
|
30
|
+
height: 'auto',
|
|
31
|
+
objectFit: 'contain',
|
|
32
|
+
borderRadius: 'lg',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
variants: {
|
|
36
|
+
appearance: {
|
|
37
|
+
framed: {
|
|
38
|
+
backgroundColor: 'elevated',
|
|
39
|
+
borderRadius: 'lg',
|
|
40
|
+
borderWidth: 'md',
|
|
41
|
+
borderColor: 'structure.subtle',
|
|
42
|
+
},
|
|
43
|
+
bare: {},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
defaultVariants: {
|
|
47
|
+
appearance: 'framed',
|
|
48
|
+
},
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
export const GalleryItem = ({ itemId }) => {
|
|
52
|
+
const { value: { items, ItemWrapper, appearance }, } = useGalleryContext();
|
|
53
|
+
const item = items[itemId];
|
|
54
|
+
if (ItemWrapper) {
|
|
55
|
+
return (_jsx("div", { className: styles.container, children: _jsx(ItemWrapper, { children: item.content }) }));
|
|
56
|
+
}
|
|
57
|
+
return (_jsx("div", { className: styles.container, children: _jsx("div", { className: styles.content({ appearance }), children: item.content }) }));
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=gallery-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gallery-item.js","sourceRoot":"","sources":["../../../../../../src/components/content-display/gallery/components/item-display/gallery-item.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO1D,MAAM,MAAM,GAAG;IACd,SAAS,EAAE,GAAG,CAAC;QACd,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,IAAI;QACjB,WAAW,EAAE,OAAO;QACpB,SAAS,EAAE,sBAAsB;QACjC,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,0CAA0C,EAAE,6CAA6C;QACpG,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,4CAA4C,EAAE,6CAA6C;KACxG,CAAC;IACF,OAAO,EAAE,GAAG,CAAC;QACZ,IAAI,EAAE;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,2CAA2C,EAAE,6CAA6C;YAClG,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;YACxB,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE;gBACR,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,MAAM;gBACjB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,SAAS;gBACpB,YAAY,EAAE,IAAI;aAClB;SACD;QACD,QAAQ,EAAE;YACT,UAAU,EAAE;gBACX,MAAM,EAAE;oBACP,eAAe,EAAE,UAAU;oBAC3B,YAAY,EAAE,IAAI;oBAClB,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,kBAAkB;iBAC/B;gBACD,IAAI,EAAE,EAAE;aACR;SACD;QACD,eAAe,EAAE;YAChB,UAAU,EAAE,QAAQ;SACpB;KACD,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAE,MAAM,EAAoB,EAAE,EAAE;IAC3D,MAAM,EACL,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,GACzC,GAAG,iBAAiB,EAAE,CAAC;IAExB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,WAAW,EAAE,CAAC;QACjB,OAAO,CACN,cAAK,SAAS,EAAE,MAAM,CAAC,SAAS,YAC/B,KAAC,WAAW,cAAE,IAAI,CAAC,OAAO,GAAe,GACpC,CACN,CAAC;IACH,CAAC;IAED,OAAO,CACN,cAAK,SAAS,EAAE,MAAM,CAAC,SAAS,YAC/B,cAAK,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,YAAG,IAAI,CAAC,OAAO,GAAO,GAC/D,CACN,CAAC;AACH,CAAC,CAAC"}
|
package/dist/components/content-display/gallery/components/item-display/gallery-items-display.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GalleryItemsDisplay: () => import("react/jsx-runtime").JSX.Element;
|