@zayne-labs/ui-react 0.9.8 → 0.9.12

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 (79) hide show
  1. package/dist/esm/await-parts-BJ6C-y1f.d.ts +36 -0
  2. package/dist/esm/chunk-CLGH26AQ.js +337 -0
  3. package/dist/esm/chunk-CLGH26AQ.js.map +1 -0
  4. package/dist/esm/chunk-CWUEUCR5.js +3 -0
  5. package/dist/esm/chunk-CWUEUCR5.js.map +1 -0
  6. package/dist/esm/chunk-EYWTW54R.js +42 -0
  7. package/dist/esm/chunk-EYWTW54R.js.map +1 -0
  8. package/dist/esm/chunk-G5BNZM66.js +32 -0
  9. package/dist/esm/chunk-G5BNZM66.js.map +1 -0
  10. package/dist/esm/{chunk-IREUBYDK.js → chunk-JC52CA2O.js} +26 -23
  11. package/dist/esm/chunk-JC52CA2O.js.map +1 -0
  12. package/dist/esm/chunk-KLEJZWKY.js +45 -0
  13. package/dist/esm/chunk-KLEJZWKY.js.map +1 -0
  14. package/dist/esm/{chunk-V5DSTESN.js → chunk-M7YXNGT6.js} +3 -3
  15. package/dist/esm/{chunk-V5DSTESN.js.map → chunk-M7YXNGT6.js.map} +1 -1
  16. package/dist/esm/chunk-MT2MQDK2.js +13 -0
  17. package/dist/esm/chunk-MT2MQDK2.js.map +1 -0
  18. package/dist/esm/chunk-MY5NL5PB.js +627 -0
  19. package/dist/esm/chunk-MY5NL5PB.js.map +1 -0
  20. package/dist/esm/{chunk-XZRSR3EM.js → chunk-N4274N5K.js} +6 -2
  21. package/dist/esm/chunk-N4274N5K.js.map +1 -0
  22. package/dist/esm/chunk-V5ZPMMIH.js +121 -0
  23. package/dist/esm/chunk-V5ZPMMIH.js.map +1 -0
  24. package/dist/esm/{chunk-2P3P5AXH.js → chunk-Y5VBSXZS.js} +14 -7
  25. package/dist/esm/chunk-Y5VBSXZS.js.map +1 -0
  26. package/dist/esm/{chunk-IUEPHHGO.js → chunk-YO5LJ7ZJ.js} +2 -2
  27. package/dist/esm/{chunk-IUEPHHGO.js.map → chunk-YO5LJ7ZJ.js.map} +1 -1
  28. package/dist/esm/chunk-Z6JJE4G6.js +68 -0
  29. package/dist/esm/chunk-Z6JJE4G6.js.map +1 -0
  30. package/dist/esm/chunk-ZSDYJOYB.js +274 -0
  31. package/dist/esm/chunk-ZSDYJOYB.js.map +1 -0
  32. package/dist/esm/components/common/await/index.d.ts +10 -12
  33. package/dist/esm/components/common/await/index.js +5 -24
  34. package/dist/esm/components/common/await/index.js.map +1 -1
  35. package/dist/esm/components/common/error-boundary/index.d.ts +6 -30
  36. package/dist/esm/components/common/error-boundary/index.js +1 -2
  37. package/dist/esm/components/common/for/index.d.ts +6 -20
  38. package/dist/esm/components/common/index.d.ts +13 -0
  39. package/dist/esm/components/common/index.js +14 -0
  40. package/dist/esm/components/common/show/index.js +2 -2
  41. package/dist/esm/components/common/slot/index.d.ts +7 -3
  42. package/dist/esm/components/common/slot/index.js +1 -1
  43. package/dist/esm/components/common/suspense-with-boundary/index.d.ts +3 -3
  44. package/dist/esm/components/common/suspense-with-boundary/index.js +2 -12
  45. package/dist/esm/components/common/suspense-with-boundary/index.js.map +1 -1
  46. package/dist/esm/components/common/switch/index.js +3 -40
  47. package/dist/esm/components/common/switch/index.js.map +1 -1
  48. package/dist/esm/components/common/teleport/index.js +1 -29
  49. package/dist/esm/components/common/teleport/index.js.map +1 -1
  50. package/dist/esm/components/ui/card/index.js +4 -43
  51. package/dist/esm/components/ui/card/index.js.map +1 -1
  52. package/dist/esm/components/ui/carousel/index.js +14 -273
  53. package/dist/esm/components/ui/carousel/index.js.map +1 -1
  54. package/dist/esm/components/ui/drag-scroll/index.js +2 -119
  55. package/dist/esm/components/ui/drag-scroll/index.js.map +1 -1
  56. package/dist/esm/components/ui/drop-zone/index.d.ts +8 -181
  57. package/dist/esm/components/ui/drop-zone/index.js +15 -327
  58. package/dist/esm/components/ui/drop-zone/index.js.map +1 -1
  59. package/dist/esm/components/ui/form/index.js +7 -625
  60. package/dist/esm/components/ui/form/index.js.map +1 -1
  61. package/dist/esm/components/ui/index.d.ts +11 -0
  62. package/dist/esm/components/ui/index.js +21 -0
  63. package/dist/esm/drop-zone-parts-CvseSoXA.d.ts +186 -0
  64. package/dist/esm/error-boundary-BD0X61Sg.d.ts +28 -0
  65. package/dist/esm/for-8C6fFbN6.d.ts +21 -0
  66. package/dist/esm/{lib/utils/getSlotMap/index.d.ts → getSlotMap-DTkxtGhd.d.ts} +10 -8
  67. package/dist/esm/lib/utils/{getSlot/index.d.ts → index.d.ts} +1 -0
  68. package/dist/esm/lib/utils/index.js +5 -0
  69. package/dist/esm/lib/utils/index.js.map +1 -0
  70. package/dist/esm/{types-CeWumkhm.d.ts → types-mdfDDNrr.d.ts} +9 -6
  71. package/dist/style.css +1 -1
  72. package/package.json +17 -16
  73. package/dist/esm/chunk-2P3P5AXH.js.map +0 -1
  74. package/dist/esm/chunk-IREUBYDK.js.map +0 -1
  75. package/dist/esm/chunk-XZRSR3EM.js.map +0 -1
  76. package/dist/esm/lib/utils/getSlot/index.js +0 -4
  77. package/dist/esm/lib/utils/getSlotMap/index.js +0 -4
  78. /package/dist/esm/{lib/utils/getSlot → components/common}/index.js.map +0 -0
  79. /package/dist/esm/{lib/utils/getSlotMap → components/ui}/index.js.map +0 -0
