{page.title}
+ +This document was last updated: {format(page.updatedAt, "MMMM do, yyyy")}
+Looks like you don't have access to this page. If you were logged in before your session might've expired. Please log in again! 😊
+ + + Go Home + ++ This feature requires full functionality. Please exit Demo Mode by setting the required environment variables. +
+{JSON.stringify(error, null, 2)}+ + > + ) : ( + <> +
{JSON.stringify(error, null, 2)}+ + > + )} +
No favorite products. You can add them by clicking on a heart icon on product page
: null} +{JSON.stringify(error, null, 2)}+ +
Page not found
+Sorry, we couldn't find the page you're looking for.
+ + Go to Homepage + +This document was last updated: {format(page.updatedAt, "MMMM do, yyyy")}
+{product.description}
+{product.description}
+Search products...
+ + ++ Est veniam qui aute nisi occaecat ad non velit anim commodo sit proident. Labore sint officia nostrud eu est fugiat nulla velit sint commodo. Excepteur sit ut anim pariatur + minim adipisicing dolore sit dolore cupidatat. Amet reprehenderit ipsum aute minim incididunt adipisicing est. +
+ ), + "Free Delivery and Returns": ( ++ Aliqua Lorem ullamco officia cupidatat cupidatat. Nostrud occaecat ex in Lorem. Et occaecat adipisicing do aliquip duis aliquip enim culpa nulla. Nulla quis aute ex eu est + ullamco enim incididunt fugiat proident laboris. Laboris sint ad et nostrud velit fugiat fugiat proident enim sit irure elit. Ut amet elit labore cupidatat id consectetur + sint fugiat esse excepteur pariatur. Tempor pariatur dolor eiusmod proident ad incididunt officia labore fugiat consectetur. Sunt veniam officia officia eiusmod minim + incididunt est sit esse excepteur non cupidatat voluptate ea. Do excepteur sunt nostrud eu do id nisi dolore laboris ea ullamco magna eu. Eiusmod irure dolore amet velit + laboris excepteur cupidatat est cupidatat minim ut anim id. Deserunt velit ex exercitation consequat quis magna pariatur laboris elit minim eiusmod anim. +
+ ), + "Supplier Information": ( ++ Aliqua ut ex irure eu officia dolore velit et occaecat pariatur excepteur nostrud ad. Ea reprehenderit sint culpa excepteur adipisicing ipsum esse excepteur officia culpa + adipisicing nostrud. Nulla Lorem voluptate tempor officia id mollit do est amet dolor nulla. Sint sunt consequat non in reprehenderit Lorem velit enim cillum enim. Consequat + occaecat exercitation consequat nisi veniam. Ipsum est reprehenderit cupidatat nulla minim anim deserunt consequat ipsum anim ea tempor. +
+ ), +} + +export const Default: Story = { + render: () => ( +Become a member and receive our special discounts.
+Missing feature?
++ + Let us know + + , we'll build it! +
++ {body} +
+ ) +}) +FormMessage.displayName = "FormMessage" + +export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField } diff --git a/starters/shopify-algolia/components/GenericModal/GenericModal.tsx b/starters/shopify-algolia/components/GenericModal/GenericModal.tsx new file mode 100644 index 00000000..50c69638 --- /dev/null +++ b/starters/shopify-algolia/components/GenericModal/GenericModal.tsx @@ -0,0 +1,30 @@ +import { Dialog, DialogClose, DialogContent, DialogHeader, DialogTitle } from "components/Dialog/Dialog" +import { CloseIcon } from "components/Icons/CloseIcon" +import { cn } from "utils/cn" + +interface FacetsModalProps { + open?: boolean + onOpenChange?: () => void + title?: string + children: React.ReactNode + className?: string +} + +export function GenericModal({ open, onOpenChange, title, children, className }: FacetsModalProps) { + return ( + + ) +} + +export function Placeholder() { + return +} diff --git a/starters/shopify-algolia/components/Icons/ArrowIcon.tsx b/starters/shopify-algolia/components/Icons/ArrowIcon.tsx new file mode 100644 index 00000000..d9cbd4a0 --- /dev/null +++ b/starters/shopify-algolia/components/Icons/ArrowIcon.tsx @@ -0,0 +1,12 @@ +export function ArrowIcon({ className }: { className?: string }) { + return ( + + ) +} diff --git a/starters/shopify-algolia/components/Icons/CaretSortIcon.tsx b/starters/shopify-algolia/components/Icons/CaretSortIcon.tsx new file mode 100644 index 00000000..bd7accf7 --- /dev/null +++ b/starters/shopify-algolia/components/Icons/CaretSortIcon.tsx @@ -0,0 +1,12 @@ +export function CaretSortIcon({ className }: { className?: string }) { + return ( + + ) +} diff --git a/starters/shopify-algolia/components/Icons/CheckIcon.tsx b/starters/shopify-algolia/components/Icons/CheckIcon.tsx new file mode 100644 index 00000000..27e7531c --- /dev/null +++ b/starters/shopify-algolia/components/Icons/CheckIcon.tsx @@ -0,0 +1,12 @@ +export function CheckIcon({ className }: { className?: string }) { + return ( + + ) +} diff --git a/starters/shopify-algolia/components/Icons/ChevronIcon.tsx b/starters/shopify-algolia/components/Icons/ChevronIcon.tsx new file mode 100644 index 00000000..86cb8326 --- /dev/null +++ b/starters/shopify-algolia/components/Icons/ChevronIcon.tsx @@ -0,0 +1,7 @@ +export function ChevronIcon({ className }: { className?: string }) { + return ( + + ) +} diff --git a/starters/shopify-algolia/components/Icons/CloseIcon.tsx b/starters/shopify-algolia/components/Icons/CloseIcon.tsx new file mode 100644 index 00000000..5e734381 --- /dev/null +++ b/starters/shopify-algolia/components/Icons/CloseIcon.tsx @@ -0,0 +1,7 @@ +export function CloseIcon({ className }: { className?: string }) { + return ( + + ) +} diff --git a/starters/shopify-algolia/components/Icons/FavoritesIcon.tsx b/starters/shopify-algolia/components/Icons/FavoritesIcon.tsx new file mode 100644 index 00000000..2f134a7b --- /dev/null +++ b/starters/shopify-algolia/components/Icons/FavoritesIcon.tsx @@ -0,0 +1,10 @@ +export function FavoritesIcon({ className }: { className?: string }) { + return ( + + ) +} diff --git a/starters/shopify-algolia/components/Icons/FiltersIcon.tsx b/starters/shopify-algolia/components/Icons/FiltersIcon.tsx new file mode 100644 index 00000000..143b349f --- /dev/null +++ b/starters/shopify-algolia/components/Icons/FiltersIcon.tsx @@ -0,0 +1,60 @@ +export function FiltersIcon({ className }: { className?: string }) { + return ( + + ) +} diff --git a/starters/shopify-algolia/components/Icons/HeartIcon.tsx b/starters/shopify-algolia/components/Icons/HeartIcon.tsx new file mode 100644 index 00000000..de53dc78 --- /dev/null +++ b/starters/shopify-algolia/components/Icons/HeartIcon.tsx @@ -0,0 +1,14 @@ +import type { HTMLAttributes } from "react" + +export function HeartIcon({ className, ...rest }: { className?: string } & HTMLAttributesPopular search terms
+Sorry, something went wrong, please try again later
+ + case "done": { + const hasResults = !!results && results?.length > 0 + if (!hasResults) { + return ( +No results found
+Top suggestions
+{getHighlightedText(singleProduct.title, query)}
+ + ))} + {status === "error" &&Sorry, something went wrong, please try again later
} +{singleCategory.text}
+ + ))} +{singleCategory.text}
+ + ))} +{vendor}
} + {noOfVariants > 0 && ( ++ {noOfVariants} variant{noOfVariants > 1 ? "s" : ""} +
+ )} + {!!avgRating && !!totalReviews && ( +Quick add
+{label}
+ {!!price && ( + + {(+price.amount).toFixed(2)} + {mapCurrencyToSign(price?.currencyCode as CurrencyType)} + + )} +Subtotal
+0$
+Shipping
+Calculated at checkout
+Total
+0$
+