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.
Files changed (199) hide show
  1. package/README.md +5 -1
  2. package/dist/components/content-display/carousel/carousel-context.d.ts +48 -0
  3. package/dist/components/content-display/carousel/carousel-context.js +5 -0
  4. package/dist/components/content-display/carousel/carousel-context.js.map +1 -0
  5. package/dist/components/content-display/carousel/carousel.d.ts +18 -0
  6. package/dist/components/content-display/carousel/carousel.js +71 -0
  7. package/dist/components/content-display/carousel/carousel.js.map +1 -0
  8. package/dist/components/content-display/carousel/carousel.types.d.ts +47 -0
  9. package/dist/components/content-display/carousel/carousel.types.js +2 -0
  10. package/dist/components/content-display/carousel/carousel.types.js.map +1 -0
  11. package/dist/components/content-display/carousel/components/carousel-content.d.ts +1 -0
  12. package/dist/components/content-display/carousel/components/carousel-content.js +33 -0
  13. package/dist/components/content-display/carousel/components/carousel-content.js.map +1 -0
  14. package/dist/components/content-display/carousel/components/carousel-controls.d.ts +3 -0
  15. package/dist/components/content-display/carousel/components/carousel-controls.js +27 -0
  16. package/dist/components/content-display/carousel/components/carousel-controls.js.map +1 -0
  17. package/dist/components/content-display/carousel/components/carousel-header.d.ts +1 -0
  18. package/dist/components/content-display/carousel/components/carousel-header.js +24 -0
  19. package/dist/components/content-display/carousel/components/carousel-header.js.map +1 -0
  20. package/dist/components/content-display/carousel/components/carousel-item.d.ts +6 -0
  21. package/dist/components/content-display/carousel/components/carousel-item.js +43 -0
  22. package/dist/components/content-display/carousel/components/carousel-item.js.map +1 -0
  23. package/dist/components/content-display/carousel/components/carousel-items-display.d.ts +1 -0
  24. package/dist/components/content-display/carousel/components/carousel-items-display.js +19 -0
  25. package/dist/components/content-display/carousel/components/carousel-items-display.js.map +1 -0
  26. package/dist/components/content-display/carousel/index.d.ts +2 -0
  27. package/dist/components/content-display/carousel/index.js +2 -0
  28. package/dist/components/content-display/carousel/index.js.map +1 -0
  29. package/dist/components/content-display/gallery/components/gallery-content.d.ts +1 -0
  30. package/dist/components/content-display/gallery/components/gallery-content.js +64 -0
  31. package/dist/components/content-display/gallery/components/gallery-content.js.map +1 -0
  32. package/dist/components/content-display/gallery/components/gallery-header.d.ts +1 -0
  33. package/dist/components/content-display/gallery/components/gallery-header.js +19 -0
  34. package/dist/components/content-display/gallery/components/gallery-header.js.map +1 -0
  35. package/dist/components/content-display/gallery/components/item-display/gallery-item.d.ts +6 -0
  36. package/dist/components/content-display/gallery/components/item-display/gallery-item.js +59 -0
  37. package/dist/components/content-display/gallery/components/item-display/gallery-item.js.map +1 -0
  38. package/dist/components/content-display/gallery/components/item-display/gallery-items-display.d.ts +1 -0
  39. package/dist/components/content-display/gallery/components/item-display/gallery-items-display.js +23 -0
  40. package/dist/components/content-display/gallery/components/item-display/gallery-items-display.js.map +1 -0
  41. package/dist/components/content-display/gallery/components/item-track/item-track.d.ts +1 -0
  42. package/dist/components/content-display/gallery/components/item-track/item-track.js +21 -0
  43. package/dist/components/content-display/gallery/components/item-track/item-track.js.map +1 -0
  44. package/dist/components/content-display/gallery/components/item-track/track-item.d.ts +6 -0
  45. package/dist/components/content-display/gallery/components/item-track/track-item.js +60 -0
  46. package/dist/components/content-display/gallery/components/item-track/track-item.js.map +1 -0
  47. package/dist/components/content-display/gallery/gallery-context.d.ts +45 -0
  48. package/dist/components/content-display/gallery/gallery-context.js +5 -0
  49. package/dist/components/content-display/gallery/gallery-context.js.map +1 -0
  50. package/dist/components/content-display/gallery/gallery-display-constants.d.ts +9 -0
  51. package/dist/components/content-display/gallery/gallery-display-constants.js +15 -0
  52. package/dist/components/content-display/gallery/gallery-display-constants.js.map +1 -0
  53. package/dist/components/content-display/gallery/gallery.d.ts +18 -0
  54. package/dist/components/content-display/gallery/gallery.js +83 -0
  55. package/dist/components/content-display/gallery/gallery.js.map +1 -0
  56. package/dist/components/content-display/gallery/gallery.types.d.ts +47 -0
  57. package/dist/components/content-display/gallery/gallery.types.js +2 -0
  58. package/dist/components/content-display/gallery/gallery.types.js.map +1 -0
  59. package/dist/components/content-display/gallery/index.d.ts +2 -0
  60. package/dist/components/content-display/gallery/index.js +2 -0
  61. package/dist/components/content-display/gallery/index.js.map +1 -0
  62. package/dist/components/content-display/index.d.ts +4 -0
  63. package/dist/components/content-display/index.js +5 -0
  64. package/dist/components/content-display/index.js.map +1 -0
  65. package/dist/components/content-display/lightbox/components/lightbox-content.d.ts +1 -0
  66. package/dist/components/content-display/lightbox/components/lightbox-content.js +19 -0
  67. package/dist/components/content-display/lightbox/components/lightbox-content.js.map +1 -0
  68. package/dist/components/content-display/lightbox/components/lightbox-title.d.ts +1 -0
  69. package/dist/components/content-display/lightbox/components/lightbox-title.js +22 -0
  70. package/dist/components/content-display/lightbox/components/lightbox-title.js.map +1 -0
  71. package/dist/components/content-display/lightbox/index.d.ts +2 -0
  72. package/dist/components/content-display/lightbox/index.js +2 -0
  73. package/dist/components/content-display/lightbox/index.js.map +1 -0
  74. package/dist/components/content-display/lightbox/lightbox-context.d.ts +19 -0
  75. package/dist/components/content-display/lightbox/lightbox-context.js +3 -0
  76. package/dist/components/content-display/lightbox/lightbox-context.js.map +1 -0
  77. package/dist/components/content-display/lightbox/lightbox.d.ts +17 -0
  78. package/dist/components/content-display/lightbox/lightbox.js +46 -0
  79. package/dist/components/content-display/lightbox/lightbox.js.map +1 -0
  80. package/dist/components/content-display/lightbox/lightbox.types.d.ts +11 -0
  81. package/dist/components/content-display/lightbox/lightbox.types.js +2 -0
  82. package/dist/components/content-display/lightbox/lightbox.types.js.map +1 -0
  83. package/dist/components/{ui → content-display}/tab-view/components/tab-item-content.d.ts +2 -1
  84. package/dist/components/{ui → content-display}/tab-view/components/tab-item-content.js +2 -1
  85. package/dist/components/content-display/tab-view/components/tab-item-content.js.map +1 -0
  86. package/dist/components/{ui → content-display}/tab-view/components/tab-view-content.js +1 -0
  87. package/dist/components/content-display/tab-view/components/tab-view-content.js.map +1 -0
  88. package/dist/components/{ui → content-display}/tab-view/components/tab-view-controls.js +1 -0
  89. package/dist/components/content-display/tab-view/components/tab-view-controls.js.map +1 -0
  90. package/dist/components/content-display/tab-view/index.js.map +1 -0
  91. package/dist/components/content-display/tab-view/tab-view-context.d.ts +40 -0
  92. package/dist/components/content-display/tab-view/tab-view-context.js.map +1 -0
  93. package/dist/components/{ui → content-display}/tab-view/tab-view.d.ts +1 -2
  94. package/dist/components/{ui → content-display}/tab-view/tab-view.js +3 -4
  95. package/dist/components/content-display/tab-view/tab-view.js.map +1 -0
  96. package/dist/components/{ui → content-display}/tab-view/tab-view.types.d.ts +7 -11
  97. package/dist/components/content-display/tab-view/tab-view.types.js.map +1 -0
  98. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js +1 -1
  99. package/dist/components/form-elements/dropdowns/dropdown-base/dropdown-base.js.map +1 -1
  100. package/dist/components/index.d.ts +2 -1
  101. package/dist/components/index.js +2 -1
  102. package/dist/components/index.js.map +1 -1
  103. package/dist/components/layouts/column-layout/column-layout.types.d.ts +4 -2
  104. package/dist/components/layouts/column-layout/column-skeleton/column-skeleton.types.d.ts +3 -2
  105. package/dist/components/layouts/column-layout/index.d.ts +1 -1
  106. package/dist/components/layouts/column-layout/index.js.map +1 -1
  107. package/dist/components/media-display/image-panel/image-panel.js.map +1 -0
  108. package/dist/components/media-display/image-panel/image-panel.types.js.map +1 -0
  109. package/dist/components/media-display/image-panel/index.js.map +1 -0
  110. package/dist/components/media-display/index.js.map +1 -0
  111. package/dist/components/media-display/info-card/index.js.map +1 -0
  112. package/dist/components/media-display/info-card/info-card.js.map +1 -0
  113. package/dist/components/media-display/info-card/info-card.types.js.map +1 -0
  114. package/dist/components/media-display/media-card/index.js.map +1 -0
  115. package/dist/components/media-display/media-card/media-card.js.map +1 -0
  116. package/dist/components/media-display/media-card/media-card.types.js.map +1 -0
  117. package/dist/components/ui/card/card.js +2 -2
  118. package/dist/components/ui/card/card.js.map +1 -1
  119. package/dist/components/ui/index.d.ts +0 -1
  120. package/dist/components/ui/index.js +0 -1
  121. package/dist/components/ui/index.js.map +1 -1
  122. package/dist/components/ui/modal/components/modal-content.js +3 -8
  123. package/dist/components/ui/modal/components/modal-content.js.map +1 -1
  124. package/dist/components/ui/modal/modal-context.d.ts +13 -2
  125. package/dist/components/ui/modal/modal.d.ts +2 -2
  126. package/dist/components/ui/modal/modal.js +4 -22
  127. package/dist/components/ui/modal/modal.js.map +1 -1
  128. package/dist/components/ui/modal/modal.types.d.ts +5 -17
  129. package/dist/hooks/use-click-outside/use-click-outside.d.ts +9 -2
  130. package/dist/hooks/use-click-outside/use-click-outside.js +2 -2
  131. package/dist/hooks/use-click-outside/use-click-outside.js.map +1 -1
  132. package/dist/hooks/use-dismiss/use-dismiss.d.ts +12 -4
  133. package/dist/hooks/use-dismiss/use-dismiss.js +8 -8
  134. package/dist/hooks/use-dismiss/use-dismiss.js.map +1 -1
  135. package/dist/internal-components/index.d.ts +1 -0
  136. package/dist/internal-components/index.js +1 -0
  137. package/dist/internal-components/index.js.map +1 -1
  138. package/dist/internal-components/modal-primitive/index.d.ts +2 -0
  139. package/dist/internal-components/modal-primitive/index.js +2 -0
  140. package/dist/internal-components/modal-primitive/index.js.map +1 -0
  141. package/dist/internal-components/modal-primitive/modal-primitive.d.ts +2 -0
  142. package/dist/internal-components/modal-primitive/modal-primitive.js +34 -0
  143. package/dist/internal-components/modal-primitive/modal-primitive.js.map +1 -0
  144. package/dist/internal-components/modal-primitive/modal-primitive.types.d.ts +19 -0
  145. package/dist/internal-components/modal-primitive/modal-primitive.types.js +2 -0
  146. package/dist/internal-components/modal-primitive/modal-primitive.types.js.map +1 -0
  147. package/dist/styled-system/patterns/divider.d.ts +1 -1
  148. package/dist/styled-system/patterns/float.d.ts +1 -1
  149. package/dist/styled-system/patterns/spacer.js +6 -2
  150. package/dist/styled-system/styles.css +1 -1
  151. package/dist/styles/panda.css +1 -1
  152. package/dist/styles/theme.css +1 -1
  153. package/dist/theme/default-theme.js +1 -1
  154. package/dist/utils/theme-utilities/get-utility-size-value/get-utility-size-value.d.ts +1 -1
  155. package/package.json +8 -3
  156. package/dist/components/media/image-panel/image-panel.js.map +0 -1
  157. package/dist/components/media/image-panel/image-panel.types.js.map +0 -1
  158. package/dist/components/media/image-panel/index.js.map +0 -1
  159. package/dist/components/media/index.js.map +0 -1
  160. package/dist/components/media/info-card/index.js.map +0 -1
  161. package/dist/components/media/info-card/info-card.js.map +0 -1
  162. package/dist/components/media/info-card/info-card.types.js.map +0 -1
  163. package/dist/components/media/media-card/index.js.map +0 -1
  164. package/dist/components/media/media-card/media-card.js.map +0 -1
  165. package/dist/components/media/media-card/media-card.types.js.map +0 -1
  166. package/dist/components/ui/tab-view/components/tab-item-content.js.map +0 -1
  167. package/dist/components/ui/tab-view/components/tab-view-content.js.map +0 -1
  168. package/dist/components/ui/tab-view/components/tab-view-controls.js.map +0 -1
  169. package/dist/components/ui/tab-view/index.js.map +0 -1
  170. package/dist/components/ui/tab-view/tab-view-context.d.ts +0 -34
  171. package/dist/components/ui/tab-view/tab-view-context.js.map +0 -1
  172. package/dist/components/ui/tab-view/tab-view.js.map +0 -1
  173. package/dist/components/ui/tab-view/tab-view.types.js.map +0 -1
  174. /package/dist/components/{ui → content-display}/tab-view/components/tab-view-content.d.ts +0 -0
  175. /package/dist/components/{ui → content-display}/tab-view/components/tab-view-controls.d.ts +0 -0
  176. /package/dist/components/{ui → content-display}/tab-view/index.d.ts +0 -0
  177. /package/dist/components/{ui → content-display}/tab-view/index.js +0 -0
  178. /package/dist/components/{ui → content-display}/tab-view/tab-view-context.js +0 -0
  179. /package/dist/components/{ui → content-display}/tab-view/tab-view.types.js +0 -0
  180. /package/dist/components/{media → media-display}/image-panel/image-panel.d.ts +0 -0
  181. /package/dist/components/{media → media-display}/image-panel/image-panel.js +0 -0
  182. /package/dist/components/{media → media-display}/image-panel/image-panel.types.d.ts +0 -0
  183. /package/dist/components/{media → media-display}/image-panel/image-panel.types.js +0 -0
  184. /package/dist/components/{media → media-display}/image-panel/index.d.ts +0 -0
  185. /package/dist/components/{media → media-display}/image-panel/index.js +0 -0
  186. /package/dist/components/{media → media-display}/index.d.ts +0 -0
  187. /package/dist/components/{media → media-display}/index.js +0 -0
  188. /package/dist/components/{media → media-display}/info-card/index.d.ts +0 -0
  189. /package/dist/components/{media → media-display}/info-card/index.js +0 -0
  190. /package/dist/components/{media → media-display}/info-card/info-card.d.ts +0 -0
  191. /package/dist/components/{media → media-display}/info-card/info-card.js +0 -0
  192. /package/dist/components/{media → media-display}/info-card/info-card.types.d.ts +0 -0
  193. /package/dist/components/{media → media-display}/info-card/info-card.types.js +0 -0
  194. /package/dist/components/{media → media-display}/media-card/index.d.ts +0 -0
  195. /package/dist/components/{media → media-display}/media-card/index.js +0 -0
  196. /package/dist/components/{media → media-display}/media-card/media-card.d.ts +0 -0
  197. /package/dist/components/{media → media-display}/media-card/media-card.js +0 -0
  198. /package/dist/components/{media → media-display}/media-card/media-card.types.d.ts +0 -0
  199. /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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=carousel.types.js.map
@@ -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,3 @@
1
+ export declare const PreviousButton: () => import("react/jsx-runtime").JSX.Element;
2
+ export declare const NextButton: () => import("react/jsx-runtime").JSX.Element;
3
+ export declare const CarouselControls: () => import("react/jsx-runtime").JSX.Element;
@@ -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,6 @@
1
+ import { CarouselItemId } from '../carousel.types';
2
+ type CarouselItemProps = {
3
+ itemId: CarouselItemId;
4
+ };
5
+ export declare const CarouselItem: ({ itemId }: CarouselItemProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -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,2 @@
1
+ export type { CarouselProps } from './carousel.types';
2
+ export { Carousel } from './carousel';
@@ -0,0 +1,2 @@
1
+ export { Carousel } from './carousel';
2
+ //# sourceMappingURL=index.js.map
@@ -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,6 @@
1
+ import { GalleryItemId } from '../../gallery.types';
2
+ type GalleryItemProps = {
3
+ itemId: GalleryItemId;
4
+ };
5
+ export declare const GalleryItem: ({ itemId }: GalleryItemProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -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"}
@@ -0,0 +1 @@
1
+ export declare const GalleryItemsDisplay: () => import("react/jsx-runtime").JSX.Element;