@@ -0,0 +1,274 @@
1
+ import { cnMerge } from './chunk-OHG7GB7O.js';
2
+ import { getElementList } from './chunk-ZNL6YLIM.js';
3
+ import { show_parts_exports } from './chunk-M7YXNGT6.js';
4
+ import { __export } from './chunk-PZ5AY32C.js';
5
+ import * as React3 from 'react';
6
+ import { useEffect, useState } from 'react';
7
+ import { useConstant, useAnimationInterval, useCallbackRef } from '@zayne-labs/toolkit-react';
8
+ import { createZustandContext } from '@zayne-labs/toolkit-react/zustand';
9
+ import { create } from 'zustand';
10
+
11
+ var [Provider, useCarouselStoreContext] = createZustandContext({
12
+ hookName: "useCarouselStore",
13
+ name: "CarouselStoreContext",
14
+ providerName: "CarouselContextProvider"
15
+ });
16
+ var createCarouselStore = (storeValues) => {
17
+ const { images, onSlideBtnClick } = storeValues;
18
+ const useInitCarouselStore = create()((set, get) => ({
19
+ currentSlide: 0,
20
+ images,
21
+ maxSlide: images.length - 1,
22
+ /* eslint-disable perfectionist/sort-objects -- actions should be last */
23
+ actions: {
24
+ /* eslint-enable perfectionist/sort-objects -- actions should be last */
25
+ goToNextSlide: () => {
26
+ const { currentSlide, maxSlide } = get();
27
+ const { goToSlide } = get().actions;
28
+ if (currentSlide === maxSlide) {
29
+ goToSlide(0);
30
+ return;
31
+ }
32
+ goToSlide(currentSlide + 1);
33
+ },
34
+ goToPreviousSlide: () => {
35
+ const { currentSlide, maxSlide } = get();
36
+ const { goToSlide } = get().actions;
37
+ if (currentSlide === 0) {
38
+ goToSlide(maxSlide);
39
+ return;
40
+ }
41
+ goToSlide(currentSlide - 1);
42
+ },
43
+ goToSlide: (newValue) => {
44
+ onSlideBtnClick?.();
45
+ set({ currentSlide: newValue });
46
+ }
47
+ }
48
+ }));
49
+ return useInitCarouselStore;
50
+ };
51
+ var useCarousel = (props) => {
52
+ const { images, onSlideBtnClick } = props;
53
+ const useInitCarouselStore = useConstant(() => createCarouselStore({ images, onSlideBtnClick }));
54
+ useEffect(() => {
55
+ useInitCarouselStore.setState({ images });
56
+ }, [images]);
57
+ return useInitCarouselStore;
58
+ };
59
+ function CarouselContextProvider(props) {
60
+ const { children, images, onSlideBtnClick } = props;
61
+ const useInitCarouselStore = useCarousel({ images, onSlideBtnClick });
62
+ return /* @__PURE__ */ React3.createElement(Provider, { value: useInitCarouselStore }, children);
63
+ }
64
+ var ChevronLeftIcon = (props) => /* @__PURE__ */ React3.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React3.createElement("g", { fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2" }, /* @__PURE__ */ React3.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React3.createElement("path", { d: "m14 16l-4-4l4-4" })));
65
+ var useCarouselOptions = (options = {}) => {
66
+ const { autoSlideInterval = 5e3, hasAutoSlide = false, shouldPauseOnHover = false } = options;
67
+ const { goToNextSlide } = useCarouselStoreContext((state) => state.actions);
68
+ const [isPaused, setIsPaused] = useState(false);
69
+ const shouldAutoSlide = hasAutoSlide && !isPaused;
70
+ useAnimationInterval({
71
+ intervalDuration: shouldAutoSlide ? autoSlideInterval : null,
72
+ onAnimation: goToNextSlide
73
+ });
74
+ const pauseAutoSlide = useCallbackRef(() => shouldPauseOnHover && setIsPaused(true));
75
+ const resumeAutoSlide = useCallbackRef(() => shouldPauseOnHover && setIsPaused(false));
76
+ return { pauseAutoSlide, resumeAutoSlide };
77
+ };
78
+
79
+ // src/components/ui/carousel/carousel.tsx
80
+ function CarouselContent(props) {
81
+ const {
82
+ as: HtmlElement = "article",
83
+ autoSlideInterval,
84
+ children,
85
+ classNames,
86
+ hasAutoSlide,
87
+ shouldPauseOnHover
88
+ } = props;
89
+ const { pauseAutoSlide, resumeAutoSlide } = useCarouselOptions({
90
+ autoSlideInterval,
91
+ hasAutoSlide,
92
+ shouldPauseOnHover
93
+ });
94
+ return /* @__PURE__ */ React3.createElement(
95
+ HtmlElement,
96
+ {
97
+ "data-id": "Carousel",
98
+ className: cnMerge("relative select-none", classNames?.base),
99
+ onMouseEnter: pauseAutoSlide,
100
+ onMouseLeave: resumeAutoSlide
101
+ },
102
+ /* @__PURE__ */ React3.createElement(
103
+ "div",
104
+ {
105
+ "data-id": "Scroll Container",
106
+ className: cnMerge(
107
+ "flex size-full overflow-x-scroll [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",
108
+ classNames?.scrollContainer
109
+ )
110
+ },
111
+ children
112
+ )
113
+ );
114
+ }
115
+ function CarouselButton(props) {
116
+ const { classNames, icon, variant } = props;
117
+ const { goToNextSlide, goToPreviousSlide } = useCarouselStoreContext((state) => state.actions);
118
+ return /* @__PURE__ */ React3.createElement(
119
+ "button",
120
+ {
121
+ type: "button",
122
+ className: cnMerge(
123
+ "z-30 flex h-full w-fit items-center",
124
+ variant === "prev" ? "justify-start" : "justify-end",
125
+ classNames?.base
126
+ ),
127
+ onClick: variant === "prev" ? goToPreviousSlide : goToNextSlide
128
+ },
129
+ /* @__PURE__ */ React3.createElement("span", { className: cnMerge("transition-transform active:scale-[1.06]", classNames?.iconContainer) }, icon ?? /* @__PURE__ */ React3.createElement(
130
+ ChevronLeftIcon,
131
+ {
132
+ className: cnMerge(variant === "next" && "rotate-180", classNames?.defaultIcon)
133
+ }
134
+ ))
135
+ );
136
+ }
137
+ function CarouselControls(props) {
138
+ const { classNames, icon } = props;
139
+ return /* @__PURE__ */ React3.createElement("div", { className: cnMerge("absolute inset-0 flex justify-between", classNames?.base) }, /* @__PURE__ */ React3.createElement(show_parts_exports.Root, { when: icon?.iconType }, /* @__PURE__ */ React3.createElement(
140
+ CarouselButton,
141
+ {
142
+ variant: "prev",
143
+ classNames: {
144
+ defaultIcon: classNames?.defaultIcon,
145
+ iconContainer: cnMerge(
146
+ icon?.iconType === "nextIcon" && "rotate-180",
147
+ classNames?.iconContainer
148
+ )
149
+ },
150
+ icon: icon?.icon
151
+ }
152
+ ), /* @__PURE__ */ React3.createElement(
153
+ CarouselButton,
154
+ {
155
+ variant: "next",
156
+ classNames: {
157
+ defaultIcon: classNames?.defaultIcon,
158
+ iconContainer: cnMerge(
159
+ icon?.iconType === "prevIcon" && "rotate-180",
160
+ classNames?.iconContainer
161
+ )
162
+ },
163
+ icon: icon?.icon
164
+ }
165
+ ), /* @__PURE__ */ React3.createElement(show_parts_exports.Otherwise, null, /* @__PURE__ */ React3.createElement(
166
+ CarouselButton,
167
+ {
168
+ variant: "prev",
169
+ classNames: {
170
+ defaultIcon: classNames?.defaultIcon,
171
+ iconContainer: classNames?.iconContainer
172
+ },
173
+ icon: icon?.prev
174
+ }
175
+ ), /* @__PURE__ */ React3.createElement(
176
+ CarouselButton,
177
+ {
178
+ variant: "next",
179
+ classNames: {
180
+ defaultIcon: classNames?.defaultIcon,
181
+ iconContainer: classNames?.iconContainer
182
+ },
183
+ icon: icon?.next
184
+ }
185
+ ))));
186
+ }
187
+ function CarouselItemGroup(props) {
188
+ const { children, className, each, render } = props;
189
+ const [ItemList] = getElementList("base");
190
+ const currentSlide = useCarouselStoreContext((state) => state.currentSlide);
191
+ const images = useCarouselStoreContext((state) => each ?? state.images);
192
+ return /* @__PURE__ */ React3.createElement(
193
+ "ul",
194
+ {
195
+ "data-id": "Carousel Image Wrapper",
196
+ className: cnMerge(
197
+ `flex w-full shrink-0 snap-center [transform:translate3d(var(--translate-distance),0,0)]
198
+ [transition:transform_800ms_ease]`,
199
+ className
200
+ ),
201
+ style: {
202
+ "--translate-distance": `-${currentSlide * 100}%`
203
+ }
204
+ },
205
+ typeof render === "function" ? /* @__PURE__ */ React3.createElement(ItemList, { each: images, render }) : /* @__PURE__ */ React3.createElement(ItemList, { each: images }, children)
206
+ );
207
+ }
208
+ function CarouselItem({ children, className, ...restOfProps }) {
209
+ return /* @__PURE__ */ React3.createElement(
210
+ "li",
211
+ {
212
+ className: cnMerge("flex w-full shrink-0 snap-center justify-center", className),
213
+ ...restOfProps
214
+ },
215
+ children
216
+ );
217
+ }
218
+ function CarouselCaption(props) {
219
+ const { as: HtmlElement = "div", children, className } = props;
220
+ return /* @__PURE__ */ React3.createElement(HtmlElement, { "data-id": "Carousel Caption", className: cnMerge("absolute z-10", className) }, children);
221
+ }
222
+ function CarouselIndicatorGroup(props) {
223
+ const { children, className, each, render } = props;
224
+ const images = useCarouselStoreContext((state) => each ?? state.images);
225
+ const [IndicatorList] = getElementList("base");
226
+ return /* @__PURE__ */ React3.createElement(
227
+ "ul",
228
+ {
229
+ "data-id": "Carousel Indicators",
230
+ className: cnMerge(
231
+ "absolute bottom-[25px] z-[2] flex w-full items-center justify-center gap-[15px]",
232
+ className
233
+ )
234
+ },
235
+ typeof render === "function" ? /* @__PURE__ */ React3.createElement(IndicatorList, { each: images, render }) : /* @__PURE__ */ React3.createElement(IndicatorList, { each: images }, children)
236
+ );
237
+ }
238
+ function CarouselIndicator(props) {
239
+ const { classNames, currentIndex } = props;
240
+ const {
241
+ actions: { goToSlide },
242
+ currentSlide
243
+ } = useCarouselStoreContext((state) => state);
244
+ return /* @__PURE__ */ React3.createElement("li", { className: cnMerge("inline-flex", classNames?.base) }, /* @__PURE__ */ React3.createElement(
245
+ "button",
246
+ {
247
+ type: "button",
248
+ onClick: () => goToSlide(currentIndex),
249
+ className: cnMerge(
250
+ "size-[6px] rounded-[50%]",
251
+ classNames?.base,
252
+ currentIndex === currentSlide && ["w-[35px] rounded-[5px]", classNames?.isActive]
253
+ )
254
+ }
255
+ ));
256
+ }
257
+
258
+ // src/components/ui/carousel/carousel-parts.ts
259
+ var carousel_parts_exports = {};
260
+ __export(carousel_parts_exports, {
261
+ Button: () => CarouselButton,
262
+ Caption: () => CarouselCaption,
263
+ Content: () => CarouselContent,
264
+ Controls: () => CarouselControls,
265
+ Indicator: () => CarouselIndicator,
266
+ IndicatorGroup: () => CarouselIndicatorGroup,
267
+ Item: () => CarouselItem,
268
+ ItemGroup: () => CarouselItemGroup,
269
+ Root: () => CarouselContextProvider
270
+ });
271
+
272
+ export { CarouselButton, CarouselCaption, CarouselContent, CarouselControls, CarouselIndicator, CarouselIndicatorGroup, CarouselItem, CarouselItemGroup, carousel_parts_exports };
273
+ //# sourceMappingURL=chunk-ZSDYJOYB.js.map
274
+ //# sourceMappingURL=chunk-ZSDYJOYB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/ui/carousel/carousel-store-context.tsx","../../src/components/ui/carousel/icons.tsx","../../src/components/ui/carousel/useCarouselOptions.ts","../../src/components/ui/carousel/carousel.tsx","../../src/components/ui/carousel/carousel-parts.ts"],"names":["React","React2"],"mappings":";;;;;;;;;;AASA,IAAM,CAAC,QAAA,EAAU,uBAAuB,CAAA,GAAI,oBAAoC,CAAA;AAAA,EAC/E,QAAU,EAAA,kBAAA;AAAA,EACV,IAAM,EAAA,sBAAA;AAAA,EACN,YAAc,EAAA;AACf,CAAC,CAAA;AAGD,IAAM,mBAAA,GAAsB,CAC3B,WACI,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,eAAA,EAAoB,GAAA,WAAA;AAEpC,EAAA,MAAM,oBAAuB,GAAA,MAAA,EAAiC,CAAA,CAAC,KAAK,GAAS,MAAA;AAAA,IAC5E,YAAc,EAAA,CAAA;AAAA,IACd,MAAA;AAAA,IACA,QAAA,EAAU,OAAO,MAAS,GAAA,CAAA;AAAA;AAAA,IAG1B,OAAS,EAAA;AAAA;AAAA,MAGR,eAAe,MAAM;AACpB,QAAA,MAAM,EAAE,YAAA,EAAc,QAAS,EAAA,GAAI,GAAI,EAAA;AACvC,QAAA,MAAM,EAAE,SAAA,EAAc,GAAA,GAAA,EAAM,CAAA,OAAA;AAE5B,QAAA,IAAI,iBAAiB,QAAU,EAAA;AAC9B,UAAA,SAAA,CAAU,CAAC,CAAA;AACX,UAAA;AAAA;AAGD,QAAA,SAAA,CAAU,eAAe,CAAC,CAAA;AAAA,OAC3B;AAAA,MAEA,mBAAmB,MAAM;AACxB,QAAA,MAAM,EAAE,YAAA,EAAc,QAAS,EAAA,GAAI,GAAI,EAAA;AACvC,QAAA,MAAM,EAAE,SAAA,EAAc,GAAA,GAAA,EAAM,CAAA,OAAA;AAE5B,QAAA,IAAI,iBAAiB,CAAG,EAAA;AACvB,UAAA,SAAA,CAAU,QAAQ,CAAA;AAClB,UAAA;AAAA;AAGD,QAAA,SAAA,CAAU,eAAe,CAAC,CAAA;AAAA,OAC3B;AAAA,MAEA,SAAA,EAAW,CAAC,QAAa,KAAA;AACxB,QAAkB,eAAA,IAAA;AAElB,QAAI,GAAA,CAAA,EAAE,YAAc,EAAA,QAAA,EAAU,CAAA;AAAA;AAC/B;AACD,GACC,CAAA,CAAA;AAEF,EAAO,OAAA,oBAAA;AACR,CAAA;AAEA,IAAM,WAAA,GAAc,CACnB,KACI,KAAA;AACJ,EAAM,MAAA,EAAE,MAAQ,EAAA,eAAA,EAAoB,GAAA,KAAA;AAEpC,EAAM,MAAA,oBAAA,GAAuB,YAAY,MAAM,mBAAA,CAAoB,EAAE,MAAQ,EAAA,eAAA,EAAiB,CAAC,CAAA;AAG/F,EAAA,SAAA,CAAU,MAAM;AACf,IAAqB,oBAAA,CAAA,QAAA,CAAS,EAAE,MAAA,EAAQ,CAAA;AAAA,GAEzC,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAO,OAAA,oBAAA;AACR,CAAA;AAGA,SAAS,wBAAoD,KAAuC,EAAA;AACnG,EAAA,MAAM,EAAE,QAAA,EAAU,MAAQ,EAAA,eAAA,EAAoB,GAAA,KAAA;AAE9C,EAAA,MAAM,oBAAuB,GAAA,WAAA,CAAY,EAAE,MAAA,EAAQ,iBAAiB,CAAA;AAEpE,EAAA,uBAAQA,MAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,KAAO,EAAA,oBAAA,EAAA,EAAuB,QAAS,CAAA;AACzD;ACtFO,IAAM,kBAAkB,CAAC,KAAA,0CAC9B,KAAI,EAAA,EAAA,KAAA,EAAM,8BAA6B,KAAM,EAAA,KAAA,EAAM,MAAO,EAAA,KAAA,EAAM,SAAQ,WAAa,EAAA,GAAG,yBACvFC,MAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAE,MAAK,MAAO,EAAA,MAAA,EAAO,cAAe,EAAA,aAAA,EAAc,SAAQ,cAAe,EAAA,OAAA,EAAQ,aAAY,GAC7F,EAAA,kBAAAA,MAAA,CAAA,aAAA,CAAC,YAAO,EAAG,EAAA,IAAA,EAAK,IAAG,IAAK,EAAA,CAAA,EAAE,MAAK,CAC/B,kBAAAA,MAAA,CAAA,aAAA,CAAC,UAAK,CAAE,EAAA,iBAAA,EAAkB,CAC3B,CACD,CAAA;ACED,IAAM,kBAAqB,GAAA,CAAC,OAA2B,GAAA,EAAO,KAAA;AAC7D,EAAA,MAAM,EAAE,iBAAoB,GAAA,GAAA,EAAM,eAAe,KAAO,EAAA,kBAAA,GAAqB,OAAU,GAAA,OAAA;AAEvF,EAAA,MAAM,EAAE,aAAc,EAAA,GAAI,wBAAwB,CAAC,KAAA,KAAU,MAAM,OAAO,CAAA;AAE1E,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAE9C,EAAM,MAAA,eAAA,GAAkB,gBAAgB,CAAC,QAAA;AAEzC,EAAqB,oBAAA,CAAA;AAAA,IACpB,gBAAA,EAAkB,kBAAkB,iBAAoB,GAAA,IAAA;AAAA,IACxD,WAAa,EAAA;AAAA,GACb,CAAA;AAED,EAAA,MAAM,iBAAiB,cAAe,CAAA,MAAM,kBAAsB,IAAA,WAAA,CAAY,IAAI,CAAC,CAAA;AAEnF,EAAA,MAAM,kBAAkB,cAAe,CAAA,MAAM,kBAAsB,IAAA,WAAA,CAAY,KAAK,CAAC,CAAA;AAErF,EAAO,OAAA,EAAE,gBAAgB,eAAgB,EAAA;AAC1C,CAAA;;;ACRO,SAAS,gBACf,KACC,EAAA;AACD,EAAM,MAAA;AAAA,IACL,IAAI,WAAc,GAAA,SAAA;AAAA,IAClB,iBAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACG,GAAA,KAAA;AAEJ,EAAA,MAAM,EAAE,cAAA,EAAgB,eAAgB,EAAA,GAAI,kBAAmB,CAAA;AAAA,IAC9D,iBAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACA,CAAA;AAGD,EACC,uBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACA,SAAQ,EAAA,UAAA;AAAA,MACR,SAAW,EAAA,OAAA,CAAQ,sBAAwB,EAAA,UAAA,EAAY,IAAI,CAAA;AAAA,MAC3D,YAAc,EAAA,cAAA;AAAA,MACd,YAAc,EAAA;AAAA,KAAA;AAAA,oBAEd,MAAA,CAAA,aAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACA,SAAQ,EAAA,kBAAA;AAAA,QACR,SAAW,EAAA,OAAA;AAAA,UACV,uFAAA;AAAA,UACA,UAAY,EAAA;AAAA;AACb,OAAA;AAAA,MAEC;AAAA;AACF,GACD;AAEF;AAEO,SAAS,eAAe,KAA6B,EAAA;AAC3D,EAAA,MAAM,EAAE,UAAA,EAAY,IAAM,EAAA,OAAA,EAAY,GAAA,KAAA;AAEtC,EAAM,MAAA,EAAE,eAAe,iBAAkB,EAAA,GAAI,wBAAwB,CAAC,KAAA,KAAU,MAAM,OAAO,CAAA;AAE7F,EACC,uBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,SAAW,EAAA,OAAA;AAAA,QACV,qCAAA;AAAA,QACA,OAAA,KAAY,SAAS,eAAkB,GAAA,aAAA;AAAA,QACvC,UAAY,EAAA;AAAA,OACb;AAAA,MACA,OAAA,EAAS,OAAY,KAAA,MAAA,GAAS,iBAAoB,GAAA;AAAA,KAAA;AAAA,oBAElD,MAAA,CAAA,aAAA,CAAC,UAAK,SAAW,EAAA,OAAA,CAAQ,4CAA4C,UAAY,EAAA,aAAa,KAC5F,IACA,oBAAA,MAAA,CAAA,aAAA;AAAA,MAAC,eAAA;AAAA,MAAA;AAAA,QACA,WAAW,OAAQ,CAAA,OAAA,KAAY,MAAU,IAAA,YAAA,EAAc,YAAY,WAAW;AAAA;AAAA,KAGjF;AAAA,GACD;AAEF;AAEO,SAAS,iBAAiB,KAA6B,EAAA;AAC7D,EAAM,MAAA,EAAE,UAAY,EAAA,IAAA,EAAS,GAAA,KAAA;AAE7B,EAAA,uBACE,MAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,OAAA,CAAQ,yCAAyC,UAAY,EAAA,IAAI,CAChF,EAAA,kBAAA,MAAA,CAAA,aAAA,CAAC,kBAAK,CAAA,IAAA,EAAL,EAAU,IAAA,EAAM,MAAM,QACtB,EAAA,kBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACA,OAAQ,EAAA,MAAA;AAAA,MACR,UAAY,EAAA;AAAA,QACX,aAAa,UAAY,EAAA,WAAA;AAAA,QACzB,aAAe,EAAA,OAAA;AAAA,UACd,IAAA,EAAM,aAAa,UAAc,IAAA,YAAA;AAAA,UACjC,UAAY,EAAA;AAAA;AACb,OACD;AAAA,MACA,MAAM,IAAM,EAAA;AAAA;AAAA,GAGb,kBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACA,OAAQ,EAAA,MAAA;AAAA,MACR,UAAY,EAAA;AAAA,QACX,aAAa,UAAY,EAAA,WAAA;AAAA,QACzB,aAAe,EAAA,OAAA;AAAA,UACd,IAAA,EAAM,aAAa,UAAc,IAAA,YAAA;AAAA,UACjC,UAAY,EAAA;AAAA;AACb,OACD;AAAA,MACA,MAAM,IAAM,EAAA;AAAA;AAAA,GAGb,kBAAA,MAAA,CAAA,aAAA,CAAC,kBAAK,CAAA,SAAA,EAAL,IACA,kBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACA,OAAQ,EAAA,MAAA;AAAA,MACR,UAAY,EAAA;AAAA,QACX,aAAa,UAAY,EAAA,WAAA;AAAA,QACzB,eAAe,UAAY,EAAA;AAAA,OAC5B;AAAA,MACA,MAAM,IAAM,EAAA;AAAA;AAAA,GAGb,kBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACA,OAAQ,EAAA,MAAA;AAAA,MACR,UAAY,EAAA;AAAA,QACX,aAAa,UAAY,EAAA,WAAA;AAAA,QACzB,eAAe,UAAY,EAAA;AAAA,OAC5B;AAAA,MACA,MAAM,IAAM,EAAA;AAAA;AAAA,GAEd,CACD,CACD,CAAA;AAEF;AAEO,SAAS,kBAA8B,KAAyC,EAAA;AACtF,EAAA,MAAM,EAAE,QAAA,EAAU,SAAW,EAAA,IAAA,EAAM,QAAW,GAAA,KAAA;AAE9C,EAAA,MAAM,CAAC,QAAQ,CAAI,GAAA,cAAA,CAAe,MAAM,CAAA;AACxC,EAAA,MAAM,YAAe,GAAA,uBAAA,CAAwB,CAAC,KAAA,KAAU,MAAM,YAAY,CAAA;AAC1E,EAAA,MAAM,SAAS,uBAAwB,CAAA,CAAC,KAAU,KAAA,IAAA,IAAS,MAAM,MAAuB,CAAA;AAExF,EACC,uBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,SAAQ,EAAA,wBAAA;AAAA,MACR,SAAW,EAAA,OAAA;AAAA,QACV,CAAA;AAAA,qCAAA,CAAA;AAAA,QAEA;AAAA,OACD;AAAA,MACA,KACC,EAAA;AAAA,QACC,sBAAA,EAAwB,CAAI,CAAA,EAAA,YAAA,GAAe,GAAG,CAAA,CAAA;AAAA;AAC/C,KAAA;AAAA,IAGA,OAAO,MAAA,KAAW,UAClB,mBAAA,MAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,IAAA,EAAM,MAAQ,EAAA,MAAA,EAAgB,CAExC,mBAAA,MAAA,CAAA,aAAA,CAAC,QAAS,EAAA,EAAA,IAAA,EAAM,UAAS,QAAS;AAAA,GAEpC;AAEF;AAEO,SAAS,aAAa,EAAE,QAAA,EAAU,SAAW,EAAA,GAAG,aAAmC,EAAA;AACzF,EACC,uBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,SAAA,EAAW,OAAQ,CAAA,iDAAA,EAAmD,SAAS,CAAA;AAAA,MAC9E,GAAG;AAAA,KAAA;AAAA,IAEH;AAAA,GACF;AAEF;AAEO,SAAS,gBACf,KACC,EAAA;AACD,EAAA,MAAM,EAAE,EAAI,EAAA,WAAA,GAAc,KAAO,EAAA,QAAA,EAAU,WAAc,GAAA,KAAA;AAEzD,EACC,uBAAA,MAAA,CAAA,aAAA,CAAC,eAAY,SAAQ,EAAA,kBAAA,EAAmB,WAAW,OAAQ,CAAA,eAAA,EAAiB,SAAS,CAAA,EAAA,EACnF,QACF,CAAA;AAEF;AAEO,SAAS,uBAAmC,KAAyC,EAAA;AAC3F,EAAA,MAAM,EAAE,QAAA,EAAU,SAAW,EAAA,IAAA,EAAM,QAAW,GAAA,KAAA;AAE9C,EAAA,MAAM,SAAS,uBAAwB,CAAA,CAAC,KAAU,KAAA,IAAA,IAAS,MAAM,MAAuB,CAAA;AACxF,EAAA,MAAM,CAAC,aAAa,CAAI,GAAA,cAAA,CAAe,MAAM,CAAA;AAE7C,EACC,uBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,SAAQ,EAAA,qBAAA;AAAA,MACR,SAAW,EAAA,OAAA;AAAA,QACV,iFAAA;AAAA,QACA;AAAA;AACD,KAAA;AAAA,IAEC,OAAO,MAAA,KAAW,UAClB,mBAAA,MAAA,CAAA,aAAA,CAAC,aAAc,EAAA,EAAA,IAAA,EAAM,MAAQ,EAAA,MAAA,EAAgB,CAE7C,mBAAA,MAAA,CAAA,aAAA,CAAC,aAAc,EAAA,EAAA,IAAA,EAAM,UAAS,QAAS;AAAA,GAEzC;AAEF;AAEO,SAAS,kBAAkB,KAA+B,EAAA;AAChE,EAAM,MAAA,EAAE,UAAY,EAAA,YAAA,EAAiB,GAAA,KAAA;AAErC,EAAM,MAAA;AAAA,IACL,OAAA,EAAS,EAAE,SAAU,EAAA;AAAA,IACrB;AAAA,GACG,GAAA,uBAAA,CAAwB,CAAC,KAAA,KAAU,KAAK,CAAA;AAE5C,EAAA,4CACE,IAAG,EAAA,EAAA,SAAA,EAAW,QAAQ,aAAe,EAAA,UAAA,EAAY,IAAI,CACrD,EAAA,kBAAA,MAAA,CAAA,aAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACA,IAAK,EAAA,QAAA;AAAA,MACL,OAAA,EAAS,MAAM,SAAA,CAAU,YAAY,CAAA;AAAA,MACrC,SAAW,EAAA,OAAA;AAAA,QACV,0BAAA;AAAA,QACA,UAAY,EAAA,IAAA;AAAA,QACZ,YAAiB,KAAA,YAAA,IAAgB,CAAC,wBAAA,EAA0B,YAAY,QAAQ;AAAA;AACjF;AAAA,GAEF,CAAA;AAEF;;;AC7OA,IAAA,sBAAA,GAAA;AAAA,QAAA,CAAA,sBAAA,EAAA;AAAA,EAAA,MAAA,EAAA,MAAA,cAAA;AAAA,EAAA,OAAA,EAAA,MAAA,eAAA;AAAA,EAAA,OAAA,EAAA,MAAA,eAAA;AAAA,EAAA,QAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,SAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,cAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,IAAA,EAAA,MAAA,YAAA;AAAA,EAAA,SAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,IAAA,EAAA,MAAA;AAAA,CAAA,CAAA","file":"chunk-ZSDYJOYB.js","sourcesContent":["import * as React from \"react\";\n\nimport { useConstant } from \"@zayne-labs/toolkit-react\";\nimport { createZustandContext } from \"@zayne-labs/toolkit-react/zustand\";\nimport type { PrettyOmit } from \"@zayne-labs/toolkit-type-helpers\";\nimport { useEffect } from \"react\";\nimport { create } from \"zustand\";\nimport type { CarouselProviderProps, CarouselStore, ImagesType } from \"./types\";\n\nconst [Provider, useCarouselStoreContext] = createZustandContext<CarouselStore>({\n\thookName: \"useCarouselStore\",\n\tname: \"CarouselStoreContext\",\n\tproviderName: \"CarouselContextProvider\",\n});\n\n// CarouselStore Creation\nconst createCarouselStore = <TImages extends ImagesType>(\n\tstoreValues: PrettyOmit<CarouselProviderProps<TImages>, \"children\">\n) => {\n\tconst { images, onSlideBtnClick } = storeValues;\n\n\tconst useInitCarouselStore = create<CarouselStore<TImages>>()((set, get) => ({\n\t\tcurrentSlide: 0,\n\t\timages,\n\t\tmaxSlide: images.length - 1,\n\n\t\t/* eslint-disable perfectionist/sort-objects -- actions should be last */\n\t\tactions: {\n\t\t\t/* eslint-enable perfectionist/sort-objects -- actions should be last */\n\n\t\t\tgoToNextSlide: () => {\n\t\t\t\tconst { currentSlide, maxSlide } = get();\n\t\t\t\tconst { goToSlide } = get().actions;\n\n\t\t\t\tif (currentSlide === maxSlide) {\n\t\t\t\t\tgoToSlide(0);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tgoToSlide(currentSlide + 1);\n\t\t\t},\n\n\t\t\tgoToPreviousSlide: () => {\n\t\t\t\tconst { currentSlide, maxSlide } = get();\n\t\t\t\tconst { goToSlide } = get().actions;\n\n\t\t\t\tif (currentSlide === 0) {\n\t\t\t\t\tgoToSlide(maxSlide);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tgoToSlide(currentSlide - 1);\n\t\t\t},\n\n\t\t\tgoToSlide: (newValue) => {\n\t\t\t\tonSlideBtnClick?.();\n\n\t\t\t\tset({ currentSlide: newValue });\n\t\t\t},\n\t\t},\n\t}));\n\n\treturn useInitCarouselStore;\n};\n\nconst useCarousel = <TImages extends ImagesType>(\n\tprops: Omit<CarouselProviderProps<TImages>, \"children\">\n) => {\n\tconst { images, onSlideBtnClick } = props;\n\n\tconst useInitCarouselStore = useConstant(() => createCarouselStore({ images, onSlideBtnClick }));\n\n\t// == To set images again when a page is mounted, preventing stale images from previous page\n\tuseEffect(() => {\n\t\tuseInitCarouselStore.setState({ images });\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps -- useInitCarouselStore is stable\n\t}, [images]);\n\n\treturn useInitCarouselStore;\n};\n\n// == Provider Component\nfunction CarouselContextProvider<TImages extends ImagesType>(props: CarouselProviderProps<TImages>) {\n\tconst { children, images, onSlideBtnClick } = props;\n\n\tconst useInitCarouselStore = useCarousel({ images, onSlideBtnClick });\n\n\treturn <Provider value={useInitCarouselStore}>{children}</Provider>;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components -- It's fine\nexport { useCarouselStoreContext, CarouselContextProvider };\n","import * as React from \"react\";\n\nexport const ChevronLeftIcon = (props: React.SVGProps<SVGSVGElement>) => (\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1em\" height=\"1em\" viewBox=\"0 0 24 24\" {...props}>\n\t\t<g fill=\"none\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2\">\n\t\t\t<circle cx=\"12\" cy=\"12\" r=\"10\" />\n\t\t\t<path d=\"m14 16l-4-4l4-4\" />\n\t\t</g>\n\t</svg>\n);\n","import { useAnimationInterval, useCallbackRef } from \"@zayne-labs/toolkit-react\";\nimport { useState } from \"react\";\nimport { useCarouselStoreContext } from \"./carousel-store-context\";\n\ntype CarouselOptions = {\n\tautoSlideInterval?: number;\n\thasAutoSlide?: boolean;\n\tshouldPauseOnHover?: boolean;\n};\n\nconst useCarouselOptions = (options: CarouselOptions = {}) => {\n\tconst { autoSlideInterval = 5000, hasAutoSlide = false, shouldPauseOnHover = false } = options;\n\n\tconst { goToNextSlide } = useCarouselStoreContext((state) => state.actions);\n\n\tconst [isPaused, setIsPaused] = useState(false);\n\n\tconst shouldAutoSlide = hasAutoSlide && !isPaused;\n\n\tuseAnimationInterval({\n\t\tintervalDuration: shouldAutoSlide ? autoSlideInterval : null,\n\t\tonAnimation: goToNextSlide,\n\t});\n\n\tconst pauseAutoSlide = useCallbackRef(() => shouldPauseOnHover && setIsPaused(true));\n\n\tconst resumeAutoSlide = useCallbackRef(() => shouldPauseOnHover && setIsPaused(false));\n\n\treturn { pauseAutoSlide, resumeAutoSlide };\n};\n\nexport { useCarouselOptions };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { Show } from \"@/components/common\";\nimport { getElementList } from \"@/components/common/for\";\nimport { cnMerge } from \"@/lib/utils/cn\";\nimport type { CssWithCustomProperties, PolymorphicProps } from \"@zayne-labs/toolkit-react/utils\";\nimport { useCarouselStoreContext } from \"./carousel-store-context\";\nimport { ChevronLeftIcon } from \"./icons\";\nimport type {\n\tCarouselButtonsProps,\n\tCarouselContentProps,\n\tCarouselControlProps,\n\tCarouselIndicatorProps,\n\tCarouselWrapperProps,\n\tOtherCarouselProps,\n} from \"./types\";\nimport { useCarouselOptions } from \"./useCarouselOptions\";\n\n// TODO - Add dragging and swiping support\nexport function CarouselContent<TElement extends React.ElementType = \"article\">(\n\tprops: PolymorphicProps<TElement, CarouselContentProps>\n) {\n\tconst {\n\t\tas: HtmlElement = \"article\",\n\t\tautoSlideInterval,\n\t\tchildren,\n\t\tclassNames,\n\t\thasAutoSlide,\n\t\tshouldPauseOnHover,\n\t} = props;\n\n\tconst { pauseAutoSlide, resumeAutoSlide } = useCarouselOptions({\n\t\tautoSlideInterval,\n\t\thasAutoSlide,\n\t\tshouldPauseOnHover,\n\t});\n\n\t// FIXME - Prevent touch swipe on mobile using a cover element or allow swipe but it must update the state appropriately\n\treturn (\n\t\t<HtmlElement\n\t\t\tdata-id=\"Carousel\"\n\t\t\tclassName={cnMerge(\"relative select-none\", classNames?.base)}\n\t\t\tonMouseEnter={pauseAutoSlide}\n\t\t\tonMouseLeave={resumeAutoSlide}\n\t\t>\n\t\t\t<div\n\t\t\t\tdata-id=\"Scroll Container\"\n\t\t\t\tclassName={cnMerge(\n\t\t\t\t\t\"flex size-full overflow-x-scroll [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n\t\t\t\t\tclassNames?.scrollContainer\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</HtmlElement>\n\t);\n}\n\nexport function CarouselButton(props: CarouselButtonsProps) {\n\tconst { classNames, icon, variant } = props;\n\n\tconst { goToNextSlide, goToPreviousSlide } = useCarouselStoreContext((state) => state.actions);\n\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclassName={cnMerge(\n\t\t\t\t\"z-30 flex h-full w-fit items-center\",\n\t\t\t\tvariant === \"prev\" ? \"justify-start\" : \"justify-end\",\n\t\t\t\tclassNames?.base\n\t\t\t)}\n\t\t\tonClick={variant === \"prev\" ? goToPreviousSlide : goToNextSlide}\n\t\t>\n\t\t\t<span className={cnMerge(\"transition-transform active:scale-[1.06]\", classNames?.iconContainer)}>\n\t\t\t\t{icon ?? (\n\t\t\t\t\t<ChevronLeftIcon\n\t\t\t\t\t\tclassName={cnMerge(variant === \"next\" && \"rotate-180\", classNames?.defaultIcon)}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</button>\n\t);\n}\n\nexport function CarouselControls(props: CarouselControlProps) {\n\tconst { classNames, icon } = props;\n\n\treturn (\n\t\t<div className={cnMerge(\"absolute inset-0 flex justify-between\", classNames?.base)}>\n\t\t\t<Show.Root when={icon?.iconType}>\n\t\t\t\t<CarouselButton\n\t\t\t\t\tvariant=\"prev\"\n\t\t\t\t\tclassNames={{\n\t\t\t\t\t\tdefaultIcon: classNames?.defaultIcon,\n\t\t\t\t\t\ticonContainer: cnMerge(\n\t\t\t\t\t\t\ticon?.iconType === \"nextIcon\" && \"rotate-180\",\n\t\t\t\t\t\t\tclassNames?.iconContainer\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t\ticon={icon?.icon}\n\t\t\t\t/>\n\n\t\t\t\t<CarouselButton\n\t\t\t\t\tvariant=\"next\"\n\t\t\t\t\tclassNames={{\n\t\t\t\t\t\tdefaultIcon: classNames?.defaultIcon,\n\t\t\t\t\t\ticonContainer: cnMerge(\n\t\t\t\t\t\t\ticon?.iconType === \"prevIcon\" && \"rotate-180\",\n\t\t\t\t\t\t\tclassNames?.iconContainer\n\t\t\t\t\t\t),\n\t\t\t\t\t}}\n\t\t\t\t\ticon={icon?.icon}\n\t\t\t\t/>\n\n\t\t\t\t<Show.Otherwise>\n\t\t\t\t\t<CarouselButton\n\t\t\t\t\t\tvariant=\"prev\"\n\t\t\t\t\t\tclassNames={{\n\t\t\t\t\t\t\tdefaultIcon: classNames?.defaultIcon,\n\t\t\t\t\t\t\ticonContainer: classNames?.iconContainer,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ticon={icon?.prev}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<CarouselButton\n\t\t\t\t\t\tvariant=\"next\"\n\t\t\t\t\t\tclassNames={{\n\t\t\t\t\t\t\tdefaultIcon: classNames?.defaultIcon,\n\t\t\t\t\t\t\ticonContainer: classNames?.iconContainer,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ticon={icon?.next}\n\t\t\t\t\t/>\n\t\t\t\t</Show.Otherwise>\n\t\t\t</Show.Root>\n\t\t</div>\n\t);\n}\n\nexport function CarouselItemGroup<TArrayItem>(props: CarouselWrapperProps<TArrayItem>) {\n\tconst { children, className, each, render } = props;\n\n\tconst [ItemList] = getElementList(\"base\");\n\tconst currentSlide = useCarouselStoreContext((state) => state.currentSlide);\n\tconst images = useCarouselStoreContext((state) => each ?? (state.images as TArrayItem[]));\n\n\treturn (\n\t\t<ul\n\t\t\tdata-id=\"Carousel Image Wrapper\"\n\t\t\tclassName={cnMerge(\n\t\t\t\t`flex w-full shrink-0 snap-center [transform:translate3d(var(--translate-distance),0,0)]\n\t\t\t\t[transition:transform_800ms_ease]`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={\n\t\t\t\t{\n\t\t\t\t\t\"--translate-distance\": `-${currentSlide * 100}%`,\n\t\t\t\t} satisfies CssWithCustomProperties as CssWithCustomProperties\n\t\t\t}\n\t\t>\n\t\t\t{typeof render === \"function\" ? (\n\t\t\t\t<ItemList each={images} render={render} />\n\t\t\t) : (\n\t\t\t\t<ItemList each={images}>{children}</ItemList>\n\t\t\t)}\n\t\t</ul>\n\t);\n}\n\nexport function CarouselItem({ children, className, ...restOfProps }: OtherCarouselProps) {\n\treturn (\n\t\t<li\n\t\t\tclassName={cnMerge(\"flex w-full shrink-0 snap-center justify-center\", className)}\n\t\t\t{...restOfProps}\n\t\t>\n\t\t\t{children}\n\t\t</li>\n\t);\n}\n\nexport function CarouselCaption<TElement extends React.ElementType = \"div\">(\n\tprops: PolymorphicProps<TElement, OtherCarouselProps>\n) {\n\tconst { as: HtmlElement = \"div\", children, className } = props;\n\n\treturn (\n\t\t<HtmlElement data-id=\"Carousel Caption\" className={cnMerge(\"absolute z-10\", className)}>\n\t\t\t{children}\n\t\t</HtmlElement>\n\t);\n}\n\nexport function CarouselIndicatorGroup<TArrayItem>(props: CarouselWrapperProps<TArrayItem>) {\n\tconst { children, className, each, render } = props;\n\n\tconst images = useCarouselStoreContext((state) => each ?? (state.images as TArrayItem[]));\n\tconst [IndicatorList] = getElementList(\"base\");\n\n\treturn (\n\t\t<ul\n\t\t\tdata-id=\"Carousel Indicators\"\n\t\t\tclassName={cnMerge(\n\t\t\t\t\"absolute bottom-[25px] z-[2] flex w-full items-center justify-center gap-[15px]\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t>\n\t\t\t{typeof render === \"function\" ? (\n\t\t\t\t<IndicatorList each={images} render={render} />\n\t\t\t) : (\n\t\t\t\t<IndicatorList each={images}>{children}</IndicatorList>\n\t\t\t)}\n\t\t</ul>\n\t);\n}\n\nexport function CarouselIndicator(props: CarouselIndicatorProps) {\n\tconst { classNames, currentIndex } = props;\n\n\tconst {\n\t\tactions: { goToSlide },\n\t\tcurrentSlide,\n\t} = useCarouselStoreContext((state) => state);\n\n\treturn (\n\t\t<li className={cnMerge(\"inline-flex\", classNames?.base)}>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tonClick={() => goToSlide(currentIndex)}\n\t\t\t\tclassName={cnMerge(\n\t\t\t\t\t\"size-[6px] rounded-[50%]\",\n\t\t\t\t\tclassNames?.base,\n\t\t\t\t\tcurrentIndex === currentSlide && [\"w-[35px] rounded-[5px]\", classNames?.isActive]\n\t\t\t\t)}\n\t\t\t/>\n\t\t</li>\n\t);\n}\n","export { CarouselContextProvider as Root } from \"./carousel-store-context\";\nexport {\n\tCarouselContent as Content,\n\tCarouselControls as Controls,\n\tCarouselButton as Button,\n\tCarouselItem as Item,\n\tCarouselItemGroup as ItemGroup,\n\tCarouselCaption as Caption,\n\tCarouselIndicator as Indicator,\n\tCarouselIndicatorGroup as IndicatorGroup,\n} from \"./carousel\";\n"]}
@@ -1,16 +1,14 @@
1
- import * as React from 'react';
2
- import { DiscriminatedRenderProps } from '@zayne-labs/toolkit-react/utils';
3
- import { SuspenseWithBoundaryProps } from '../suspense-with-boundary/index.js';
4
- import '../../../types-CeWumkhm.js';
1
+ export { a as Await, d as AwaitError, c as AwaitPending, A as AwaitRoot, b as AwaitSuccess } from '../../../await-parts-BJ6C-y1f.js';
2
+ import 'react';
3
+ import '../../../getSlotMap-DTkxtGhd.js';
4
+ import '@zayne-labs/toolkit-type-helpers';
5
+ import '../../../types-mdfDDNrr.js';
6
+ import '../suspense-with-boundary/index.js';
5
7
 
6
- type RenderPropFn<TValue> = (result: TValue) => React.ReactNode;
7
- type AwaitProps<TValue> = AwaitInnerProps<TValue> & Pick<SuspenseWithBoundaryProps, "errorFallback" | "fallback"> & {
8
- withErrorBoundary?: boolean;
9
- };
10
- declare function Await<TValue>(props: AwaitProps<TValue>): React.JSX.Element;
11
- type AwaitInnerProps<TValue> = DiscriminatedRenderProps<React.ReactNode | RenderPropFn<TValue>> & {
12
- asChild?: boolean;
8
+ type AwaitContextType<TValue = unknown> = {
13
9
  promise: Promise<TValue>;
10
+ result: TValue;
14
11
  };
12
+ declare const useAwaitContext: <TValue>() => AwaitContextType<TValue>;
15
13
 
16
- export { Await, type AwaitInnerProps };
14
+ export { useAwaitContext };
@@ -1,27 +1,8 @@
1
- import { Slot } from '../../../chunk-2P3P5AXH.js';
2
- import { ErrorBoundary } from '../../../chunk-IREUBYDK.js';
3
- import '../../../chunk-IUEPHHGO.js';
1
+ export { await_parts_exports as Await, AwaitError, AwaitPending, AwaitRoot, AwaitSuccess, useAwaitContext } from '../../../chunk-Z6JJE4G6.js';
2
+ import '../../../chunk-N4274N5K.js';
3
+ import '../../../chunk-JC52CA2O.js';
4
+ import '../../../chunk-YO5LJ7ZJ.js';
5
+ import '../../../chunk-Y5VBSXZS.js';
4
6
  import '../../../chunk-PZ5AY32C.js';
5
- import * as React from 'react';
6
- import { Fragment, Suspense, use } from 'react';
7
- import { isFunction } from '@zayne-labs/toolkit-type-helpers';
8
-
9
- function Await(props) {
10
- const { errorFallback, fallback, withErrorBoundary = true, ...restOfProps } = props;
11
- const WithErrorBoundary = withErrorBoundary ? ErrorBoundary : Fragment;
12
- const errorBoundaryProps = Boolean(errorFallback) && { fallback: errorFallback };
13
- return /* @__PURE__ */ React.createElement(WithErrorBoundary, { ...errorBoundaryProps }, /* @__PURE__ */ React.createElement(Suspense, { fallback }, /* @__PURE__ */ React.createElement(AwaitInner, { ...restOfProps })));
14
- }
15
- function AwaitInner(props) {
16
- const { asChild, children, promise, render } = props;
17
- const result = use(promise);
18
- const Component = asChild ? Slot : Fragment;
19
- const slotProps = asChild && { promise, result };
20
- const selectedChildren = children ?? render;
21
- const resolvedChildren = isFunction(selectedChildren) ? selectedChildren(result) : selectedChildren;
22
- return /* @__PURE__ */ React.createElement(Component, { ...slotProps }, resolvedChildren);
23
- }
24
-
25
- export { Await };
26
7
  //# sourceMappingURL=index.js.map
27
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/common/await/await.tsx"],"names":["ReactFragment"],"mappings":";;;;;;;;AAmBO,SAAS,MAAc,KAA2B,EAAA;AACxD,EAAA,MAAM,EAAE,aAAe,EAAA,QAAA,EAAU,oBAAoB,IAAM,EAAA,GAAG,aAAgB,GAAA,KAAA;AAE9E,EAAM,MAAA,iBAAA,GAAoB,oBAAoB,aAAgB,GAAAA,QAAA;AAE9D,EAAA,MAAM,qBAAqB,OAAQ,CAAA,aAAa,CAAK,IAAA,EAAE,UAAU,aAAc,EAAA;AAE/E,EAAA,uBACE,KAAA,CAAA,aAAA,CAAA,iBAAA,EAAA,EAAmB,GAAG,kBAAA,EAAA,kBACrB,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EAAS,QACT,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,UAAY,EAAA,EAAA,GAAG,WAAa,EAAA,CAC9B,CACD,CAAA;AAEF;AAOA,SAAS,WAAmB,KAAgC,EAAA;AAC3D,EAAA,MAAM,EAAE,OAAA,EAAS,QAAU,EAAA,OAAA,EAAS,QAAW,GAAA,KAAA;AAE/C,EAAM,MAAA,MAAA,GAAS,IAAI,OAAO,CAAA;AAE1B,EAAM,MAAA,SAAA,GAAY,UAAU,IAAO,GAAAA,QAAA;AAEnC,EAAA,MAAM,SAAY,GAAA,OAAA,IAAW,EAAE,OAAA,EAAS,MAAO,EAAA;AAE/C,EAAA,MAAM,mBAAmB,QAAY,IAAA,MAAA;AAErC,EAAA,MAAM,mBAAmB,UAAW,CAAA,gBAAgB,CAAI,GAAA,gBAAA,CAAiB,MAAM,CAAI,GAAA,gBAAA;AAEnF,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,SAAA,EAAA,EAAW,GAAG,SAAA,EAAA,EAAY,gBAAiB,CAAA;AACpD","file":"index.js","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nimport type { DiscriminatedRenderProps } from \"@zayne-labs/toolkit-react/utils\";\nimport { isFunction } from \"@zayne-labs/toolkit-type-helpers\";\nimport { Fragment as ReactFragment, Suspense, use } from \"react\";\nimport { ErrorBoundary } from \"../error-boundary\";\nimport { Slot } from \"../slot\";\nimport type { SuspenseWithBoundaryProps } from \"../suspense-with-boundary\";\n\ntype RenderPropFn<TValue> = (result: TValue) => React.ReactNode;\n\ntype AwaitProps<TValue> = AwaitInnerProps<TValue>\n\t& Pick<SuspenseWithBoundaryProps, \"errorFallback\" | \"fallback\"> & {\n\t\twithErrorBoundary?: boolean;\n\t};\n\n// TODO - Add Support for Slot components\nexport function Await<TValue>(props: AwaitProps<TValue>) {\n\tconst { errorFallback, fallback, withErrorBoundary = true, ...restOfProps } = props;\n\n\tconst WithErrorBoundary = withErrorBoundary ? ErrorBoundary : ReactFragment;\n\n\tconst errorBoundaryProps = Boolean(errorFallback) && { fallback: errorFallback };\n\n\treturn (\n\t\t<WithErrorBoundary {...errorBoundaryProps}>\n\t\t\t<Suspense fallback={fallback}>\n\t\t\t\t<AwaitInner {...restOfProps} />\n\t\t\t</Suspense>\n\t\t</WithErrorBoundary>\n\t);\n}\n\nexport type AwaitInnerProps<TValue> = DiscriminatedRenderProps<React.ReactNode | RenderPropFn<TValue>> & {\n\tasChild?: boolean;\n\tpromise: Promise<TValue>;\n};\n\nfunction AwaitInner<TValue>(props: AwaitInnerProps<TValue>) {\n\tconst { asChild, children, promise, render } = props;\n\n\tconst result = use(promise);\n\n\tconst Component = asChild ? Slot : ReactFragment;\n\n\tconst slotProps = asChild && { promise, result };\n\n\tconst selectedChildren = children ?? render;\n\n\tconst resolvedChildren = isFunction(selectedChildren) ? selectedChildren(result) : selectedChildren;\n\n\treturn <Component {...slotProps}>{resolvedChildren}</Component>;\n}\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,41 +1,17 @@
1
- import { E as ErrorBoundaryProps } from '../../../types-CeWumkhm.js';
2
- export { F as FallbackProps } from '../../../types-CeWumkhm.js';
3
- import * as React from 'react';
4
- import { Component } from 'react';
1
+ export { E as ErrorBoundaryProps, F as FallbackProps } from '../../../types-mdfDDNrr.js';
2
+ export { E as ErrorBoundary } from '../../../error-boundary-BD0X61Sg.js';
3
+ import 'react';
5
4
 
6
- type ErrorBoundaryContext = {
5
+ type ErrorBoundaryContextType = {
7
6
  error: unknown;
8
7
  hasError: boolean;
9
8
  resetErrorBoundary: (...args: unknown[]) => void;
10
9
  };
11
- declare const useErrorBoundaryContext: () => ErrorBoundaryContext;
10
+ declare const useErrorBoundaryContext: () => ErrorBoundaryContextType;
12
11
 
13
12
  declare const useErrorBoundary: <TError extends Error>() => {
14
13
  resetBoundary: () => void;
15
14
  showBoundary: (error: TError) => void;
16
15
  };
17
16
 
18
- type ErrorBoundaryState = {
19
- error: Error;
20
- hasError: true;
21
- } | {
22
- error: null;
23
- hasError: false;
24
- };
25
- /**
26
- * Copied from react-error-boundary package
27
- * @see https://github.com/bvaughn/react-error-boundary
28
- */
29
- declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
30
- #private;
31
- constructor(props: ErrorBoundaryProps);
32
- static getDerivedStateFromError(error: Error): {
33
- error: Error;
34
- hasError: boolean;
35
- };
36
- componentDidCatch(error: Error, info: React.ErrorInfo): void;
37
- componentDidUpdate(prevProps: ErrorBoundaryProps, prevState: ErrorBoundaryState): void;
38
- render(): React.JSX.Element;
39
- }
40
-
41
- export { ErrorBoundary, type ErrorBoundaryContext, ErrorBoundaryProps, useErrorBoundary, useErrorBoundaryContext };
17
+ export { type ErrorBoundaryContextType, useErrorBoundary, useErrorBoundaryContext };
@@ -1,5 +1,4 @@
1
- export { ErrorBoundary, useErrorBoundary, useErrorBoundaryContext } from '../../../chunk-IREUBYDK.js';
2
- import '../../../chunk-IUEPHHGO.js';
1
+ export { ErrorBoundary, useErrorBoundary, useErrorBoundaryContext } from '../../../chunk-JC52CA2O.js';
3
2
  import '../../../chunk-PZ5AY32C.js';
4
3
  //# sourceMappingURL=index.js.map
5
4
  //# sourceMappingURL=index.js.map
@@ -1,24 +1,10 @@
1
- import * as React from 'react';
2
- import { DiscriminatedRenderProps, PolymorphicProps } from '@zayne-labs/toolkit-react/utils';
3
- import { Prettify } from '@zayne-labs/toolkit-type-helpers';
4
-
5
- type RenderPropFn<TArrayItem> = (item: TArrayItem, index: number, array: TArrayItem[]) => React.ReactNode;
6
- type ForRenderProps<TArrayItem> = DiscriminatedRenderProps<RenderPropFn<TArrayItem>>;
7
- type ForProps<TArrayItem> = Prettify<{
8
- each: TArrayItem[];
9
- fallback?: React.ReactNode;
10
- } & ForRenderProps<TArrayItem>>;
11
- type ForPropsWithNumber<TNumber> = Prettify<{
12
- each: TNumber;
13
- fallback?: React.ReactNode;
14
- } & ForRenderProps<TNumber>>;
15
- declare function For<TArrayItem>(props: ForProps<TArrayItem> | ForPropsWithNumber<TArrayItem>): React.ReactNode;
16
- type ForListProps<TArrayItem> = {
17
- className?: string;
18
- } & (ForProps<TArrayItem> | ForPropsWithNumber<TArrayItem>);
19
- declare function ForWithWrapper<TArrayItem, TElement extends React.ElementType = "ul">(props: PolymorphicProps<TElement, ForListProps<TArrayItem>>): React.JSX.Element;
1
+ import { F as For, a as ForWithWrapper } from '../../../for-8C6fFbN6.js';
2
+ export { b as ForRenderProps } from '../../../for-8C6fFbN6.js';
3
+ import 'react';
4
+ import '@zayne-labs/toolkit-react/utils';
5
+ import '@zayne-labs/toolkit-type-helpers';
20
6
 
21
7
  type GetElementListResult<TVariant extends "base" | "withWrapper"> = TVariant extends "base" ? [typeof For] : [typeof ForWithWrapper];
22
8
  declare const getElementList: <TVariant extends "base" | "withWrapper" = "withWrapper">(variant?: TVariant) => GetElementListResult<TVariant>;
23
9
 
24
- export { For, type ForRenderProps, ForWithWrapper, getElementList };
10
+ export { For, ForWithWrapper, getElementList };
@@ -0,0 +1,13 @@
1
+ export { E as ErrorBoundary } from '../../error-boundary-BD0X61Sg.js';
2
+ export { SuspenseWithBoundary } from './suspense-with-boundary/index.js';
3
+ export { a as Await } from '../../await-parts-BJ6C-y1f.js';
4
+ export { F as For, a as ForWithWrapper } from '../../for-8C6fFbN6.js';
5
+ export { Show } from './show/index.js';
6
+ export { Slot } from './slot/index.js';
7
+ export { Switch } from './switch/index.js';
8
+ export { Teleport } from './teleport/index.js';
9
+ import 'react';
10
+ import '../../types-mdfDDNrr.js';
11
+ import '../../getSlotMap-DTkxtGhd.js';
12
+ import '@zayne-labs/toolkit-type-helpers';
13
+ import '@zayne-labs/toolkit-react/utils';
@@ -0,0 +1,14 @@
1
+ import '../../chunk-CWUEUCR5.js';
2
+ export { SuspenseWithBoundary } from '../../chunk-MT2MQDK2.js';
3
+ export { switch_parts_exports as Switch } from '../../chunk-EYWTW54R.js';
4
+ export { Teleport } from '../../chunk-G5BNZM66.js';
5
+ export { await_parts_exports as Await } from '../../chunk-Z6JJE4G6.js';
6
+ import '../../chunk-N4274N5K.js';
7
+ export { ErrorBoundary } from '../../chunk-JC52CA2O.js';
8
+ export { For, ForWithWrapper } from '../../chunk-ZNL6YLIM.js';
9
+ export { show_parts_exports as Show } from '../../chunk-M7YXNGT6.js';
10
+ import '../../chunk-YO5LJ7ZJ.js';
11
+ export { slot_parts_exports as Slot } from '../../chunk-Y5VBSXZS.js';
12
+ import '../../chunk-PZ5AY32C.js';
13
+ //# sourceMappingURL=index.js.map
14
+ //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { show_parts_exports as Show, ShowContent, ShowFallback, ShowRoot } from '../../../chunk-V5DSTESN.js';
2
- import '../../../chunk-IUEPHHGO.js';
1
+ export { show_parts_exports as Show, ShowContent, ShowFallback, ShowRoot } from '../../../chunk-M7YXNGT6.js';
2
+ import '../../../chunk-YO5LJ7ZJ.js';
3
3
  import '../../../chunk-PZ5AY32C.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -2,7 +2,11 @@ import * as React from 'react';
2
2
  import { InferProps } from '@zayne-labs/toolkit-react/utils';
3
3
 
4
4
  type SlotProps = InferProps<HTMLElement>;
5
- declare function Slottable({ children }: Pick<SlotProps, "children">): React.ReactNode;
6
- declare function Slot(props: SlotProps): React.JSX.Element | null;
5
+ declare function SlotSlottable({ children }: Pick<SlotProps, "children">): React.ReactNode;
6
+ declare function SlotRoot(props: SlotProps): React.JSX.Element | null;
7
7
 
8
- export { Slot, Slottable };
8
+ declare namespace slotParts {
9
+ export { SlotRoot as Root, SlotSlottable as Slottable };
10
+ }
11
+
12
+ export { slotParts as Slot, SlotRoot, SlotSlottable };
@@ -1,4 +1,4 @@
1
- export { Slot, Slottable } from '../../../chunk-2P3P5AXH.js';
1
+ export { slot_parts_exports as Slot, SlotRoot, SlotSlottable } from '../../../chunk-Y5VBSXZS.js';
2
2
  import '../../../chunk-PZ5AY32C.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,11 +1,11 @@
1
1
  import * as React$1 from 'react';
2
- import { E as ErrorBoundaryProps } from '../../../types-CeWumkhm.js';
2
+ import { E as ErrorBoundaryProps } from '../../../types-mdfDDNrr.js';
3
3
 
4
4
  type SuspenseWithBoundaryProps = {
5
5
  children: React.ReactNode;
6
6
  errorFallback?: ErrorBoundaryProps["fallback"];
7
7
  fallback?: React.ReactNode;
8
8
  };
9
- declare function SuspenseWithBoundaryRoot(props: SuspenseWithBoundaryProps): React$1.JSX.Element;
9
+ declare function SuspenseWithBoundary(props: SuspenseWithBoundaryProps): React$1.JSX.Element;
10
10
 
11
- export { type SuspenseWithBoundaryProps, SuspenseWithBoundaryRoot };
11
+ export { SuspenseWithBoundary, type SuspenseWithBoundaryProps };
@@ -1,15 +1,5 @@
1
- import { ErrorBoundary } from '../../../chunk-IREUBYDK.js';
2
- import '../../../chunk-IUEPHHGO.js';
1
+ export { SuspenseWithBoundary } from '../../../chunk-MT2MQDK2.js';
2
+ import '../../../chunk-JC52CA2O.js';
3
3
  import '../../../chunk-PZ5AY32C.js';
4
- import { Suspense } from 'react';
5
-
6
- function SuspenseWithBoundaryRoot(props) {
7
- const { children, errorFallback, fallback } = props;
8
- const errorBoundaryProps = Boolean(errorFallback) && { fallback: errorFallback };
9
- const suspenseProps = Boolean(fallback) && { fallback };
10
- return /* @__PURE__ */ React.createElement(ErrorBoundary, { ...errorBoundaryProps }, /* @__PURE__ */ React.createElement(Suspense, { ...suspenseProps }, children));
11
- }
12
-
13
- export { SuspenseWithBoundaryRoot };
14
4
  //# sourceMappingURL=index.js.map
15
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/common/suspense-with-boundary/suspense-with-boundary.tsx"],"names":[],"mappings":";;;;;AASO,SAAS,yBAAyB,KAAkC,EAAA;AAC1E,EAAA,MAAM,EAAE,QAAA,EAAU,aAAe,EAAA,QAAA,EAAa,GAAA,KAAA;AAE9C,EAAA,MAAM,qBAAqB,OAAQ,CAAA,aAAa,CAAK,IAAA,EAAE,UAAU,aAAc,EAAA;AAC/E,EAAA,MAAM,aAAgB,GAAA,OAAA,CAAQ,QAAQ,CAAA,IAAK,EAAE,QAAS,EAAA;AAEtD,EACC,uBAAA,KAAA,CAAA,aAAA,CAAC,iBAAe,GAAG,kBAAA,EAAA,sCACjB,QAAU,EAAA,EAAA,GAAG,aAAgB,EAAA,EAAA,QAAS,CACxC,CAAA;AAEF","file":"index.js","sourcesContent":["import { Suspense } from \"react\";\nimport { ErrorBoundary, type ErrorBoundaryProps } from \"../error-boundary\";\n\nexport type SuspenseWithBoundaryProps = {\n\tchildren: React.ReactNode;\n\terrorFallback?: ErrorBoundaryProps[\"fallback\"];\n\tfallback?: React.ReactNode;\n};\n\nexport function SuspenseWithBoundaryRoot(props: SuspenseWithBoundaryProps) {\n\tconst { children, errorFallback, fallback } = props;\n\n\tconst errorBoundaryProps = Boolean(errorFallback) && { fallback: errorFallback };\n\tconst suspenseProps = Boolean(fallback) && { fallback };\n\n\treturn (\n\t\t<ErrorBoundary {...errorBoundaryProps}>\n\t\t\t<Suspense {...suspenseProps}>{children}</Suspense>\n\t\t</ErrorBoundary>\n\t);\n}\n"]}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -1,42 +1,5 @@
1
- import { getSingleSlot, getRegularChildren } from '../../../chunk-IUEPHHGO.js';
2
- import { __export } from '../../../chunk-PZ5AY32C.js';
3
- import 'react';
4
- import { isFunction } from '@zayne-labs/toolkit-type-helpers';
5
-
6
- var defaultValueSymbol = Symbol("default-value");
7
- function SwitchRoot(props) {
8
- const { children, value = defaultValueSymbol } = props;
9
- const defaultCase = getSingleSlot(children, SwitchDefault, {
10
- errorMessage: "Only one <Switch.Default> component is allowed",
11
- throwOnMultipleSlotMatch: true
12
- });
13
- const childrenCasesArray = getRegularChildren(children, SwitchDefault);
14
- const matchedCase = childrenCasesArray.find((child) => {
15
- if (value === defaultValueSymbol) {
16
- return Boolean(child.props.when);
17
- }
18
- return child.props.when === value;
19
- });
20
- return matchedCase ?? defaultCase;
21
- }
22
- function SwitchMatch(props) {
23
- const { children, when } = props;
24
- const resolvedChildren = isFunction(children) ? children(when) : children;
25
- return resolvedChildren;
26
- }
27
- function SwitchDefault({ children }) {
28
- return children;
29
- }
30
- SwitchDefault.slotSymbol = Symbol("switch-default");
31
-
32
- // src/components/common/switch/switch-parts.ts
33
- var switch_parts_exports = {};
34
- __export(switch_parts_exports, {
35
- Default: () => SwitchDefault,
36
- Match: () => SwitchMatch,
37
- Root: () => SwitchRoot
38
- });
39
-
40
- export { switch_parts_exports as Switch, SwitchDefault, SwitchMatch, SwitchRoot };
1
+ export { switch_parts_exports as Switch, SwitchDefault, SwitchMatch, SwitchRoot } from '../../../chunk-EYWTW54R.js';
2
+ import '../../../chunk-YO5LJ7ZJ.js';
3
+ import '../../../chunk-PZ5AY32C.js';
41
4
  //# sourceMappingURL=index.js.map
42
5
  //# sourceMappingURL=index.js.map