@fire-spark/react-ui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,333 @@
1
+ import { t as cn } from "./cn-Ccejyh36.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/checkout.tsx
4
+ const Checkout = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
5
+ ref,
6
+ className: cn("@container/checkout text-foreground flex min-h-0 flex-1 flex-col", className),
7
+ ...props
8
+ });
9
+ Checkout.displayName = "Checkout";
10
+ const CheckoutMain = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
11
+ ref,
12
+ className: cn("mx-auto grid w-full flex-1 gap-6 sm:px-4 py-2 @min-[48rem]/checkout:grid-cols-[1fr_22.5rem] @min-[48rem]/checkout:items-start", className),
13
+ ...props
14
+ });
15
+ CheckoutMain.displayName = "CheckoutMain";
16
+ const CheckoutAside = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("aside", {
17
+ ref,
18
+ className: cn("bg-card flex flex-col gap-4 min-w-90 rounded-xl border p-4 @min-[48rem]/checkout:sticky @min-[48rem]/checkout:top-4", className),
19
+ ...props
20
+ });
21
+ CheckoutAside.displayName = "CheckoutAside";
22
+ const CheckoutNav = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("nav", {
23
+ ref,
24
+ className: cn("bg-background relative flex h-16 items-center justify-center px-4", className),
25
+ ...props
26
+ });
27
+ CheckoutNav.displayName = "CheckoutNav";
28
+ const CheckoutNavBrand = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
29
+ ref,
30
+ className: cn("text-foreground text-lg font-bold tracking-tight", className),
31
+ ...props
32
+ });
33
+ CheckoutNavBrand.displayName = "CheckoutNavBrand";
34
+ const CheckoutHeader = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
35
+ ref,
36
+ className: cn("mx-auto flex w-full flex-col gap-3 sm:px-4 sm:pt-4", className),
37
+ ...props
38
+ });
39
+ CheckoutHeader.displayName = "CheckoutHeader";
40
+ const CheckoutBack = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
41
+ ref,
42
+ type,
43
+ className: cn("text-foreground hover:text-foreground/80 inline-flex w-fit items-center gap-1.5 text-sm font-medium transition-colors", className),
44
+ ...props
45
+ });
46
+ CheckoutBack.displayName = "CheckoutBack";
47
+ const CheckoutTitle = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("h1", {
48
+ ref,
49
+ className: cn("text-2xl font-bold tracking-tight uppercase", className),
50
+ ...props
51
+ });
52
+ CheckoutTitle.displayName = "CheckoutTitle";
53
+ const CheckoutDescription = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("p", {
54
+ ref,
55
+ className: cn("text-muted-foreground text-sm", className),
56
+ ...props
57
+ });
58
+ CheckoutDescription.displayName = "CheckoutDescription";
59
+ const CheckoutSection = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("section", {
60
+ ref,
61
+ className: cn("bg-card flex flex-col gap-3 rounded-xl border p-4", className),
62
+ ...props
63
+ });
64
+ CheckoutSection.displayName = "CheckoutSection";
65
+ const CheckoutSectionHeader = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
66
+ ref,
67
+ className: cn("flex items-center justify-between gap-2", className),
68
+ ...props
69
+ });
70
+ CheckoutSectionHeader.displayName = "CheckoutSectionHeader";
71
+ const CheckoutSectionTitle = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("h2", {
72
+ ref,
73
+ className: cn("text-sm font-semibold tracking-tight", className),
74
+ ...props
75
+ });
76
+ CheckoutSectionTitle.displayName = "CheckoutSectionTitle";
77
+ const CheckoutSectionAction = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
78
+ ref,
79
+ type,
80
+ className: cn("text-primary hover:text-primary/90 text-sm font-medium transition-colors", className),
81
+ ...props
82
+ });
83
+ CheckoutSectionAction.displayName = "CheckoutSectionAction";
84
+ const CheckoutRow = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
85
+ ref,
86
+ className: cn("flex items-center gap-3", className),
87
+ ...props
88
+ });
89
+ CheckoutRow.displayName = "CheckoutRow";
90
+ const CheckoutRowMedia = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
91
+ ref,
92
+ className: cn("bg-muted relative size-12 shrink-0 overflow-hidden rounded-lg", className),
93
+ ...props
94
+ });
95
+ CheckoutRowMedia.displayName = "CheckoutRowMedia";
96
+ const CheckoutRowContent = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
97
+ ref,
98
+ className: cn("flex min-w-0 flex-1 flex-col gap-0.5", className),
99
+ ...props
100
+ });
101
+ CheckoutRowContent.displayName = "CheckoutRowContent";
102
+ const CheckoutRowTitle = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
103
+ ref,
104
+ className: cn("truncate text-sm font-semibold", className),
105
+ ...props
106
+ });
107
+ CheckoutRowTitle.displayName = "CheckoutRowTitle";
108
+ const CheckoutRowDescription = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
109
+ ref,
110
+ className: cn("text-muted-foreground truncate text-sm", className),
111
+ ...props
112
+ });
113
+ CheckoutRowDescription.displayName = "CheckoutRowDescription";
114
+ const CheckoutRowAside = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
115
+ ref,
116
+ className: cn("flex shrink-0 items-center gap-2", className),
117
+ ...props
118
+ });
119
+ CheckoutRowAside.displayName = "CheckoutRowAside";
120
+ const CheckoutRowChevron = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
121
+ ref,
122
+ className: cn("text-muted-foreground inline-flex size-5 items-center justify-center", className),
123
+ "aria-hidden": true,
124
+ ...props
125
+ });
126
+ CheckoutRowChevron.displayName = "CheckoutRowChevron";
127
+ const CheckoutFulfillment = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
128
+ ref,
129
+ role: "radiogroup",
130
+ className: cn("bg-muted inline-flex w-fit items-center rounded-full p-1", className),
131
+ ...props
132
+ });
133
+ CheckoutFulfillment.displayName = "CheckoutFulfillment";
134
+ const CheckoutFulfillmentOption = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
135
+ ref,
136
+ type,
137
+ role: "radio",
138
+ className: cn("text-muted-foreground data-[state=checked]:bg-background data-[state=checked]:text-foreground inline-flex items-center rounded-full px-3 py-1.5 text-sm font-medium transition-colors data-[state=checked]:shadow-sm", className),
139
+ ...props
140
+ });
141
+ CheckoutFulfillmentOption.displayName = "CheckoutFulfillmentOption";
142
+ const CheckoutPayment = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
143
+ ref,
144
+ role: "radiogroup",
145
+ className: cn("flex flex-wrap items-center gap-4", className),
146
+ ...props
147
+ });
148
+ CheckoutPayment.displayName = "CheckoutPayment";
149
+ const CheckoutPaymentOption = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
150
+ ref,
151
+ type,
152
+ role: "radio",
153
+ className: cn("inline-flex items-center gap-2 text-sm font-medium transition-colors", className),
154
+ ...props
155
+ });
156
+ CheckoutPaymentOption.displayName = "CheckoutPaymentOption";
157
+ const CheckoutPaymentPanel = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
158
+ ref,
159
+ className: cn("bg-muted/40 flex flex-col gap-3 rounded-lg border p-3", className),
160
+ ...props
161
+ });
162
+ CheckoutPaymentPanel.displayName = "CheckoutPaymentPanel";
163
+ const CheckoutPaymentPanelHeader = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
164
+ ref,
165
+ className: cn("flex items-center justify-between gap-2", className),
166
+ ...props
167
+ });
168
+ CheckoutPaymentPanelHeader.displayName = "CheckoutPaymentPanelHeader";
169
+ const CheckoutOption = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
170
+ ref,
171
+ className: cn("flex items-center justify-between gap-3", className),
172
+ ...props
173
+ });
174
+ CheckoutOption.displayName = "CheckoutOption";
175
+ const CheckoutOptionLabel = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
176
+ ref,
177
+ className: cn("flex min-w-0 items-center gap-2 text-sm", className),
178
+ ...props
179
+ });
180
+ CheckoutOptionLabel.displayName = "CheckoutOptionLabel";
181
+ const CheckoutOptionControl = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
182
+ ref,
183
+ className: cn("flex shrink-0 items-center", className),
184
+ ...props
185
+ });
186
+ CheckoutOptionControl.displayName = "CheckoutOptionControl";
187
+ const CheckoutPromo = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
188
+ ref,
189
+ type,
190
+ className: cn("hover:bg-muted/60 flex w-full items-center gap-3 rounded-lg border px-3 py-3 text-left text-sm transition-colors", className),
191
+ ...props
192
+ });
193
+ CheckoutPromo.displayName = "CheckoutPromo";
194
+ const CheckoutPromoIcon = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
195
+ ref,
196
+ className: cn("inline-flex size-5 shrink-0 items-center justify-center", className),
197
+ "aria-hidden": true,
198
+ ...props
199
+ });
200
+ CheckoutPromoIcon.displayName = "CheckoutPromoIcon";
201
+ const CheckoutPromoLabel = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
202
+ ref,
203
+ className: cn("min-w-0 flex-1 font-medium", className),
204
+ ...props
205
+ });
206
+ CheckoutPromoLabel.displayName = "CheckoutPromoLabel";
207
+ const CheckoutPromoChevron = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
208
+ ref,
209
+ className: cn("text-muted-foreground inline-flex size-5 items-center justify-center", className),
210
+ "aria-hidden": true,
211
+ ...props
212
+ });
213
+ CheckoutPromoChevron.displayName = "CheckoutPromoChevron";
214
+ const CheckoutTip = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
215
+ ref,
216
+ className: cn("flex flex-col gap-2", className),
217
+ ...props
218
+ });
219
+ CheckoutTip.displayName = "CheckoutTip";
220
+ const CheckoutTipList = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
221
+ ref,
222
+ className: cn("flex flex-wrap items-center gap-2", className),
223
+ ...props
224
+ });
225
+ CheckoutTipList.displayName = "CheckoutTipList";
226
+ const CheckoutTipOption = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
227
+ ref,
228
+ type,
229
+ className: cn("text-muted-foreground data-[state=checked]:bg-background data-[state=checked]:text-foreground inline-flex items-center rounded-full border px-3 py-1.5 text-sm font-medium transition-colors data-[state=checked]:shadow-sm", className),
230
+ ...props
231
+ });
232
+ CheckoutTipOption.displayName = "CheckoutTipOption";
233
+ const CheckoutTipCustom = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
234
+ ref,
235
+ className: cn("min-w-0 flex-1", className),
236
+ ...props
237
+ });
238
+ CheckoutTipCustom.displayName = "CheckoutTipCustom";
239
+ const CheckoutFeeList = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
240
+ ref,
241
+ className: cn("flex flex-col gap-2", className),
242
+ ...props
243
+ });
244
+ CheckoutFeeList.displayName = "CheckoutFeeList";
245
+ const CheckoutFeeRow = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
246
+ ref,
247
+ className: cn("flex items-center justify-between gap-3 text-sm", className),
248
+ ...props
249
+ });
250
+ CheckoutFeeRow.displayName = "CheckoutFeeRow";
251
+ const CheckoutFeeLabel = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
252
+ ref,
253
+ className: cn("inline-flex items-center gap-1", className),
254
+ ...props
255
+ });
256
+ CheckoutFeeLabel.displayName = "CheckoutFeeLabel";
257
+ const CheckoutFeeValue = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
258
+ ref,
259
+ className: cn("tabular-nums", className),
260
+ ...props
261
+ });
262
+ CheckoutFeeValue.displayName = "CheckoutFeeValue";
263
+ const CheckoutFeeInfo = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
264
+ ref,
265
+ type,
266
+ className: cn("text-muted-foreground hover:text-foreground inline-flex size-4 items-center justify-center rounded-full", className),
267
+ ...props
268
+ });
269
+ CheckoutFeeInfo.displayName = "CheckoutFeeInfo";
270
+ const CheckoutBanner = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
271
+ ref,
272
+ className: cn("flex items-center gap-2 rounded-lg px-3 py-2.5 text-sm font-medium", className),
273
+ ...props
274
+ });
275
+ CheckoutBanner.displayName = "CheckoutBanner";
276
+ const CheckoutFooter = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
277
+ ref,
278
+ className: cn("flex flex-col gap-3", className),
279
+ ...props
280
+ });
281
+ CheckoutFooter.displayName = "CheckoutFooter";
282
+ const CheckoutSubmit = ({ ref, className, type = "button", ...props }) => /* @__PURE__ */ jsx("button", {
283
+ ref,
284
+ type,
285
+ className: cn("bg-foreground text-background hover:bg-foreground/90 flex w-full items-center justify-between gap-2 rounded-full px-4 py-3 text-sm font-semibold transition-colors disabled:pointer-events-none disabled:opacity-50", className),
286
+ ...props
287
+ });
288
+ CheckoutSubmit.displayName = "CheckoutSubmit";
289
+ const CheckoutStore = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
290
+ ref,
291
+ className: cn("flex items-center gap-3", className),
292
+ ...props
293
+ });
294
+ CheckoutStore.displayName = "CheckoutStore";
295
+ const CheckoutStoreMedia = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
296
+ ref,
297
+ className: cn("bg-muted relative size-10 shrink-0 overflow-hidden rounded-full", className),
298
+ ...props
299
+ });
300
+ CheckoutStoreMedia.displayName = "CheckoutStoreMedia";
301
+ const CheckoutStoreImage = ({ ref, className, alt = "", ...props }) => /* @__PURE__ */ jsx("img", {
302
+ ref,
303
+ alt,
304
+ className: cn("size-full object-cover", className),
305
+ ...props
306
+ });
307
+ CheckoutStoreImage.displayName = "CheckoutStoreImage";
308
+ const CheckoutStoreContent = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
309
+ ref,
310
+ className: cn("flex min-w-0 flex-1 flex-col", className),
311
+ ...props
312
+ });
313
+ CheckoutStoreContent.displayName = "CheckoutStoreContent";
314
+ const CheckoutStoreTitle = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
315
+ ref,
316
+ className: cn("truncate text-sm font-semibold", className),
317
+ ...props
318
+ });
319
+ CheckoutStoreTitle.displayName = "CheckoutStoreTitle";
320
+ const CheckoutStoreDescription = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("span", {
321
+ ref,
322
+ className: cn("text-muted-foreground truncate text-xs", className),
323
+ ...props
324
+ });
325
+ CheckoutStoreDescription.displayName = "CheckoutStoreDescription";
326
+ const CheckoutColumn = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
327
+ ref,
328
+ className: cn("flex min-w-0 flex-col gap-4", className),
329
+ ...props
330
+ });
331
+ CheckoutColumn.displayName = "CheckoutColumn";
332
+ //#endregion
333
+ export { Checkout, CheckoutAside, CheckoutBack, CheckoutBanner, CheckoutColumn, CheckoutDescription, CheckoutFeeInfo, CheckoutFeeLabel, CheckoutFeeList, CheckoutFeeRow, CheckoutFeeValue, CheckoutFooter, CheckoutFulfillment, CheckoutFulfillmentOption, CheckoutHeader, CheckoutMain, CheckoutNav, CheckoutNavBrand, CheckoutOption, CheckoutOptionControl, CheckoutOptionLabel, CheckoutPayment, CheckoutPaymentOption, CheckoutPaymentPanel, CheckoutPaymentPanelHeader, CheckoutPromo, CheckoutPromoChevron, CheckoutPromoIcon, CheckoutPromoLabel, CheckoutRow, CheckoutRowAside, CheckoutRowChevron, CheckoutRowContent, CheckoutRowDescription, CheckoutRowMedia, CheckoutRowTitle, CheckoutSection, CheckoutSectionAction, CheckoutSectionHeader, CheckoutSectionTitle, CheckoutStore, CheckoutStoreContent, CheckoutStoreDescription, CheckoutStoreImage, CheckoutStoreMedia, CheckoutStoreTitle, CheckoutSubmit, CheckoutTip, CheckoutTipCustom, CheckoutTipList, CheckoutTipOption, CheckoutTitle };
@@ -0,0 +1,8 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ //#region src/lib/cn.ts
4
+ function cn(...inputs) {
5
+ return twMerge(clsx(inputs));
6
+ }
7
+ //#endregion
8
+ export { cn as t };
@@ -0,0 +1,8 @@
1
+ import { Cart, CartAction, CartBanner, CartBody, CartDescription, CartEmpty, CartEmptyDescription, CartEmptyTitle, CartFooter, CartHeader, CartItem, CartItemAction, CartItemActions, CartItemAnchorPrice, CartItemAside, CartItemContent, CartItemDescription, CartItemHeader, CartItemImage, CartItemImageSlot, CartItemMedia, CartItemMeta, CartItemPrice, CartItemTitle, CartList, CartOption, CartOptionControl, CartOptionLabel, CartQuantity, CartQuantityButton, CartQuantityValue, CartScroller, CartSection, CartSectionHeader, CartSectionTitle, CartStore, CartStoreContent, CartStoreDescription, CartStoreImage, CartStoreMedia, CartStoreTitle, CartSubmit, CartSummary, CartSummaryLabel, CartSummaryRow, CartSummaryValue, CartTitle } from "./cart.js";
2
+ import { CategoryNav, CategoryNavExtra, CategoryNavItem, CategoryNavLink, CategoryNavList, CategoryNavOrientation } from "./category-nav.js";
3
+ import { Category, CategoryContent, CategoryDescription, CategoryEmpty, CategoryEmptyContent, CategoryEmptyDescription, CategoryEmptyHeader, CategoryEmptyMedia, CategoryEmptyTitle, CategoryGrid, CategoryGridItem, CategoryHeader, CategoryList, CategoryListItem, CategoryTitle } from "./category.js";
4
+ import { Checkout, CheckoutAside, CheckoutBack, CheckoutBanner, CheckoutColumn, CheckoutDescription, CheckoutFeeInfo, CheckoutFeeLabel, CheckoutFeeList, CheckoutFeeRow, CheckoutFeeValue, CheckoutFooter, CheckoutFulfillment, CheckoutFulfillmentOption, CheckoutHeader, CheckoutMain, CheckoutNav, CheckoutNavBrand, CheckoutOption, CheckoutOptionControl, CheckoutOptionLabel, CheckoutPayment, CheckoutPaymentOption, CheckoutPaymentPanel, CheckoutPaymentPanelHeader, CheckoutPromo, CheckoutPromoChevron, CheckoutPromoIcon, CheckoutPromoLabel, CheckoutRow, CheckoutRowAside, CheckoutRowChevron, CheckoutRowContent, CheckoutRowDescription, CheckoutRowMedia, CheckoutRowTitle, CheckoutSection, CheckoutSectionAction, CheckoutSectionHeader, CheckoutSectionTitle, CheckoutStore, CheckoutStoreContent, CheckoutStoreDescription, CheckoutStoreImage, CheckoutStoreMedia, CheckoutStoreTitle, CheckoutSubmit, CheckoutTip, CheckoutTipCustom, CheckoutTipList, CheckoutTipOption, CheckoutTitle } from "./checkout.js";
5
+ import { Menu, MenuEmpty, MenuEmptyContent, MenuEmptyDescription, MenuEmptyHeader, MenuEmptyMedia, MenuEmptyTitle } from "./menu.js";
6
+ import { UseActiveCategoryOptions, useActiveCategory } from "./use-active-category.js";
7
+ import { ProductCard, ProductCardAddButton, ProductCardAnchorPrice, ProductCardBadge, ProductCardContent, ProductCardDescription, ProductCardDiscount, ProductCardFooter, ProductCardHeader, ProductCardImage, ProductCardImageSlot, ProductCardMedia, ProductCardMeta, ProductCardPrice, ProductCardRating, ProductCardTitle } from "./product-card.js";
8
+ export { Cart, CartAction, CartBanner, CartBody, CartDescription, CartEmpty, CartEmptyDescription, CartEmptyTitle, CartFooter, CartHeader, CartItem, CartItemAction, CartItemActions, CartItemAnchorPrice, CartItemAside, CartItemContent, CartItemDescription, CartItemHeader, CartItemImage, CartItemImageSlot, CartItemMedia, CartItemMeta, CartItemPrice, CartItemTitle, CartList, CartOption, CartOptionControl, CartOptionLabel, CartQuantity, CartQuantityButton, CartQuantityValue, CartScroller, CartSection, CartSectionHeader, CartSectionTitle, CartStore, CartStoreContent, CartStoreDescription, CartStoreImage, CartStoreMedia, CartStoreTitle, CartSubmit, CartSummary, CartSummaryLabel, CartSummaryRow, CartSummaryValue, CartTitle, Category, CategoryContent, CategoryDescription, CategoryEmpty, CategoryEmptyContent, CategoryEmptyDescription, CategoryEmptyHeader, CategoryEmptyMedia, CategoryEmptyTitle, CategoryGrid, CategoryGridItem, CategoryHeader, CategoryList, CategoryListItem, CategoryNav, CategoryNavExtra, CategoryNavItem, CategoryNavLink, CategoryNavList, type CategoryNavOrientation, CategoryTitle, Checkout, CheckoutAside, CheckoutBack, CheckoutBanner, CheckoutColumn, CheckoutDescription, CheckoutFeeInfo, CheckoutFeeLabel, CheckoutFeeList, CheckoutFeeRow, CheckoutFeeValue, CheckoutFooter, CheckoutFulfillment, CheckoutFulfillmentOption, CheckoutHeader, CheckoutMain, CheckoutNav, CheckoutNavBrand, CheckoutOption, CheckoutOptionControl, CheckoutOptionLabel, CheckoutPayment, CheckoutPaymentOption, CheckoutPaymentPanel, CheckoutPaymentPanelHeader, CheckoutPromo, CheckoutPromoChevron, CheckoutPromoIcon, CheckoutPromoLabel, CheckoutRow, CheckoutRowAside, CheckoutRowChevron, CheckoutRowContent, CheckoutRowDescription, CheckoutRowMedia, CheckoutRowTitle, CheckoutSection, CheckoutSectionAction, CheckoutSectionHeader, CheckoutSectionTitle, CheckoutStore, CheckoutStoreContent, CheckoutStoreDescription, CheckoutStoreImage, CheckoutStoreMedia, CheckoutStoreTitle, CheckoutSubmit, CheckoutTip, CheckoutTipCustom, CheckoutTipList, CheckoutTipOption, CheckoutTitle, Menu, MenuEmpty, MenuEmptyContent, MenuEmptyDescription, MenuEmptyHeader, MenuEmptyMedia, MenuEmptyTitle, ProductCard, ProductCardAddButton, ProductCardAnchorPrice, ProductCardBadge, ProductCardContent, ProductCardDescription, ProductCardDiscount, ProductCardFooter, ProductCardHeader, ProductCardImage, ProductCardImageSlot, ProductCardMedia, ProductCardMeta, ProductCardPrice, ProductCardRating, ProductCardTitle, type UseActiveCategoryOptions, useActiveCategory };
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ import { Category, CategoryContent, CategoryDescription, CategoryEmpty, CategoryEmptyContent, CategoryEmptyDescription, CategoryEmptyHeader, CategoryEmptyMedia, CategoryEmptyTitle, CategoryGrid, CategoryGridItem, CategoryHeader, CategoryList, CategoryListItem, CategoryTitle } from "./category.js";
2
+ import { Menu, MenuEmpty, MenuEmptyContent, MenuEmptyDescription, MenuEmptyHeader, MenuEmptyMedia, MenuEmptyTitle } from "./menu.js";
3
+ import { CategoryNav, CategoryNavExtra, CategoryNavItem, CategoryNavLink, CategoryNavList } from "./category-nav.js";
4
+ import { useActiveCategory } from "./use-active-category.js";
5
+ import { ProductCard, ProductCardAddButton, ProductCardAnchorPrice, ProductCardBadge, ProductCardContent, ProductCardDescription, ProductCardDiscount, ProductCardFooter, ProductCardHeader, ProductCardImage, ProductCardImageSlot, ProductCardMedia, ProductCardMeta, ProductCardPrice, ProductCardRating, ProductCardTitle } from "./product-card.js";
6
+ import { Cart, CartAction, CartBanner, CartBody, CartDescription, CartEmpty, CartEmptyDescription, CartEmptyTitle, CartFooter, CartHeader, CartItem, CartItemAction, CartItemActions, CartItemAnchorPrice, CartItemAside, CartItemContent, CartItemDescription, CartItemHeader, CartItemImage, CartItemImageSlot, CartItemMedia, CartItemMeta, CartItemPrice, CartItemTitle, CartList, CartOption, CartOptionControl, CartOptionLabel, CartQuantity, CartQuantityButton, CartQuantityValue, CartScroller, CartSection, CartSectionHeader, CartSectionTitle, CartStore, CartStoreContent, CartStoreDescription, CartStoreImage, CartStoreMedia, CartStoreTitle, CartSubmit, CartSummary, CartSummaryLabel, CartSummaryRow, CartSummaryValue, CartTitle } from "./cart.js";
7
+ import { Checkout, CheckoutAside, CheckoutBack, CheckoutBanner, CheckoutColumn, CheckoutDescription, CheckoutFeeInfo, CheckoutFeeLabel, CheckoutFeeList, CheckoutFeeRow, CheckoutFeeValue, CheckoutFooter, CheckoutFulfillment, CheckoutFulfillmentOption, CheckoutHeader, CheckoutMain, CheckoutNav, CheckoutNavBrand, CheckoutOption, CheckoutOptionControl, CheckoutOptionLabel, CheckoutPayment, CheckoutPaymentOption, CheckoutPaymentPanel, CheckoutPaymentPanelHeader, CheckoutPromo, CheckoutPromoChevron, CheckoutPromoIcon, CheckoutPromoLabel, CheckoutRow, CheckoutRowAside, CheckoutRowChevron, CheckoutRowContent, CheckoutRowDescription, CheckoutRowMedia, CheckoutRowTitle, CheckoutSection, CheckoutSectionAction, CheckoutSectionHeader, CheckoutSectionTitle, CheckoutStore, CheckoutStoreContent, CheckoutStoreDescription, CheckoutStoreImage, CheckoutStoreMedia, CheckoutStoreTitle, CheckoutSubmit, CheckoutTip, CheckoutTipCustom, CheckoutTipList, CheckoutTipOption, CheckoutTitle } from "./checkout.js";
8
+ export { Cart, CartAction, CartBanner, CartBody, CartDescription, CartEmpty, CartEmptyDescription, CartEmptyTitle, CartFooter, CartHeader, CartItem, CartItemAction, CartItemActions, CartItemAnchorPrice, CartItemAside, CartItemContent, CartItemDescription, CartItemHeader, CartItemImage, CartItemImageSlot, CartItemMedia, CartItemMeta, CartItemPrice, CartItemTitle, CartList, CartOption, CartOptionControl, CartOptionLabel, CartQuantity, CartQuantityButton, CartQuantityValue, CartScroller, CartSection, CartSectionHeader, CartSectionTitle, CartStore, CartStoreContent, CartStoreDescription, CartStoreImage, CartStoreMedia, CartStoreTitle, CartSubmit, CartSummary, CartSummaryLabel, CartSummaryRow, CartSummaryValue, CartTitle, Category, CategoryContent, CategoryDescription, CategoryEmpty, CategoryEmptyContent, CategoryEmptyDescription, CategoryEmptyHeader, CategoryEmptyMedia, CategoryEmptyTitle, CategoryGrid, CategoryGridItem, CategoryHeader, CategoryList, CategoryListItem, CategoryNav, CategoryNavExtra, CategoryNavItem, CategoryNavLink, CategoryNavList, CategoryTitle, Checkout, CheckoutAside, CheckoutBack, CheckoutBanner, CheckoutColumn, CheckoutDescription, CheckoutFeeInfo, CheckoutFeeLabel, CheckoutFeeList, CheckoutFeeRow, CheckoutFeeValue, CheckoutFooter, CheckoutFulfillment, CheckoutFulfillmentOption, CheckoutHeader, CheckoutMain, CheckoutNav, CheckoutNavBrand, CheckoutOption, CheckoutOptionControl, CheckoutOptionLabel, CheckoutPayment, CheckoutPaymentOption, CheckoutPaymentPanel, CheckoutPaymentPanelHeader, CheckoutPromo, CheckoutPromoChevron, CheckoutPromoIcon, CheckoutPromoLabel, CheckoutRow, CheckoutRowAside, CheckoutRowChevron, CheckoutRowContent, CheckoutRowDescription, CheckoutRowMedia, CheckoutRowTitle, CheckoutSection, CheckoutSectionAction, CheckoutSectionHeader, CheckoutSectionTitle, CheckoutStore, CheckoutStoreContent, CheckoutStoreDescription, CheckoutStoreImage, CheckoutStoreMedia, CheckoutStoreTitle, CheckoutSubmit, CheckoutTip, CheckoutTipCustom, CheckoutTipList, CheckoutTipOption, CheckoutTitle, Menu, MenuEmpty, MenuEmptyContent, MenuEmptyDescription, MenuEmptyHeader, MenuEmptyMedia, MenuEmptyTitle, ProductCard, ProductCardAddButton, ProductCardAnchorPrice, ProductCardBadge, ProductCardContent, ProductCardDescription, ProductCardDiscount, ProductCardFooter, ProductCardHeader, ProductCardImage, ProductCardImageSlot, ProductCardMedia, ProductCardMeta, ProductCardPrice, ProductCardRating, ProductCardTitle, useActiveCategory };
package/dist/menu.d.ts ADDED
@@ -0,0 +1,47 @@
1
+ import { HTMLAttributes } from "react";
2
+ //#region src/menu.d.ts
3
+ declare function Menu({ ref, className, ...props }: HTMLAttributes<HTMLElement> & {
4
+ ref?: React.RefObject<HTMLElement | null>;
5
+ }): import("react").JSX.Element;
6
+ declare namespace Menu {
7
+ var displayName: string;
8
+ }
9
+ declare function MenuEmpty({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
10
+ ref?: React.RefObject<HTMLDivElement | null>;
11
+ }): import("react").JSX.Element;
12
+ declare namespace MenuEmpty {
13
+ var displayName: string;
14
+ }
15
+ declare function MenuEmptyHeader({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
16
+ ref?: React.RefObject<HTMLDivElement | null>;
17
+ }): import("react").JSX.Element;
18
+ declare namespace MenuEmptyHeader {
19
+ var displayName: string;
20
+ }
21
+ declare function MenuEmptyMedia({ ref, className, variant, ...props }: HTMLAttributes<HTMLDivElement> & {
22
+ ref?: React.RefObject<HTMLDivElement | null>;
23
+ variant?: "icon" | "default";
24
+ }): import("react").JSX.Element;
25
+ declare namespace MenuEmptyMedia {
26
+ var displayName: string;
27
+ }
28
+ declare function MenuEmptyTitle({ ref, className, ...props }: HTMLAttributes<HTMLHeadingElement> & {
29
+ ref?: React.RefObject<HTMLHeadingElement | null>;
30
+ }): import("react").JSX.Element;
31
+ declare namespace MenuEmptyTitle {
32
+ var displayName: string;
33
+ }
34
+ declare function MenuEmptyDescription({ ref, className, ...props }: HTMLAttributes<HTMLParagraphElement> & {
35
+ ref?: React.RefObject<HTMLParagraphElement | null>;
36
+ }): import("react").JSX.Element;
37
+ declare namespace MenuEmptyDescription {
38
+ var displayName: string;
39
+ }
40
+ declare function MenuEmptyContent({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
41
+ ref?: React.RefObject<HTMLDivElement | null>;
42
+ }): import("react").JSX.Element;
43
+ declare namespace MenuEmptyContent {
44
+ var displayName: string;
45
+ }
46
+ //#endregion
47
+ export { Menu, MenuEmpty, MenuEmptyContent, MenuEmptyDescription, MenuEmptyHeader, MenuEmptyMedia, MenuEmptyTitle };
package/dist/menu.js ADDED
@@ -0,0 +1,49 @@
1
+ import { t as cn } from "./cn-Ccejyh36.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/menu.tsx
4
+ const Menu = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("section", {
5
+ ref,
6
+ className: cn("Menu flex h-full min-h-0 flex-col", className),
7
+ ...props
8
+ });
9
+ Menu.displayName = "Menu";
10
+ const MenuEmpty = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
11
+ ref,
12
+ role: "status",
13
+ className: cn("border-border bg-muted/30 flex min-h-0 w-full flex-1 flex-col items-center justify-center gap-4 rounded-xl border border-dashed px-6 py-12 text-center", className),
14
+ ...props
15
+ });
16
+ MenuEmpty.displayName = "MenuEmpty";
17
+ const MenuEmptyHeader = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
18
+ ref,
19
+ className: cn("flex max-w-sm flex-col items-center gap-2", className),
20
+ ...props
21
+ });
22
+ MenuEmptyHeader.displayName = "MenuEmptyHeader";
23
+ const MenuEmptyMedia = ({ ref, className, variant = "icon", ...props }) => /* @__PURE__ */ jsx("div", {
24
+ ref,
25
+ "data-variant": variant,
26
+ className: cn("mb-1 flex shrink-0 items-center justify-center", variant === "icon" ? "bg-muted text-muted-foreground size-12 rounded-full [&_svg]:size-5" : "text-muted-foreground", className),
27
+ ...props
28
+ });
29
+ MenuEmptyMedia.displayName = "MenuEmptyMedia";
30
+ const MenuEmptyTitle = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("h3", {
31
+ ref,
32
+ className: cn("text-foreground text-sm font-semibold tracking-tight", className),
33
+ ...props
34
+ });
35
+ MenuEmptyTitle.displayName = "MenuEmptyTitle";
36
+ const MenuEmptyDescription = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("p", {
37
+ ref,
38
+ className: cn("text-muted-foreground text-sm leading-relaxed", className),
39
+ ...props
40
+ });
41
+ MenuEmptyDescription.displayName = "MenuEmptyDescription";
42
+ const MenuEmptyContent = ({ ref, className, ...props }) => /* @__PURE__ */ jsx("div", {
43
+ ref,
44
+ className: cn("flex flex-wrap items-center justify-center gap-2", className),
45
+ ...props
46
+ });
47
+ MenuEmptyContent.displayName = "MenuEmptyContent";
48
+ //#endregion
49
+ export { Menu, MenuEmpty, MenuEmptyContent, MenuEmptyDescription, MenuEmptyHeader, MenuEmptyMedia, MenuEmptyTitle };
@@ -0,0 +1,100 @@
1
+ import { ButtonHTMLAttributes, HTMLAttributes, ImgHTMLAttributes } from "react";
2
+ //#region src/product-card.d.ts
3
+ declare function ProductCard({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
4
+ ref?: React.RefObject<HTMLDivElement | null>;
5
+ }): import("react").JSX.Element;
6
+ declare namespace ProductCard {
7
+ var displayName: string;
8
+ }
9
+ declare function ProductCardContent({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
10
+ ref?: React.RefObject<HTMLDivElement | null>;
11
+ }): import("react").JSX.Element;
12
+ declare namespace ProductCardContent {
13
+ var displayName: string;
14
+ }
15
+ declare function ProductCardMedia({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
16
+ ref?: React.RefObject<HTMLDivElement | null>;
17
+ }): import("react").JSX.Element;
18
+ declare namespace ProductCardMedia {
19
+ var displayName: string;
20
+ }
21
+ declare function ProductCardImageSlot({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
22
+ ref?: React.RefObject<HTMLDivElement | null>;
23
+ }): import("react").JSX.Element;
24
+ declare namespace ProductCardImageSlot {
25
+ var displayName: string;
26
+ }
27
+ declare function ProductCardImage({ ref, className, alt, ...props }: ImgHTMLAttributes<HTMLImageElement> & {
28
+ ref?: React.RefObject<HTMLImageElement | null>;
29
+ }): import("react").JSX.Element;
30
+ declare namespace ProductCardImage {
31
+ var displayName: string;
32
+ }
33
+ declare function ProductCardHeader({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
34
+ ref?: React.RefObject<HTMLDivElement | null>;
35
+ }): import("react").JSX.Element;
36
+ declare namespace ProductCardHeader {
37
+ var displayName: string;
38
+ }
39
+ declare function ProductCardTitle({ ref, className, ...props }: HTMLAttributes<HTMLHeadingElement> & {
40
+ ref?: React.RefObject<HTMLHeadingElement | null>;
41
+ }): import("react").JSX.Element;
42
+ declare namespace ProductCardTitle {
43
+ var displayName: string;
44
+ }
45
+ declare function ProductCardMeta({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
46
+ ref?: React.RefObject<HTMLDivElement | null>;
47
+ }): import("react").JSX.Element;
48
+ declare namespace ProductCardMeta {
49
+ var displayName: string;
50
+ }
51
+ declare function ProductCardDescription({ ref, className, ...props }: HTMLAttributes<HTMLParagraphElement> & {
52
+ ref?: React.RefObject<HTMLParagraphElement | null>;
53
+ }): import("react").JSX.Element;
54
+ declare namespace ProductCardDescription {
55
+ var displayName: string;
56
+ }
57
+ declare function ProductCardFooter({ ref, className, ...props }: HTMLAttributes<HTMLDivElement> & {
58
+ ref?: React.RefObject<HTMLDivElement | null>;
59
+ }): import("react").JSX.Element;
60
+ declare namespace ProductCardFooter {
61
+ var displayName: string;
62
+ }
63
+ declare function ProductCardPrice({ ref, className, ...props }: HTMLAttributes<HTMLSpanElement> & {
64
+ ref?: React.RefObject<HTMLSpanElement | null>;
65
+ }): import("react").JSX.Element;
66
+ declare namespace ProductCardPrice {
67
+ var displayName: string;
68
+ }
69
+ declare function ProductCardAnchorPrice({ ref, className, ...props }: HTMLAttributes<HTMLSpanElement> & {
70
+ ref?: React.RefObject<HTMLSpanElement | null>;
71
+ }): import("react").JSX.Element;
72
+ declare namespace ProductCardAnchorPrice {
73
+ var displayName: string;
74
+ }
75
+ declare function ProductCardRating({ ref, className, ...props }: HTMLAttributes<HTMLSpanElement> & {
76
+ ref?: React.RefObject<HTMLSpanElement | null>;
77
+ }): import("react").JSX.Element;
78
+ declare namespace ProductCardRating {
79
+ var displayName: string;
80
+ }
81
+ declare function ProductCardBadge({ ref, className, ...props }: HTMLAttributes<HTMLSpanElement> & {
82
+ ref?: React.RefObject<HTMLSpanElement | null>;
83
+ }): import("react").JSX.Element;
84
+ declare namespace ProductCardBadge {
85
+ var displayName: string;
86
+ }
87
+ declare function ProductCardDiscount({ ref, className, ...props }: HTMLAttributes<HTMLSpanElement> & {
88
+ ref?: React.RefObject<HTMLSpanElement | null>;
89
+ }): import("react").JSX.Element;
90
+ declare namespace ProductCardDiscount {
91
+ var displayName: string;
92
+ }
93
+ declare function ProductCardAddButton({ ref, className, type, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement> & {
94
+ ref?: React.RefObject<HTMLButtonElement | null>;
95
+ }): import("react").JSX.Element;
96
+ declare namespace ProductCardAddButton {
97
+ var displayName: string;
98
+ }
99
+ //#endregion
100
+ export { ProductCard, ProductCardAddButton, ProductCardAnchorPrice, ProductCardBadge, ProductCardContent, ProductCardDescription, ProductCardDiscount, ProductCardFooter, ProductCardHeader, ProductCardImage, ProductCardImageSlot, ProductCardMedia, ProductCardMeta, ProductCardPrice, ProductCardRating, ProductCardTitle };