diff --git a/.gitignore b/.gitignore
index afac657..a11ae52 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
/.phpunit.cache
-/bootstrap/ssr
+# /bootstrap/ssr
/node_modules
-/public/build
+# /public/build
/public/hot
/public/storage
/resources/js/actions
diff --git a/bootstrap/ssr/assets/about-Bpe9pve7.js b/bootstrap/ssr/assets/about-Bpe9pve7.js
new file mode 100644
index 0000000..4a81c5a
--- /dev/null
+++ b/bootstrap/ssr/assets/about-Bpe9pve7.js
@@ -0,0 +1,124 @@
+import { jsxs, Fragment, jsx } from "react/jsx-runtime";
+import { u as useTranslations, L as Layout, n as ns, o as oko } from "./layout-toNsB0Jp.js";
+import { Head } from "@inertiajs/react";
+import { Lightbulb, Target, HeartHandshake } from "lucide-react";
+import "./index-CY6fYws-.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "./input-DfkIsvXR.js";
+import "./label-DrpjkvJN.js";
+import "@radix-ui/react-label";
+import "@icons-pack/react-simple-icons";
+import "./select-CsRyyQUa.js";
+import "@radix-ui/react-select";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+const kaleen = "/build/assets/kaleen-D3tdUBUw.jpg";
+const ourStory = "/build/assets/sci%20trad%208-DiNu6GWn.jpg";
+function About() {
+ const { t } = useTranslations();
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "About Us", children: /* @__PURE__ */ jsx(
+ "meta",
+ {
+ name: "description",
+ content: "Experience the finest hand-knotted carpets in Nepal with Soorya Carpet. Each piece is crafted by skilled artisans to deliver unmatched quality, luxury, and timeless design."
+ }
+ ) }),
+ /* @__PURE__ */ jsxs(Layout, { children: [
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-32 px-12 py-12 max-sm:px-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid h-1/2 grid-cols-2 gap-20 overflow-clip max-md:grid-cols-1 max-md:gap-12", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("h1", { className: "font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl", children: t("pages.about.sections.first.title") }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 text-sm max-sm:text-base", children: [
+ /* @__PURE__ */ jsx("p", { children: t("pages.about.sections.first.desc.first") }),
+ /* @__PURE__ */ jsx("p", { children: t(
+ "pages.about.sections.first.desc.second"
+ ) }),
+ /* @__PURE__ */ jsx("p", { children: t("pages.about.sections.first.desc.third") })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: ourStory,
+ alt: "Our Story",
+ className: "aspect-[5/3] h-full w-full rounded-xl object-cover object-center"
+ }
+ )
+ ] }),
+ " ",
+ /* @__PURE__ */ jsxs("div", { className: "grid h-1/2 grid-cols-2 gap-20 overflow-clip max-md:grid-cols-1 max-md:gap-12", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: kaleen,
+ alt: "Kaleen Story",
+ className: "aspect-[5/3] h-full w-full rounded-xl object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("h2", { className: "font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl", children: t("pages.about.sections.second.title") }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 text-sm max-sm:text-base", children: [
+ /* @__PURE__ */ jsx("p", { children: t(
+ "pages.about.sections.second.desc.first"
+ ) }),
+ /* @__PURE__ */ jsx("p", { children: t(
+ "pages.about.sections.second.desc.second"
+ ) }),
+ /* @__PURE__ */ jsx("p", { children: t(
+ "pages.about.sections.second.desc.third"
+ ) })
+ ] })
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-8 px-12 py-12 max-md:px-6", children: [
+ /* @__PURE__ */ jsx("h3", { className: "text-center font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl", children: t("pages.about.sections.third.title") }),
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-8 max-md:flex-col", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 rounded-xl bg-accent px-8 py-8 text-center max-sm:px-4", children: [
+ /* @__PURE__ */ jsx(Lightbulb, { size: 48, color: "#5A1A1A" }),
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-3xl font-semibold", children: t(
+ "pages.about.sections.third.cards.first.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "text-justify text-lg tracking-tight", children: t(
+ "pages.about.sections.third.cards.first.desc"
+ ) })
+ ] }),
+ " ",
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 rounded-xl bg-accent px-8 py-8 text-center", children: [
+ /* @__PURE__ */ jsx(Target, { size: 48, color: "#5A1A1A" }),
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-3xl font-semibold", children: t(
+ "pages.about.sections.third.cards.second.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "text-justify text-lg tracking-tight", children: t(
+ "pages.about.sections.third.cards.second.desc"
+ ) })
+ ] }),
+ " ",
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 rounded-xl bg-accent px-8 py-8 text-center", children: [
+ /* @__PURE__ */ jsx(HeartHandshake, { size: 48, color: "#5A1A1A" }),
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-3xl font-semibold", children: t(
+ "pages.about.sections.third.cards.third.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "text-justify text-lg tracking-tight", children: t(
+ "pages.about.sections.third.cards.third.desc"
+ ) })
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-8 px-12 py-12", children: [
+ /* @__PURE__ */ jsx("h4", { className: "text-center font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl", children: t("pages.about.sections.fourth.title") }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-8", children: [
+ /* @__PURE__ */ jsx("img", { src: ns, alt: "NS Standard" }),
+ /* @__PURE__ */ jsx("img", { src: oko, alt: "OKO Standard" })
+ ] })
+ ] })
+ ] })
+ ] });
+}
+export {
+ About as default
+};
diff --git a/bootstrap/ssr/assets/add-BhcrNqMR.js b/bootstrap/ssr/assets/add-BhcrNqMR.js
new file mode 100644
index 0000000..5f97a97
--- /dev/null
+++ b/bootstrap/ssr/assets/add-BhcrNqMR.js
@@ -0,0 +1,97 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { A as AppLayout, d as dashboard } from "./app-layout-BFyUFda2.js";
+import { useForm, Head } from "@inertiajs/react";
+import FilePondPluginImageExifOrientation from "filepond-plugin-image-exif-orientation";
+import FilePondPluginImagePreview from "filepond-plugin-image-preview";
+/* empty css */
+import { registerPlugin } from "react-filepond";
+import { toast } from "sonner";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "react";
+import "lucide-react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+registerPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);
+function FaqAdd() {
+ const { data, setData, post, processing, errors, wasSuccessful } = useForm({
+ question: "",
+ answer: ""
+ });
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ post(dashboard.faq.addFaq().url, {
+ forceFormData: true
+ });
+ if (wasSuccessful) {
+ toast.success("Product added successfully");
+ }
+ };
+ return /* @__PURE__ */ jsxs(AppLayout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "Add FAQ Questions" }),
+ /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-8 px-8 py-8", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-lg font-semibold tracking-tight", children: "Add FAQ Questions" }),
+ /* @__PURE__ */ jsxs(
+ "form",
+ {
+ onSubmit: handleSubmit,
+ method: "POST",
+ encType: "multipart/formdata",
+ className: "flex flex-col items-start gap-4",
+ children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "question", children: "Question" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ type: "text",
+ id: "question",
+ value: data.question,
+ onChange: (e) => setData("question", e.target.value),
+ className: "rounded border p-2"
+ }
+ ),
+ errors.question && /* @__PURE__ */ jsx("span", { className: "text-red-600", children: errors.question })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "answer", children: "Answer" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ type: "text",
+ id: "answer",
+ value: data.answer,
+ onChange: (e) => setData("answer", e.target.value),
+ className: "rounded border p-2"
+ }
+ ),
+ errors.answer && /* @__PURE__ */ jsx("span", { className: "text-red-600", children: errors.answer })
+ ] }),
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ type: "submit",
+ disabled: processing,
+ className: "cursor-pointer",
+ children: processing ? "submitting..." : "Submit"
+ }
+ )
+ ]
+ }
+ )
+ ] })
+ ] });
+}
+export {
+ FaqAdd as default
+};
diff --git a/bootstrap/ssr/assets/add-CPccOhjJ.js b/bootstrap/ssr/assets/add-CPccOhjJ.js
new file mode 100644
index 0000000..095fb64
--- /dev/null
+++ b/bootstrap/ssr/assets/add-CPccOhjJ.js
@@ -0,0 +1,135 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, e as SelectGroup, d as SelectItem } from "./select-CsRyyQUa.js";
+import { A as AppLayout, d as dashboard } from "./app-layout-BFyUFda2.js";
+import { useForm, Head } from "@inertiajs/react";
+import FilePondPluginImageExifOrientation from "filepond-plugin-image-exif-orientation";
+import FilePondPluginImagePreview from "filepond-plugin-image-preview";
+/* empty css */
+import { useState, useEffect } from "react";
+import { FilePond, registerPlugin } from "react-filepond";
+import { toast } from "sonner";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "@radix-ui/react-select";
+import "lucide-react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+registerPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);
+function CarouselAdd() {
+ const [file, setFile] = useState(null);
+ const { data, setData, post, processing, errors, wasSuccessful } = useForm({
+ title: "",
+ type: "traditional",
+ image_url: null
+ });
+ useEffect(() => {
+ if (file) {
+ setData("image_url", file.file);
+ }
+ }, [file, setData]);
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ post(dashboard.product.add().url, {
+ forceFormData: true
+ });
+ if (wasSuccessful) {
+ toast.success("Product added successfully");
+ }
+ };
+ return /* @__PURE__ */ jsxs(AppLayout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "Add Product Image" }),
+ /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-8 px-8 py-8", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-lg font-semibold tracking-tight", children: "Add Product Image" }),
+ /* @__PURE__ */ jsxs(
+ "form",
+ {
+ onSubmit: handleSubmit,
+ method: "POST",
+ encType: "multipart/formdata",
+ children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-4", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "title", children: "Title" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ type: "text",
+ id: "title",
+ value: data.title,
+ onChange: (e) => setData("title", e.target.value),
+ className: "rounded border p-2"
+ }
+ ),
+ errors.title && /* @__PURE__ */ jsx("span", { className: "text-red-600", children: errors.title })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-4", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "title", children: "Type" }),
+ /* @__PURE__ */ jsxs(
+ Select,
+ {
+ value: data.type,
+ onValueChange: (e) => {
+ console.log(e);
+ setData("type", e);
+ },
+ children: [
+ /* @__PURE__ */ jsx(SelectTrigger, { children: /* @__PURE__ */ jsx(SelectValue, { placeholder: "Select a type" }) }),
+ /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsxs(SelectGroup, { children: [
+ /* @__PURE__ */ jsx(SelectItem, { value: "traditional", children: "Traditional" }),
+ /* @__PURE__ */ jsx(SelectItem, { value: "modern", children: "Modern" }),
+ /* @__PURE__ */ jsx(SelectItem, { value: "bespoke", children: "Bespoke" }),
+ /* @__PURE__ */ jsx(SelectItem, { value: "abstract", children: "Abstract" }),
+ /* @__PURE__ */ jsx(SelectItem, { value: "art", children: "Art in carpet" })
+ ] }) })
+ ]
+ }
+ )
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
+ /* @__PURE__ */ jsx(Label, { children: "Image" }),
+ /* @__PURE__ */ jsx(
+ FilePond,
+ {
+ files: file ? [file] : [],
+ onupdatefiles: (fileItems) => {
+ setFile(fileItems[0] || null);
+ },
+ allowMultiple: false,
+ maxFiles: 1,
+ name: "image_url",
+ instantUpload: false,
+ storeAsFile: true,
+ labelIdle: 'Drag & Drop your image or Browse'
+ }
+ ),
+ errors.image_url && /* @__PURE__ */ jsx("span", { className: "text-red-600", children: errors.image_url })
+ ] }),
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ type: "submit",
+ disabled: processing,
+ className: "cursor-pointer",
+ children: processing ? "Uploading..." : "Submit"
+ }
+ )
+ ]
+ }
+ )
+ ] })
+ ] });
+}
+export {
+ CarouselAdd as default
+};
diff --git a/bootstrap/ssr/assets/add-S6fabe2O.js b/bootstrap/ssr/assets/add-S6fabe2O.js
new file mode 100644
index 0000000..733e1c2
--- /dev/null
+++ b/bootstrap/ssr/assets/add-S6fabe2O.js
@@ -0,0 +1,107 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { A as AppLayout } from "./app-layout-BFyUFda2.js";
+import { useForm, Head } from "@inertiajs/react";
+import FilePondPluginImageExifOrientation from "filepond-plugin-image-exif-orientation";
+import FilePondPluginImagePreview from "filepond-plugin-image-preview";
+/* empty css */
+import { useState, useEffect } from "react";
+import { FilePond, registerPlugin } from "react-filepond";
+import { toast } from "sonner";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "lucide-react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+registerPlugin(FilePondPluginImageExifOrientation, FilePondPluginImagePreview);
+function CarouselAdd() {
+ const [file, setFile] = useState(null);
+ const { data, setData, post, processing, errors, wasSuccessful } = useForm({
+ alt: "",
+ image_url: null
+ });
+ useEffect(() => {
+ if (file) {
+ setData("image_url", file.file);
+ }
+ }, [file, setData]);
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ post("/carousel", {
+ forceFormData: true
+ });
+ if (wasSuccessful) {
+ toast.success("Slider image successfully uploaded");
+ }
+ };
+ return /* @__PURE__ */ jsxs(AppLayout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "Add Carousel" }),
+ /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-8 px-8 py-8", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-lg font-semibold tracking-tight", children: "Add Slider Image" }),
+ /* @__PURE__ */ jsxs(
+ "form",
+ {
+ onSubmit: handleSubmit,
+ method: "POST",
+ encType: "multipart/formdata",
+ children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "title", children: "Title" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ type: "text",
+ id: "title",
+ value: data.alt,
+ onChange: (e) => setData("alt", e.target.value),
+ className: "rounded border p-2"
+ }
+ ),
+ errors.alt && /* @__PURE__ */ jsx("span", { className: "text-red-600", children: errors.alt })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
+ /* @__PURE__ */ jsx(Label, { children: "Image" }),
+ /* @__PURE__ */ jsx(
+ FilePond,
+ {
+ files: file ? [file] : [],
+ onupdatefiles: (fileItems) => {
+ setFile(fileItems[0] || null);
+ },
+ allowMultiple: false,
+ maxFiles: 1,
+ name: "image_url",
+ instantUpload: false,
+ storeAsFile: true,
+ labelIdle: 'Drag & Drop your image or Browse'
+ }
+ ),
+ errors.image_url && /* @__PURE__ */ jsx("span", { className: "text-red-600", children: errors.image_url })
+ ] }),
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ type: "submit",
+ disabled: processing,
+ className: "cursor-pointer",
+ children: processing ? "Uploading..." : "Submit"
+ }
+ )
+ ]
+ }
+ )
+ ] })
+ ] });
+}
+export {
+ CarouselAdd as default
+};
diff --git a/bootstrap/ssr/assets/app-layout-BFyUFda2.js b/bootstrap/ssr/assets/app-layout-BFyUFda2.js
new file mode 100644
index 0000000..bb1b477
--- /dev/null
+++ b/bootstrap/ssr/assets/app-layout-BFyUFda2.js
@@ -0,0 +1,1398 @@
+import { jsx, jsxs, Fragment } from "react/jsx-runtime";
+import * as React from "react";
+import { useState, useEffect, useCallback, Fragment as Fragment$1 } from "react";
+import { Slot } from "@radix-ui/react-slot";
+import { cva } from "class-variance-authority";
+import { PanelLeftIcon, Settings, LogOut, ChevronsUpDown, LayoutGrid, GalleryHorizontal, Package, TableOfContents, ChevronRight } from "lucide-react";
+import { c as cn, B as Button, q as queryParams, b as logout } from "./index-CY6fYws-.js";
+import { S as Sheet, e as SheetHeader, c as SheetTitle, d as SheetDescription, b as SheetContent } from "./sheet-Bq2cyJmx.js";
+import * as TooltipPrimitive from "@radix-ui/react-tooltip";
+import { usePage, Link, router } from "@inertiajs/react";
+import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
+import * as AvatarPrimitive from "@radix-ui/react-avatar";
+import { A as AppLogoIcon } from "./app-logo-icon-kpljnLMz.js";
+const MOBILE_BREAKPOINT = 768;
+function useIsMobile() {
+ const [isMobile, setIsMobile] = useState();
+ useEffect(() => {
+ const mql = window.matchMedia(
+ `(max-width: ${MOBILE_BREAKPOINT - 1}px)`
+ );
+ const onChange = () => {
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
+ };
+ mql.addEventListener("change", onChange);
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
+ return () => mql.removeEventListener("change", onChange);
+ }, []);
+ return !!isMobile;
+}
+function TooltipProvider({
+ delayDuration = 0,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ TooltipPrimitive.Provider,
+ {
+ "data-slot": "tooltip-provider",
+ delayDuration,
+ ...props
+ }
+ );
+}
+function Tooltip({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
+}
+function TooltipTrigger({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
+}
+function TooltipContent({
+ className,
+ sideOffset = 4,
+ children,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
+ TooltipPrimitive.Content,
+ {
+ "data-slot": "tooltip-content",
+ sideOffset,
+ className: cn(
+ "bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-w-sm rounded-md px-3 py-1.5 text-xs",
+ className
+ ),
+ ...props,
+ children: [
+ children,
+ /* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
+ ]
+ }
+ ) });
+}
+const SIDEBAR_COOKIE_NAME = "sidebar_state";
+const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
+const SIDEBAR_WIDTH = "16rem";
+const SIDEBAR_WIDTH_MOBILE = "18rem";
+const SIDEBAR_WIDTH_ICON = "3rem";
+const SIDEBAR_KEYBOARD_SHORTCUT = "b";
+const SidebarContext = React.createContext(null);
+function useSidebar() {
+ const context = React.useContext(SidebarContext);
+ if (!context) {
+ throw new Error("useSidebar must be used within a SidebarProvider.");
+ }
+ return context;
+}
+function SidebarProvider({
+ defaultOpen = true,
+ open: openProp,
+ onOpenChange: setOpenProp,
+ className,
+ style,
+ children,
+ ...props
+}) {
+ const isMobile = useIsMobile();
+ const [openMobile, setOpenMobile] = React.useState(false);
+ const [_open, _setOpen] = React.useState(defaultOpen);
+ const open = openProp ?? _open;
+ const setOpen = React.useCallback(
+ (value) => {
+ const openState = typeof value === "function" ? value(open) : value;
+ if (setOpenProp) {
+ setOpenProp(openState);
+ } else {
+ _setOpen(openState);
+ }
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
+ },
+ [setOpenProp, open]
+ );
+ const toggleSidebar = React.useCallback(() => {
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
+ }, [isMobile, setOpen, setOpenMobile]);
+ React.useEffect(() => {
+ const handleKeyDown = (event) => {
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
+ event.preventDefault();
+ toggleSidebar();
+ }
+ };
+ window.addEventListener("keydown", handleKeyDown);
+ return () => window.removeEventListener("keydown", handleKeyDown);
+ }, [toggleSidebar]);
+ const state = open ? "expanded" : "collapsed";
+ const contextValue = React.useMemo(
+ () => ({
+ state,
+ open,
+ setOpen,
+ isMobile,
+ openMobile,
+ setOpenMobile,
+ toggleSidebar
+ }),
+ [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
+ );
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "sidebar-wrapper",
+ style: {
+ "--sidebar-width": SIDEBAR_WIDTH,
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
+ ...style
+ },
+ className: cn(
+ "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
+ className
+ ),
+ ...props,
+ children
+ }
+ ) }) });
+}
+function Sidebar({
+ side = "left",
+ variant = "sidebar",
+ collapsible = "offcanvas",
+ className,
+ children,
+ ...props
+}) {
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
+ if (collapsible === "none") {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "sidebar",
+ className: cn(
+ "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
+ className
+ ),
+ ...props,
+ children
+ }
+ );
+ }
+ if (isMobile) {
+ return /* @__PURE__ */ jsxs(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: [
+ /* @__PURE__ */ jsxs(SheetHeader, { className: "sr-only", children: [
+ /* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }),
+ /* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })
+ ] }),
+ /* @__PURE__ */ jsx(
+ SheetContent,
+ {
+ "data-sidebar": "sidebar",
+ "data-slot": "sidebar",
+ "data-mobile": "true",
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
+ style: {
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
+ },
+ side,
+ children: /* @__PURE__ */ jsx("div", { className: "flex h-full w-full flex-col", children })
+ }
+ )
+ ] });
+ }
+ return /* @__PURE__ */ jsxs(
+ "div",
+ {
+ className: "group peer text-sidebar-foreground hidden md:block",
+ "data-state": state,
+ "data-collapsible": state === "collapsed" ? collapsible : "",
+ "data-variant": variant,
+ "data-side": side,
+ "data-slot": "sidebar",
+ children: [
+ /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: cn(
+ "relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
+ "group-data-[collapsible=offcanvas]:w-0",
+ "group-data-[side=right]:rotate-180",
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
+ )
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: cn(
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
+ side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
+ // Adjust the padding for floating and inset variants.
+ variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
+ className
+ ),
+ ...props,
+ children: /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-sidebar": "sidebar",
+ className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
+ children
+ }
+ )
+ }
+ )
+ ]
+ }
+ );
+}
+function SidebarTrigger({
+ className,
+ onClick,
+ ...props
+}) {
+ const { toggleSidebar } = useSidebar();
+ return /* @__PURE__ */ jsxs(
+ Button,
+ {
+ "data-sidebar": "trigger",
+ "data-slot": "sidebar-trigger",
+ variant: "ghost",
+ size: "icon",
+ className: cn("h-7 w-7", className),
+ onClick: (event) => {
+ onClick?.(event);
+ toggleSidebar();
+ },
+ ...props,
+ children: [
+ /* @__PURE__ */ jsx(PanelLeftIcon, {}),
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle Sidebar" })
+ ]
+ }
+ );
+}
+function SidebarInset({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "main",
+ {
+ "data-slot": "sidebar-inset",
+ className: cn(
+ "bg-background relative flex max-w-full min-h-svh flex-1 flex-col",
+ "peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))] md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-0",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function SidebarHeader({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "sidebar-header",
+ "data-sidebar": "header",
+ className: cn("flex flex-col gap-2 p-2", className),
+ ...props
+ }
+ );
+}
+function SidebarFooter({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "sidebar-footer",
+ "data-sidebar": "footer",
+ className: cn("flex flex-col gap-2 p-2", className),
+ ...props
+ }
+ );
+}
+function SidebarContent({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "sidebar-content",
+ "data-sidebar": "content",
+ className: cn(
+ "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function SidebarGroup({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "sidebar-group",
+ "data-sidebar": "group",
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className),
+ ...props
+ }
+ );
+}
+function SidebarGroupLabel({
+ className,
+ asChild = false,
+ ...props
+}) {
+ const Comp = asChild ? Slot : "div";
+ return /* @__PURE__ */ jsx(
+ Comp,
+ {
+ "data-slot": "sidebar-group-label",
+ "data-sidebar": "group-label",
+ className: cn(
+ "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 group-data-[collapsible=icon]:select-none group-data-[collapsible=icon]:pointer-events-none",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function SidebarMenu({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "ul",
+ {
+ "data-slot": "sidebar-menu",
+ "data-sidebar": "menu",
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
+ ...props
+ }
+ );
+}
+function SidebarMenuItem({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "li",
+ {
+ "data-slot": "sidebar-menu-item",
+ "data-sidebar": "menu-item",
+ className: cn("group/menu-item relative", className),
+ ...props
+ }
+ );
+}
+const sidebarMenuButtonVariants = cva(
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
+ {
+ variants: {
+ variant: {
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
+ outline: "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"
+ },
+ size: {
+ default: "h-8 text-sm",
+ sm: "h-7 text-xs",
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
+ }
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default"
+ }
+ }
+);
+function SidebarMenuButton({
+ asChild = false,
+ isActive = false,
+ variant = "default",
+ size = "default",
+ tooltip,
+ className,
+ ...props
+}) {
+ const Comp = asChild ? Slot : "button";
+ const { isMobile, state } = useSidebar();
+ const button = /* @__PURE__ */ jsx(
+ Comp,
+ {
+ "data-slot": "sidebar-menu-button",
+ "data-sidebar": "menu-button",
+ "data-size": size,
+ "data-active": isActive,
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
+ ...props
+ }
+ );
+ if (!tooltip) {
+ return button;
+ }
+ if (typeof tooltip === "string") {
+ tooltip = {
+ children: tooltip
+ };
+ }
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [
+ /* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: button }),
+ /* @__PURE__ */ jsx(
+ TooltipContent,
+ {
+ side: "right",
+ align: "center",
+ hidden: state !== "collapsed" || isMobile,
+ ...tooltip
+ }
+ )
+ ] });
+}
+function AppContent({
+ variant = "header",
+ children,
+ ...props
+}) {
+ if (variant === "sidebar") {
+ return /* @__PURE__ */ jsx(SidebarInset, { ...props, children });
+ }
+ return /* @__PURE__ */ jsx(
+ "main",
+ {
+ className: "mx-auto flex h-full w-full max-w-7xl flex-1 flex-col gap-4 rounded-xl",
+ ...props,
+ children
+ }
+ );
+}
+function AppShell({ children, variant = "header" }) {
+ const isOpen = usePage().props.sidebarOpen;
+ if (variant === "header") {
+ return /* @__PURE__ */ jsx("div", { className: "flex min-h-screen w-full flex-col", children });
+ }
+ return /* @__PURE__ */ jsx(SidebarProvider, { defaultOpen: isOpen, children });
+}
+function NavMain({ items = [] }) {
+ const page = usePage();
+ return /* @__PURE__ */ jsxs(SidebarGroup, { className: "px-2 py-0", children: [
+ /* @__PURE__ */ jsx(SidebarGroupLabel, { children: "Platform" }),
+ /* @__PURE__ */ jsx(SidebarMenu, { children: items.map((item) => /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsx(
+ SidebarMenuButton,
+ {
+ asChild: true,
+ isActive: page.url.startsWith(
+ typeof item.href === "string" ? item.href : item.href.url
+ ),
+ tooltip: { children: item.title },
+ children: /* @__PURE__ */ jsxs(Link, { href: item.href, prefetch: true, children: [
+ item.icon && /* @__PURE__ */ jsx(item.icon, {}),
+ /* @__PURE__ */ jsx("span", { children: item.title })
+ ] })
+ }
+ ) }, item.title)) })
+ ] });
+}
+function DropdownMenu({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
+}
+function DropdownMenuTrigger({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ DropdownMenuPrimitive.Trigger,
+ {
+ "data-slot": "dropdown-menu-trigger",
+ ...props
+ }
+ );
+}
+function DropdownMenuContent({
+ className,
+ sideOffset = 4,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(
+ DropdownMenuPrimitive.Content,
+ {
+ "data-slot": "dropdown-menu-content",
+ sideOffset,
+ className: cn(
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border p-1 shadow-md",
+ className
+ ),
+ ...props
+ }
+ ) });
+}
+function DropdownMenuGroup({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, { "data-slot": "dropdown-menu-group", ...props });
+}
+function DropdownMenuItem({
+ className,
+ inset,
+ variant = "default",
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ DropdownMenuPrimitive.Item,
+ {
+ "data-slot": "dropdown-menu-item",
+ "data-inset": inset,
+ "data-variant": variant,
+ className: cn(
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive-foreground data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/40 data-[variant=destructive]:focus:text-destructive-foreground data-[variant=destructive]:*:[svg]:!text-destructive-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function DropdownMenuLabel({
+ className,
+ inset,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ DropdownMenuPrimitive.Label,
+ {
+ "data-slot": "dropdown-menu-label",
+ "data-inset": inset,
+ className: cn(
+ "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function DropdownMenuSeparator({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ DropdownMenuPrimitive.Separator,
+ {
+ "data-slot": "dropdown-menu-separator",
+ className: cn("bg-border -mx-1 my-1 h-px", className),
+ ...props
+ }
+ );
+}
+function Avatar({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ AvatarPrimitive.Root,
+ {
+ "data-slot": "avatar",
+ className: cn(
+ "relative flex size-8 shrink-0 overflow-hidden rounded-full",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function AvatarImage({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ AvatarPrimitive.Image,
+ {
+ "data-slot": "avatar-image",
+ className: cn("aspect-square size-full", className),
+ ...props
+ }
+ );
+}
+function AvatarFallback({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ AvatarPrimitive.Fallback,
+ {
+ "data-slot": "avatar-fallback",
+ className: cn(
+ "bg-muted flex size-full items-center justify-center rounded-full",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function useInitials() {
+ return useCallback((fullName) => {
+ const names = fullName.trim().split(" ");
+ if (names.length === 0) return "";
+ if (names.length === 1) return names[0].charAt(0).toUpperCase();
+ const firstInitial = names[0].charAt(0);
+ const lastInitial = names[names.length - 1].charAt(0);
+ return `${firstInitial}${lastInitial}`.toUpperCase();
+ }, []);
+}
+function UserInfo({
+ user,
+ showEmail = false
+}) {
+ const getInitials = useInitials();
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs(Avatar, { className: "h-8 w-8 overflow-hidden rounded-full", children: [
+ /* @__PURE__ */ jsx(AvatarImage, { src: user.avatar, alt: user.name }),
+ /* @__PURE__ */ jsx(AvatarFallback, { className: "rounded-lg bg-neutral-200 text-black dark:bg-neutral-700 dark:text-white", children: getInitials(user.name) })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
+ /* @__PURE__ */ jsx("span", { className: "truncate font-medium", children: user.name }),
+ showEmail && /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-muted-foreground", children: user.email })
+ ] })
+ ] });
+}
+function useMobileNavigation() {
+ return useCallback(() => {
+ document.body.style.removeProperty("pointer-events");
+ }, []);
+}
+const edit = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.definition = {
+ methods: ["get", "head"],
+ url: "/settings/profile"
+};
+edit.url = (options) => {
+ return edit.definition.url + queryParams(options);
+};
+edit.get = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.head = (options) => ({
+ url: edit.url(options),
+ method: "head"
+});
+const editForm = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.get = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.head = (options) => ({
+ action: edit.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+edit.form = editForm;
+const update = (options) => ({
+ url: update.url(options),
+ method: "patch"
+});
+update.definition = {
+ methods: ["patch"],
+ url: "/settings/profile"
+};
+update.url = (options) => {
+ return update.definition.url + queryParams(options);
+};
+update.patch = (options) => ({
+ url: update.url(options),
+ method: "patch"
+});
+const updateForm = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PATCH",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+updateForm.patch = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PATCH",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+update.form = updateForm;
+const destroy = (options) => ({
+ url: destroy.url(options),
+ method: "delete"
+});
+destroy.definition = {
+ methods: ["delete"],
+ url: "/settings/profile"
+};
+destroy.url = (options) => {
+ return destroy.definition.url + queryParams(options);
+};
+destroy.delete = (options) => ({
+ url: destroy.url(options),
+ method: "delete"
+});
+const destroyForm = (options) => ({
+ action: destroy.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "DELETE",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+destroyForm.delete = (options) => ({
+ action: destroy.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "DELETE",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+destroy.form = destroyForm;
+({
+ edit: Object.assign(edit, edit),
+ update: Object.assign(update, update),
+ destroy: Object.assign(destroy, destroy)
+});
+function UserMenuContent({ user }) {
+ const cleanup = useMobileNavigation();
+ const handleLogout = () => {
+ cleanup();
+ router.flushAll();
+ };
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsx(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 px-1 py-1.5 text-left text-sm", children: /* @__PURE__ */ jsx(UserInfo, { user, showEmail: true }) }) }),
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
+ /* @__PURE__ */ jsx(DropdownMenuGroup, { children: /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs(
+ Link,
+ {
+ className: "block w-full",
+ href: edit(),
+ as: "button",
+ prefetch: true,
+ onClick: cleanup,
+ children: [
+ /* @__PURE__ */ jsx(Settings, { className: "mr-2" }),
+ "Settings"
+ ]
+ }
+ ) }) }),
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
+ /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs(
+ Link,
+ {
+ className: "block w-full",
+ href: logout(),
+ as: "button",
+ onClick: handleLogout,
+ "data-test": "logout-button",
+ children: [
+ /* @__PURE__ */ jsx(LogOut, { className: "mr-2" }),
+ "Log out"
+ ]
+ }
+ ) })
+ ] });
+}
+function NavUser() {
+ const { auth } = usePage().props;
+ const { state } = useSidebar();
+ const isMobile = useIsMobile();
+ return /* @__PURE__ */ jsx(SidebarMenu, { children: /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsxs(DropdownMenu, { children: [
+ /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
+ SidebarMenuButton,
+ {
+ size: "lg",
+ className: "group text-sidebar-accent-foreground data-[state=open]:bg-sidebar-accent",
+ children: [
+ /* @__PURE__ */ jsx(UserInfo, { user: auth.user }),
+ /* @__PURE__ */ jsx(ChevronsUpDown, { className: "ml-auto size-4" })
+ ]
+ }
+ ) }),
+ /* @__PURE__ */ jsx(
+ DropdownMenuContent,
+ {
+ className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",
+ align: "end",
+ side: isMobile ? "bottom" : state === "collapsed" ? "left" : "bottom",
+ children: /* @__PURE__ */ jsx(UserMenuContent, { user: auth.user })
+ }
+ )
+ ] }) }) });
+}
+const show = (options) => ({
+ url: show.url(options),
+ method: "get"
+});
+show.definition = {
+ methods: ["get", "head"],
+ url: "/faq/show"
+};
+show.url = (options) => {
+ return show.definition.url + queryParams(options);
+};
+show.get = (options) => ({
+ url: show.url(options),
+ method: "get"
+});
+show.head = (options) => ({
+ url: show.url(options),
+ method: "head"
+});
+const showForm = (options) => ({
+ action: show.url(options),
+ method: "get"
+});
+showForm.get = (options) => ({
+ action: show.url(options),
+ method: "get"
+});
+showForm.head = (options) => ({
+ action: show.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+show.form = showForm;
+const add$3 = (options) => ({
+ url: add$3.url(options),
+ method: "get"
+});
+add$3.definition = {
+ methods: ["get", "head"],
+ url: "/faq/add"
+};
+add$3.url = (options) => {
+ return add$3.definition.url + queryParams(options);
+};
+add$3.get = (options) => ({
+ url: add$3.url(options),
+ method: "get"
+});
+add$3.head = (options) => ({
+ url: add$3.url(options),
+ method: "head"
+});
+const addForm$2 = (options) => ({
+ action: add$3.url(options),
+ method: "get"
+});
+addForm$2.get = (options) => ({
+ action: add$3.url(options),
+ method: "get"
+});
+addForm$2.head = (options) => ({
+ action: add$3.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+add$3.form = addForm$2;
+const addFaq = (options) => ({
+ url: addFaq.url(options),
+ method: "post"
+});
+addFaq.definition = {
+ methods: ["post"],
+ url: "/faq/add"
+};
+addFaq.url = (options) => {
+ return addFaq.definition.url + queryParams(options);
+};
+addFaq.post = (options) => ({
+ url: addFaq.url(options),
+ method: "post"
+});
+const addFaqForm = (options) => ({
+ action: addFaq.url(options),
+ method: "post"
+});
+addFaqForm.post = (options) => ({
+ action: addFaq.url(options),
+ method: "post"
+});
+addFaq.form = addFaqForm;
+const faq = {
+ show: Object.assign(show, show),
+ add: Object.assign(add$3, add$3),
+ addFaq: Object.assign(addFaq, addFaq)
+};
+const post = (options) => ({
+ url: post.url(options),
+ method: "post"
+});
+post.definition = {
+ methods: ["post"],
+ url: "/product/add"
+};
+post.url = (options) => {
+ return post.definition.url + queryParams(options);
+};
+post.post = (options) => ({
+ url: post.url(options),
+ method: "post"
+});
+const postForm = (options) => ({
+ action: post.url(options),
+ method: "post"
+});
+postForm.post = (options) => ({
+ action: post.url(options),
+ method: "post"
+});
+post.form = postForm;
+const add$2 = {
+ post: Object.assign(post, post)
+};
+const index$3 = (options) => ({
+ url: index$3.url(options),
+ method: "get"
+});
+index$3.definition = {
+ methods: ["get", "head"],
+ url: "/product/dashboard"
+};
+index$3.url = (options) => {
+ return index$3.definition.url + queryParams(options);
+};
+index$3.get = (options) => ({
+ url: index$3.url(options),
+ method: "get"
+});
+index$3.head = (options) => ({
+ url: index$3.url(options),
+ method: "head"
+});
+const indexForm$3 = (options) => ({
+ action: index$3.url(options),
+ method: "get"
+});
+indexForm$3.get = (options) => ({
+ action: index$3.url(options),
+ method: "get"
+});
+indexForm$3.head = (options) => ({
+ action: index$3.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+index$3.form = indexForm$3;
+const add$1 = (options) => ({
+ url: add$1.url(options),
+ method: "get"
+});
+add$1.definition = {
+ methods: ["get", "head"],
+ url: "/product/add"
+};
+add$1.url = (options) => {
+ return add$1.definition.url + queryParams(options);
+};
+add$1.get = (options) => ({
+ url: add$1.url(options),
+ method: "get"
+});
+add$1.head = (options) => ({
+ url: add$1.url(options),
+ method: "head"
+});
+const addForm$1 = (options) => ({
+ action: add$1.url(options),
+ method: "get"
+});
+addForm$1.get = (options) => ({
+ action: add$1.url(options),
+ method: "get"
+});
+addForm$1.head = (options) => ({
+ action: add$1.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+add$1.form = addForm$1;
+const product = {
+ index: Object.assign(index$3, index$3),
+ add: Object.assign(add$1, add$2)
+};
+const index$2 = (options) => ({
+ url: index$2.url(options),
+ method: "get"
+});
+index$2.definition = {
+ methods: ["get", "head"],
+ url: "/carousel"
+};
+index$2.url = (options) => {
+ return index$2.definition.url + queryParams(options);
+};
+index$2.get = (options) => ({
+ url: index$2.url(options),
+ method: "get"
+});
+index$2.head = (options) => ({
+ url: index$2.url(options),
+ method: "head"
+});
+const indexForm$2 = (options) => ({
+ action: index$2.url(options),
+ method: "get"
+});
+indexForm$2.get = (options) => ({
+ action: index$2.url(options),
+ method: "get"
+});
+indexForm$2.head = (options) => ({
+ action: index$2.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+index$2.form = indexForm$2;
+const add = (options) => ({
+ url: add.url(options),
+ method: "get"
+});
+add.definition = {
+ methods: ["get", "head"],
+ url: "/carousel/add"
+};
+add.url = (options) => {
+ return add.definition.url + queryParams(options);
+};
+add.get = (options) => ({
+ url: add.url(options),
+ method: "get"
+});
+add.head = (options) => ({
+ url: add.url(options),
+ method: "head"
+});
+const addForm = (options) => ({
+ action: add.url(options),
+ method: "get"
+});
+addForm.get = (options) => ({
+ action: add.url(options),
+ method: "get"
+});
+addForm.head = (options) => ({
+ action: add.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+add.form = addForm;
+const store$1 = (options) => ({
+ url: store$1.url(options),
+ method: "post"
+});
+store$1.definition = {
+ methods: ["post"],
+ url: "/carousel"
+};
+store$1.url = (options) => {
+ return store$1.definition.url + queryParams(options);
+};
+store$1.post = (options) => ({
+ url: store$1.url(options),
+ method: "post"
+});
+const storeForm$1 = (options) => ({
+ action: store$1.url(options),
+ method: "post"
+});
+storeForm$1.post = (options) => ({
+ action: store$1.url(options),
+ method: "post"
+});
+store$1.form = storeForm$1;
+const carousel = {
+ index: Object.assign(index$2, index$2),
+ add: Object.assign(add, add),
+ store: Object.assign(store$1, store$1)
+};
+const index$1 = (options) => ({
+ url: index$1.url(options),
+ method: "get"
+});
+index$1.definition = {
+ methods: ["get", "head"],
+ url: "/dashboard"
+};
+index$1.url = (options) => {
+ return index$1.definition.url + queryParams(options);
+};
+index$1.get = (options) => ({
+ url: index$1.url(options),
+ method: "get"
+});
+index$1.head = (options) => ({
+ url: index$1.url(options),
+ method: "head"
+});
+const indexForm$1 = (options) => ({
+ action: index$1.url(options),
+ method: "get"
+});
+indexForm$1.get = (options) => ({
+ action: index$1.url(options),
+ method: "get"
+});
+indexForm$1.head = (options) => ({
+ action: index$1.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+index$1.form = indexForm$1;
+const dashboard = {
+ index: Object.assign(index$1, index$1),
+ faq: Object.assign(faq, faq),
+ product: Object.assign(product, product),
+ carousel: Object.assign(carousel, carousel)
+};
+const index = (options) => ({
+ url: index.url(options),
+ method: "get"
+});
+index.definition = {
+ methods: ["get", "head"],
+ url: "/testimonial"
+};
+index.url = (options) => {
+ return index.definition.url + queryParams(options);
+};
+index.get = (options) => ({
+ url: index.url(options),
+ method: "get"
+});
+index.head = (options) => ({
+ url: index.url(options),
+ method: "head"
+});
+const indexForm = (options) => ({
+ action: index.url(options),
+ method: "get"
+});
+indexForm.get = (options) => ({
+ action: index.url(options),
+ method: "get"
+});
+indexForm.head = (options) => ({
+ action: index.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+index.form = indexForm;
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/testimonial"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const testimonial = {
+ index: Object.assign(index, index),
+ store: Object.assign(store, store)
+};
+function AppLogo() {
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsx("div", { className: "flex aspect-square size-8 items-center justify-center rounded-md bg-sidebar-primary text-sidebar-primary-foreground", children: /* @__PURE__ */ jsx(AppLogoIcon, { className: "size-5 fill-current text-white dark:text-black" }) }),
+ /* @__PURE__ */ jsx("div", { className: "ml-1 grid flex-1 text-left text-sm", children: /* @__PURE__ */ jsx("span", { className: "mb-0.5 truncate leading-tight font-semibold", children: "Soorya Carpet" }) })
+ ] });
+}
+const mainNavItems = [
+ {
+ title: "Dashboard",
+ href: dashboard.index(),
+ icon: LayoutGrid
+ },
+ {
+ title: "Home Page Slider",
+ href: carousel.index(),
+ icon: GalleryHorizontal
+ },
+ {
+ title: "Products",
+ href: dashboard.product.index(),
+ icon: Package
+ },
+ {
+ title: "Testimonial",
+ href: testimonial.index(),
+ icon: GalleryHorizontal
+ },
+ {
+ title: "FAQs",
+ href: dashboard.faq.show(),
+ icon: TableOfContents
+ }
+];
+function AppSidebar() {
+ return /* @__PURE__ */ jsxs(Sidebar, { collapsible: "icon", variant: "inset", children: [
+ /* @__PURE__ */ jsx(SidebarHeader, { children: /* @__PURE__ */ jsx(SidebarMenu, { children: /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsx(SidebarMenuButton, { size: "lg", asChild: true, children: /* @__PURE__ */ jsx(Link, { href: dashboard.index(), prefetch: true, children: /* @__PURE__ */ jsx(AppLogo, {}) }) }) }) }) }),
+ /* @__PURE__ */ jsx(SidebarContent, { children: /* @__PURE__ */ jsx(NavMain, { items: mainNavItems }) }),
+ /* @__PURE__ */ jsx(SidebarFooter, { children: /* @__PURE__ */ jsx(NavUser, {}) })
+ ] });
+}
+function Breadcrumb({ ...props }) {
+ return /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
+}
+function BreadcrumbList({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "ol",
+ {
+ "data-slot": "breadcrumb-list",
+ className: cn(
+ "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function BreadcrumbItem({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "li",
+ {
+ "data-slot": "breadcrumb-item",
+ className: cn("inline-flex items-center gap-1.5", className),
+ ...props
+ }
+ );
+}
+function BreadcrumbLink({
+ asChild,
+ className,
+ ...props
+}) {
+ const Comp = asChild ? Slot : "a";
+ return /* @__PURE__ */ jsx(
+ Comp,
+ {
+ "data-slot": "breadcrumb-link",
+ className: cn("hover:text-foreground transition-colors", className),
+ ...props
+ }
+ );
+}
+function BreadcrumbPage({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "span",
+ {
+ "data-slot": "breadcrumb-page",
+ role: "link",
+ "aria-disabled": "true",
+ "aria-current": "page",
+ className: cn("text-foreground font-normal", className),
+ ...props
+ }
+ );
+}
+function BreadcrumbSeparator({
+ children,
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ "li",
+ {
+ "data-slot": "breadcrumb-separator",
+ role: "presentation",
+ "aria-hidden": "true",
+ className: cn("[&>svg]:size-3.5", className),
+ ...props,
+ children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
+ }
+ );
+}
+function Breadcrumbs({
+ breadcrumbs
+}) {
+ return /* @__PURE__ */ jsx(Fragment, { children: breadcrumbs.length > 0 && /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs.map((item, index2) => {
+ const isLast = index2 === breadcrumbs.length - 1;
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
+ /* @__PURE__ */ jsx(BreadcrumbItem, { children: isLast ? /* @__PURE__ */ jsx(BreadcrumbPage, { children: item.title }) : /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Link, { href: item.href, children: item.title }) }) }),
+ !isLast && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
+ ] }, index2);
+ }) }) }) });
+}
+function AppSidebarHeader({
+ breadcrumbs = []
+}) {
+ return /* @__PURE__ */ jsx("header", { className: "flex h-16 shrink-0 items-center gap-2 border-b border-sidebar-border/50 px-6 transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 md:px-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
+ /* @__PURE__ */ jsx(SidebarTrigger, { className: "-ml-1" }),
+ /* @__PURE__ */ jsx(Breadcrumbs, { breadcrumbs })
+ ] }) });
+}
+function AppSidebarLayout({
+ children,
+ breadcrumbs = []
+}) {
+ return /* @__PURE__ */ jsxs(AppShell, { variant: "sidebar", children: [
+ /* @__PURE__ */ jsx(AppSidebar, {}),
+ /* @__PURE__ */ jsxs(AppContent, { variant: "sidebar", className: "overflow-x-hidden", children: [
+ /* @__PURE__ */ jsx(AppSidebarHeader, { breadcrumbs }),
+ children
+ ] })
+ ] });
+}
+const AppLayout = ({ children, breadcrumbs, ...props }) => /* @__PURE__ */ jsx(AppSidebarLayout, { breadcrumbs, ...props, children });
+export {
+ AppLayout as A,
+ index$1 as a,
+ carousel as c,
+ dashboard as d,
+ edit as e,
+ index as i
+};
diff --git a/bootstrap/ssr/assets/app-logo-icon-kpljnLMz.js b/bootstrap/ssr/assets/app-logo-icon-kpljnLMz.js
new file mode 100644
index 0000000..03795c7
--- /dev/null
+++ b/bootstrap/ssr/assets/app-logo-icon-kpljnLMz.js
@@ -0,0 +1,14 @@
+import { jsx } from "react/jsx-runtime";
+function AppLogoIcon(props) {
+ return /* @__PURE__ */ jsx("svg", { ...props, viewBox: "0 0 40 42", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx(
+ "path",
+ {
+ fillRule: "evenodd",
+ clipRule: "evenodd",
+ d: "M17.2 5.63325L8.6 0.855469L0 5.63325V32.1434L16.2 41.1434L32.4 32.1434V23.699L40 19.4767V9.85547L31.4 5.07769L22.8 9.85547V18.2999L17.2 21.411V5.63325ZM38 18.2999L32.4 21.411V15.2545L38 12.1434V18.2999ZM36.9409 10.4439L31.4 13.5221L25.8591 10.4439L31.4 7.36561L36.9409 10.4439ZM24.8 18.2999V12.1434L30.4 15.2545V21.411L24.8 18.2999ZM23.8 20.0323L29.3409 23.1105L16.2 30.411L10.6591 27.3328L23.8 20.0323ZM7.6 27.9212L15.2 32.1434V38.2999L2 30.9666V7.92116L7.6 11.0323V27.9212ZM8.6 9.29991L3.05913 6.22165L8.6 3.14339L14.1409 6.22165L8.6 9.29991ZM30.4 24.8101L17.2 32.1434V38.2999L30.4 30.9666V24.8101ZM9.6 11.0323L15.2 7.92117V22.5221L9.6 25.6333V11.0323Z"
+ }
+ ) });
+}
+export {
+ AppLogoIcon as A
+};
diff --git a/bootstrap/ssr/assets/appearance-Bfpl1eM5.js b/bootstrap/ssr/assets/appearance-Bfpl1eM5.js
new file mode 100644
index 0000000..f78042a
--- /dev/null
+++ b/bootstrap/ssr/assets/appearance-Bfpl1eM5.js
@@ -0,0 +1,129 @@
+import { jsx, jsxs } from "react/jsx-runtime";
+import { Head } from "@inertiajs/react";
+import { useState, useCallback, useEffect } from "react";
+import { c as cn } from "./index-CY6fYws-.js";
+import { Sun, Moon, Monitor } from "lucide-react";
+import { e as edit, S as SettingsLayout, H as HeadingSmall } from "./layout-BQI5MpcL.js";
+import { A as AppLayout } from "./app-layout-BFyUFda2.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-separator";
+import "./index-BuzAnds1.js";
+import "./index-BRhO3_4E.js";
+import "./index-BHwjGIZD.js";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+const prefersDark = () => {
+ if (typeof window === "undefined") {
+ return false;
+ }
+ return window.matchMedia("(prefers-color-scheme: dark)").matches;
+};
+const setCookie = (name, value, days = 365) => {
+ if (typeof document === "undefined") {
+ return;
+ }
+ const maxAge = days * 24 * 60 * 60;
+ document.cookie = `${name}=${value};path=/;max-age=${maxAge};SameSite=Lax`;
+};
+const applyTheme = (appearance) => {
+ const isDark = appearance === "dark" || appearance === "system" && prefersDark();
+ document.documentElement.classList.toggle("dark", isDark);
+ document.documentElement.style.colorScheme = isDark ? "dark" : "light";
+};
+const mediaQuery = () => {
+ if (typeof window === "undefined") {
+ return null;
+ }
+ return window.matchMedia("(prefers-color-scheme: dark)");
+};
+const handleSystemThemeChange = () => {
+ const currentAppearance = localStorage.getItem("appearance");
+ applyTheme(currentAppearance || "system");
+};
+function useAppearance() {
+ const [appearance, setAppearance] = useState("system");
+ const updateAppearance = useCallback((mode) => {
+ setAppearance(mode);
+ localStorage.setItem("appearance", mode);
+ setCookie("appearance", mode);
+ applyTheme(mode);
+ }, []);
+ useEffect(() => {
+ const savedAppearance = localStorage.getItem(
+ "appearance"
+ );
+ updateAppearance(savedAppearance || "system");
+ return () => mediaQuery()?.removeEventListener(
+ "change",
+ handleSystemThemeChange
+ );
+ }, [updateAppearance]);
+ return { appearance, updateAppearance };
+}
+function AppearanceToggleTab({
+ className = "",
+ ...props
+}) {
+ const { appearance, updateAppearance } = useAppearance();
+ const tabs = [
+ { value: "light", icon: Sun, label: "Light" },
+ { value: "dark", icon: Moon, label: "Dark" },
+ { value: "system", icon: Monitor, label: "System" }
+ ];
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: cn(
+ "inline-flex gap-1 rounded-lg bg-neutral-100 p-1 dark:bg-neutral-800",
+ className
+ ),
+ ...props,
+ children: tabs.map(({ value, icon: Icon, label }) => /* @__PURE__ */ jsxs(
+ "button",
+ {
+ onClick: () => updateAppearance(value),
+ className: cn(
+ "flex items-center rounded-md px-3.5 py-1.5 transition-colors",
+ appearance === value ? "bg-white shadow-xs dark:bg-neutral-700 dark:text-neutral-100" : "text-neutral-500 hover:bg-neutral-200/60 hover:text-black dark:text-neutral-400 dark:hover:bg-neutral-700/60"
+ ),
+ children: [
+ /* @__PURE__ */ jsx(Icon, { className: "-ml-1 h-4 w-4" }),
+ /* @__PURE__ */ jsx("span", { className: "ml-1.5 text-sm", children: label })
+ ]
+ },
+ value
+ ))
+ }
+ );
+}
+const breadcrumbs = [
+ {
+ title: "Appearance settings",
+ href: edit().url
+ }
+];
+function Appearance() {
+ return /* @__PURE__ */ jsxs(AppLayout, { breadcrumbs, children: [
+ /* @__PURE__ */ jsx(Head, { title: "Appearance settings" }),
+ /* @__PURE__ */ jsx(SettingsLayout, { children: /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
+ /* @__PURE__ */ jsx(
+ HeadingSmall,
+ {
+ title: "Appearance settings",
+ description: "Update your account's appearance settings"
+ }
+ ),
+ /* @__PURE__ */ jsx(AppearanceToggleTab, {})
+ ] }) })
+ ] });
+}
+export {
+ Appearance as default
+};
diff --git a/bootstrap/ssr/assets/art-C_czZZ6v.js b/bootstrap/ssr/assets/art-C_czZZ6v.js
new file mode 100644
index 0000000..4339ea8
--- /dev/null
+++ b/bootstrap/ssr/assets/art-C_czZZ6v.js
@@ -0,0 +1,186 @@
+import { jsx, Fragment, jsxs } from "react/jsx-runtime";
+import { T as Tabs, a as TabsList, b as TabsTrigger, c as TabsContent } from "./tabs-C0o9riYx.js";
+import { L as Layout } from "./layout-toNsB0Jp.js";
+import { Head } from "@inertiajs/react";
+import { Shirt, Palette, Hand, Flower, Package } from "lucide-react";
+import "@radix-ui/react-tabs";
+import "./index-CY6fYws-.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "./input-DfkIsvXR.js";
+import "./label-DrpjkvJN.js";
+import "@radix-ui/react-label";
+import "@icons-pack/react-simple-icons";
+import "./select-CsRyyQUa.js";
+import "@radix-ui/react-select";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+const skill = "/build/assets/silk%20balls-DWY7AS8B.jpg";
+const skillYarn = "/build/assets/silk%20yarn-CqpV2kWc.jpg";
+const woolBall = "/build/assets/wool%20balls-DG1FtOmh.jpg";
+const woolYarn = "/build/assets/wool%20yarn-BKbNSfod.jpg";
+const artOfWeaving = "/build/assets/IMG_2719-CBS9fSAo.jpg";
+function Art() {
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Layout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "Art of Weaving" }),
+ /* @__PURE__ */ jsxs("section", { children: [
+ /* @__PURE__ */ jsxs("div", { className: "relative", children: [
+ /* @__PURE__ */ jsx("div", { className: "absolute h-full w-full bg-white/60" }),
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: artOfWeaving,
+ alt: "Art of Weaving",
+ className: "aspect-[16/4] object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsx("h1", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 font-serif text-7xl font-medium tracking-tight", children: "The Art of Weaving" })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "mx-auto flex max-w-screen-2xl flex-col gap-12 px-12 py-12", children: [
+ /* @__PURE__ */ jsx("h2", { className: "text-center font-serif text-4xl font-medium", children: "Our Craft: From Fiber to Fine Rug" }),
+ /* @__PURE__ */ jsxs(
+ Tabs,
+ {
+ defaultValue: "wool",
+ className: "grid grid-cols-4 gap-8",
+ children: [
+ /* @__PURE__ */ jsxs(TabsList, { className: "!h-auto w-full flex-col", children: [
+ /* @__PURE__ */ jsxs(
+ TabsTrigger,
+ {
+ value: "wool",
+ className: "flex w-full gap-2 py-4",
+ children: [
+ /* @__PURE__ */ jsx(Shirt, { size: 24 }),
+ " Wool Selection & Sorting"
+ ]
+ }
+ ),
+ /* @__PURE__ */ jsxs(
+ TabsTrigger,
+ {
+ value: "dyeing",
+ className: "w-full py-4",
+ children: [
+ /* @__PURE__ */ jsx(Palette, {}),
+ " Artisan Dyeing"
+ ]
+ }
+ ),
+ /* @__PURE__ */ jsxs(
+ TabsTrigger,
+ {
+ value: "hand",
+ className: "w-full py-4",
+ children: [
+ /* @__PURE__ */ jsx(Hand, {}),
+ " Hand Weaving"
+ ]
+ }
+ ),
+ /* @__PURE__ */ jsxs(
+ TabsTrigger,
+ {
+ value: "finish",
+ className: "w-full py-4",
+ children: [
+ /* @__PURE__ */ jsx(Flower, {}),
+ " Finishing & Washing"
+ ]
+ }
+ ),
+ /* @__PURE__ */ jsxs(
+ TabsTrigger,
+ {
+ value: "quality",
+ className: "w-full py-4",
+ children: [
+ /* @__PURE__ */ jsx(Package, {}),
+ " Quality Control & Packing"
+ ]
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "col-span-3", children: [
+ /* @__PURE__ */ jsx(TabsContent, { value: "wool", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-2xl font-medium", children: "Wool Selection & Sorting" }),
+ /* @__PURE__ */ jsx("p", { children: "Careful selection of the finest wool fibers, meticulously sorted by quality and texture to ensure only the best make it into our carpets." })
+ ] }) }),
+ /* @__PURE__ */ jsx(TabsContent, { value: "dyeing", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-2xl font-medium", children: "Artisan Dyeing" }),
+ /* @__PURE__ */ jsx("p", { children: "Fibers are dyed using traditional methods and natural pigments, achieving rich, vibrant, and enduring colors that tell a story." })
+ ] }) }),
+ /* @__PURE__ */ jsx(TabsContent, { value: "hand", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-2xl font-medium", children: "Hand Weaving" }),
+ /* @__PURE__ */ jsx("p", { children: "Skilled artisans hand-weave each knot with precision and passion, creating intricate patterns and unparalleled durability." })
+ ] }) }),
+ /* @__PURE__ */ jsx(TabsContent, { value: "finish", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-2xl font-medium", children: "Finishing & Washing" }),
+ /* @__PURE__ */ jsx("p", { children: "Carpets undergo specialized washing, shearing, and meticulous hand-finishing to enhance their luster and softness." })
+ ] }) }),
+ /* @__PURE__ */ jsx(TabsContent, { value: "quality", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-2xl font-medium", children: "Quality Control & Packing" }),
+ /* @__PURE__ */ jsx("p", { children: "Each rug passes rigorous quality checks before being carefully packed for its journey to your home, ensuring perfection." })
+ ] }) })
+ ] })
+ ]
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "mx-auto flex max-w-screen-2xl flex-col gap-12 px-12 py-8", children: [
+ /* @__PURE__ */ jsx("h3", { className: "text-center font-serif text-4xl font-medium", children: "Exquisite Materials" }),
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-4 gap-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: skill,
+ alt: "Skill ball",
+ className: "aspect-square rounded-lg object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-lg font-medium", children: "Skill Ball" })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: skillYarn,
+ alt: "Skill yarn",
+ className: "aspect-square rounded-lg object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-lg font-medium", children: "Skill Yarn" })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: woolBall,
+ alt: "wool ball",
+ className: "aspect-square rounded-lg object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-lg font-medium", children: "Wool Ball" })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: woolYarn,
+ alt: "wool yarn",
+ className: "aspect-square rounded-lg object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-lg font-medium", children: "Wool Yarn" })
+ ] })
+ ] })
+ ] })
+ ] })
+ ] }) });
+}
+export {
+ Art as default
+};
diff --git a/bootstrap/ssr/assets/auth-layout-iyjWmxzQ.js b/bootstrap/ssr/assets/auth-layout-iyjWmxzQ.js
new file mode 100644
index 0000000..ab6d433
--- /dev/null
+++ b/bootstrap/ssr/assets/auth-layout-iyjWmxzQ.js
@@ -0,0 +1,41 @@
+import { jsx, jsxs } from "react/jsx-runtime";
+import { A as AppLogoIcon } from "./app-logo-icon-kpljnLMz.js";
+import { h as home } from "./index-CY6fYws-.js";
+import { Link } from "@inertiajs/react";
+function AuthSimpleLayout({
+ children,
+ title,
+ description
+}) {
+ return /* @__PURE__ */ jsx("div", { className: "flex min-h-svh flex-col items-center justify-center gap-6 bg-background p-6 md:p-10", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-sm", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4", children: [
+ /* @__PURE__ */ jsxs(
+ Link,
+ {
+ href: home(),
+ className: "flex flex-col items-center gap-2 font-medium",
+ children: [
+ /* @__PURE__ */ jsx("div", { className: "mb-1 flex h-9 w-9 items-center justify-center rounded-md", children: /* @__PURE__ */ jsx(AppLogoIcon, { className: "size-9 fill-current text-[var(--foreground)] dark:text-white" }) }),
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: title })
+ ]
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2 text-center", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-xl font-medium", children: title }),
+ /* @__PURE__ */ jsx("p", { className: "text-center text-sm text-muted-foreground", children: description })
+ ] })
+ ] }),
+ children
+ ] }) }) });
+}
+function AuthLayout({
+ children,
+ title,
+ description,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(AuthSimpleLayout, { title, description, ...props, children });
+}
+export {
+ AuthLayout as A
+};
diff --git a/bootstrap/ssr/assets/bespoke-Bov4UVda.js b/bootstrap/ssr/assets/bespoke-Bov4UVda.js
new file mode 100644
index 0000000..79fb6be
--- /dev/null
+++ b/bootstrap/ssr/assets/bespoke-Bov4UVda.js
@@ -0,0 +1,110 @@
+import { jsx, Fragment, jsxs } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { u as useTranslations, L as Layout } from "./layout-toNsB0Jp.js";
+import { Head } from "@inertiajs/react";
+import { ClipboardList, Palette, Paintbrush, Truck } from "lucide-react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "./input-DfkIsvXR.js";
+import "./label-DrpjkvJN.js";
+import "@radix-ui/react-label";
+import "@icons-pack/react-simple-icons";
+import "./select-CsRyyQUa.js";
+import "@radix-ui/react-select";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+const bespokeHeader = "/build/assets/color%20swatches-Dl8_1uRD.jpg";
+function Bespoke({
+ product
+}) {
+ console.log(product);
+ const { t } = useTranslations();
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Layout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "Bespoke Design" }),
+ /* @__PURE__ */ jsx("section", { className: "", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
+ /* @__PURE__ */ jsx("div", { className: "absolute h-full w-full bg-white/30" }),
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: bespokeHeader,
+ alt: "Bespoke Design",
+ className: "aspect-[16/4] object-cover object-center max-sm:aspect-[16/9]"
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "absolute top-1/2 left-1/2 flex -translate-x-1/2 -translate-y-1/2 flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-center font-serif text-5xl font-medium tracking-tight max-md:text-4xl max-sm:text-2xl", children: t("pages.bespoke.sections.banner.title") }),
+ /* @__PURE__ */ jsx("p", { className: "text-center text-lg text-gray-800 max-sm:text-sm", children: t("pages.bespoke.sections.banner.subTitle") })
+ ] })
+ ] }) }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-12 px-12 py-18 max-sm:px-8", children: [
+ /* @__PURE__ */ jsx("h2", { className: "text-center font-serif text-4xl font-medium max-md:text-2xl", children: t("pages.bespoke.sections.first.title") }),
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-4 gap-4 max-md:grid-cols-2 max-sm:grid-cols-1", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [
+ /* @__PURE__ */ jsx(ClipboardList, { size: 40, color: "#5A1A1A" }),
+ /* @__PURE__ */ jsx("p", { className: "text-center font-serif text-xl font-medium", children: t(
+ "pages.bespoke.sections.first.card.first.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "px-4 text-center text-sm", children: t(
+ "pages.bespoke.sections.first.card.first.desc"
+ ) })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [
+ /* @__PURE__ */ jsx(Palette, { size: 40, color: "#5A1A1A" }),
+ /* @__PURE__ */ jsx("p", { className: "text-center font-serif text-xl font-medium", children: t(
+ "pages.bespoke.sections.first.card.second.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "px-4 text-center text-sm", children: t(
+ "pages.bespoke.sections.first.card.second.desc"
+ ) })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [
+ /* @__PURE__ */ jsx(Paintbrush, { size: 40, color: "#5A1A1A" }),
+ /* @__PURE__ */ jsx("p", { className: "text-center font-serif text-xl font-medium", children: t(
+ "pages.bespoke.sections.first.card.third.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "px-4 text-center text-sm", children: t(
+ "pages.bespoke.sections.first.card.third.desc"
+ ) })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center gap-2", children: [
+ /* @__PURE__ */ jsx(Truck, { size: 40, color: "#5A1A1A" }),
+ /* @__PURE__ */ jsx("p", { className: "text-center font-serif text-xl font-medium", children: t(
+ "pages.bespoke.sections.first.card.fourth.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "px-4 text-center text-sm", children: t(
+ "pages.bespoke.sections.first.card.fourth.desc"
+ ) })
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-12 px-12 py-18 max-sm:px-8", children: [
+ /* @__PURE__ */ jsx("h3", { className: "text-center font-serif text-4xl font-medium max-md:text-2xl", children: "Bespoke Product" }),
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-4 gap-4", children: product.map((item) => /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: item.image_url,
+ alt: item.title,
+ className: "aspect-[4/5] rounded-lg object-cover object-center"
+ }
+ )) })
+ ] }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col items-center gap-8 px-12 py-18 max-sm:px-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
+ /* @__PURE__ */ jsx("h4", { className: "text-center font-serif text-4xl font-medium max-md:text-2xl", children: t("pages.bespoke.sections.second.title") }),
+ /* @__PURE__ */ jsxs("p", { className: "text-center max-md:text-sm", children: [
+ t("pages.bespoke.sections.second.desc"),
+ " ",
+ /* @__PURE__ */ jsx("br", {}),
+ " ",
+ t("pages.bespoke.sections.second.desc2")
+ ] })
+ ] }),
+ /* @__PURE__ */ jsx(Button, { className: "cursor-pointer", children: t("pages.bespoke.sections.second.button") })
+ ] })
+ ] }) });
+}
+export {
+ Bespoke as default
+};
diff --git a/bootstrap/ssr/assets/carousel-BH5ls6c-.js b/bootstrap/ssr/assets/carousel-BH5ls6c-.js
new file mode 100644
index 0000000..a7657a0
--- /dev/null
+++ b/bootstrap/ssr/assets/carousel-BH5ls6c-.js
@@ -0,0 +1,71 @@
+import { jsx, Fragment, jsxs } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from "./table-DB-AS5w6.js";
+import { A as AppLayout, c as carousel } from "./app-layout-BFyUFda2.js";
+import { Head, Link } from "@inertiajs/react";
+import { Pencil, Trash2 } from "lucide-react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+function Carousel({
+ carousel: carousel$1
+}) {
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
+ AppLayout,
+ {
+ breadcrumbs: [
+ { title: "Carousel", href: carousel.index().url }
+ ],
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Carousel" }),
+ /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-8 px-8 py-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-xl font-semibold tracking-tight", children: "Carousel" }),
+ /* @__PURE__ */ jsx(Link, { href: carousel.add(), children: /* @__PURE__ */ jsx(Button, { className: "cursor-pointer", children: "Add Image" }) })
+ ] }),
+ /* @__PURE__ */ jsxs(Table, { children: [
+ /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[80px]", children: "S.N." }),
+ /* @__PURE__ */ jsx(TableHead, { className: "w-48", children: "Image" }),
+ /* @__PURE__ */ jsx(TableHead, { children: "Title" }),
+ /* @__PURE__ */ jsx(TableHead, { className: "text-right", children: "Action" })
+ ] }) }),
+ /* @__PURE__ */ jsx(TableBody, { children: carousel$1.map((item, index) => /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableCell, { className: "font-medium", children: index + 1 }),
+ /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: item.image_url,
+ alt: item.alt,
+ className: "aspect-video w-24 rounded-md object-cover object-center"
+ }
+ ) }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.alt }),
+ /* @__PURE__ */ jsx(TableCell, { className: "text-right", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(Pencil, { size: 18 }) }),
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(
+ Trash2,
+ {
+ size: 18,
+ color: "#D2042D"
+ }
+ ) })
+ ] }) })
+ ] }, index)) })
+ ] })
+ ] })
+ ]
+ }
+ ) });
+}
+export {
+ Carousel as default
+};
diff --git a/bootstrap/ssr/assets/confirm-password-yJ2scxPz.js b/bootstrap/ssr/assets/confirm-password-yJ2scxPz.js
new file mode 100644
index 0000000..2df20d4
--- /dev/null
+++ b/bootstrap/ssr/assets/confirm-password-yJ2scxPz.js
@@ -0,0 +1,59 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { B as Button } from "./index-CY6fYws-.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { A as AuthLayout } from "./auth-layout-iyjWmxzQ.js";
+import { s as store } from "./index-BRhO3_4E.js";
+import { Head, Form } from "@inertiajs/react";
+import { LoaderCircle } from "lucide-react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "./app-logo-icon-kpljnLMz.js";
+function ConfirmPassword() {
+ return /* @__PURE__ */ jsxs(
+ AuthLayout,
+ {
+ title: "Confirm your password",
+ description: "This is a secure area of the application. Please confirm your password before continuing.",
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Confirm password" }),
+ /* @__PURE__ */ jsx(Form, { ...store.form(), resetOnSuccess: ["password"], children: ({ processing, errors }) => /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", children: "Password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password",
+ type: "password",
+ name: "password",
+ placeholder: "Password",
+ autoComplete: "current-password",
+ autoFocus: true
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.password })
+ ] }),
+ /* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsxs(
+ Button,
+ {
+ className: "w-full",
+ disabled: processing,
+ "data-test": "confirm-password-button",
+ children: [
+ processing && /* @__PURE__ */ jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" }),
+ "Confirm password"
+ ]
+ }
+ ) })
+ ] }) })
+ ]
+ }
+ );
+}
+export {
+ ConfirmPassword as default
+};
diff --git a/bootstrap/ssr/assets/contact-DiSMu-mk.js b/bootstrap/ssr/assets/contact-DiSMu-mk.js
new file mode 100644
index 0000000..f854d43
--- /dev/null
+++ b/bootstrap/ssr/assets/contact-DiSMu-mk.js
@@ -0,0 +1,230 @@
+import { jsx, Fragment, jsxs } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, d as SelectItem } from "./select-CsRyyQUa.js";
+import { T as Textarea } from "./textarea-CcuSk8nN.js";
+import { u as useTranslations, L as Layout } from "./layout-toNsB0Jp.js";
+import { Head, Form } from "@inertiajs/react";
+import { MapPin, Phone, Mail } from "lucide-react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "@radix-ui/react-select";
+import "@icons-pack/react-simple-icons";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+function Contact() {
+ const { t } = useTranslations();
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Layout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "Contact Us" }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-12 px-12 py-12 max-md:px-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-center font-serif text-5xl font-medium tracking-tight max-md:text-3xl", children: t("pages.contact.sections.first.title") }),
+ /* @__PURE__ */ jsxs("p", { className: "text-center text-sm", children: [
+ t("pages.contact.sections.first.subTitle"),
+ " ",
+ /* @__PURE__ */ jsx("br", {}),
+ " ",
+ t("pages.contact.sections.first.subTitle2")
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-8", children: [
+ /* @__PURE__ */ jsx("h2", { className: "text-center font-serif text-3xl font-medium tracking-tight", children: t("pages.contact.sections.second.title") }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-center gap-24 max-md:flex-col max-md:gap-12", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-xl font-medium tracking-tight", children: t(
+ "pages.contact.sections.second.soorya.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-500", children: t(
+ "pages.contact.sections.second.soorya.subTitle"
+ ) })
+ ] }),
+ /* @__PURE__ */ jsxs("ul", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
+ /* @__PURE__ */ jsx(MapPin, { size: 16 }),
+ " ",
+ t(
+ "pages.contact.sections.second.soorya.address"
+ )
+ ] }),
+ " ",
+ /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
+ /* @__PURE__ */ jsx(Phone, { size: 16 }),
+ " ",
+ t(
+ "pages.contact.sections.second.soorya.phone"
+ )
+ ] }),
+ " ",
+ /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
+ /* @__PURE__ */ jsx(Mail, { size: 16 }),
+ " ",
+ t(
+ "pages.contact.sections.second.soorya.email"
+ )
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-serif text-xl font-medium tracking-tight", children: t(
+ "pages.contact.sections.second.kaleen.title"
+ ) }),
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-500", children: t(
+ "pages.contact.sections.second.kaleen.subTitle"
+ ) })
+ ] }),
+ /* @__PURE__ */ jsxs("ul", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
+ /* @__PURE__ */ jsx(MapPin, { size: 16 }),
+ " ",
+ t(
+ "pages.contact.sections.second.kaleen.address"
+ )
+ ] }),
+ " ",
+ /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
+ /* @__PURE__ */ jsx(Phone, { size: 16 }),
+ " ",
+ t(
+ "pages.contact.sections.second.kaleen.phone"
+ )
+ ] })
+ ] }),
+ /* @__PURE__ */ jsx(
+ "a",
+ {
+ href: "https://maps.app.goo.gl/666dbJEfsVvjJ3fu9",
+ target: "_blank",
+ className: "cursor-pointer",
+ children: /* @__PURE__ */ jsx(
+ Button,
+ {
+ className: "w-full cursor-pointer border border-primary text-primary ring-primary",
+ variant: "outline",
+ children: t(
+ "pages.contact.sections.second.kaleen.button"
+ )
+ }
+ )
+ }
+ )
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "mx-auto flex w-full max-w-3xl flex-col gap-8 py-12", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx("h3", { className: "font-serif text-3xl font-medium", children: t("pages.contact.sections.third.title") }),
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-500", children: t("pages.contact.sections.third.subTitle") })
+ ] }),
+ /* @__PURE__ */ jsxs(Form, { action: "/", className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "name", children: t(
+ "pages.contact.sections.third.form.name.label"
+ ) }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ placeholder: t(
+ "pages.contact.sections.third.form.name.input"
+ ),
+ id: "name",
+ name: "name"
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: t(
+ "pages.contact.sections.third.form.email.label"
+ ) }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ placeholder: t(
+ "pages.contact.sections.third.form.email.input"
+ ),
+ id: "email",
+ name: "email"
+ }
+ )
+ ] }),
+ " ",
+ /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: t(
+ "pages.contact.sections.third.form.inquiry.label"
+ ) }),
+ /* @__PURE__ */ jsxs(Select, { children: [
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "w-full", children: /* @__PURE__ */ jsx(
+ SelectValue,
+ {
+ placeholder: t(
+ "pages.contact.sections.third.form.inquiry.input"
+ )
+ }
+ ) }),
+ /* @__PURE__ */ jsxs(SelectContent, { children: [
+ /* @__PURE__ */ jsx(SelectItem, { value: "problem", children: "Problem in product" }),
+ /* @__PURE__ */ jsx(SelectItem, { value: "contact", children: "Contacting" })
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "message", children: t(
+ "pages.contact.sections.third.form.message.label"
+ ) }),
+ /* @__PURE__ */ jsx(
+ Textarea,
+ {
+ id: "message",
+ placeholder: t(
+ "pages.contact.sections.third.form.message.input"
+ )
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsx(Button, { type: "submit", className: "my-4", children: t("pages.contact.sections.third.form.button") })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2", children: [
+ /* @__PURE__ */ jsx("h4", { className: "text-center font-serif text-3xl font-medium tracking-tight", children: t("pages.contact.sections.fourth.title") }),
+ /* @__PURE__ */ jsxs("p", { className: "text-center text-sm text-gray-500", children: [
+ t("pages.contact.sections.fourth.desc"),
+ " ",
+ /* @__PURE__ */ jsx("br", {}),
+ " ",
+ t("pages.contact.sections.fourth.desc2")
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
+ /* @__PURE__ */ jsx("a", { href: "tel:9802341880", children: /* @__PURE__ */ jsxs(Button, { className: "cursor-pointer", children: [
+ /* @__PURE__ */ jsx(Phone, {}),
+ " ",
+ t("pages.contact.sections.fourth.callBtn")
+ ] }) }),
+ /* @__PURE__ */ jsx("a", { href: "mailto:info@soory.com", children: /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "outline",
+ className: "cursor-pointer border border-primary text-primary ring-primary",
+ children: [
+ /* @__PURE__ */ jsx(Mail, {}),
+ " ",
+ t(
+ "pages.contact.sections.fourth.emailBtn"
+ )
+ ]
+ }
+ ) })
+ ] })
+ ] })
+ ] })
+ ] }) });
+}
+export {
+ Contact as default
+};
diff --git a/bootstrap/ssr/assets/dashboard-CbiUEmKd.js b/bootstrap/ssr/assets/dashboard-CbiUEmKd.js
new file mode 100644
index 0000000..13865d4
--- /dev/null
+++ b/bootstrap/ssr/assets/dashboard-CbiUEmKd.js
@@ -0,0 +1,45 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { useId } from "react";
+import { A as AppLayout, a as index } from "./app-layout-BFyUFda2.js";
+import { Head } from "@inertiajs/react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "lucide-react";
+import "./index-CY6fYws-.js";
+import "clsx";
+import "tailwind-merge";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+function PlaceholderPattern({ className }) {
+ const patternId = useId();
+ return /* @__PURE__ */ jsxs("svg", { className, fill: "none", children: [
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("pattern", { id: patternId, x: "0", y: "0", width: "10", height: "10", patternUnits: "userSpaceOnUse", children: /* @__PURE__ */ jsx("path", { d: "M-3 13 15-5M-5 5l18-18M-1 21 17 3" }) }) }),
+ /* @__PURE__ */ jsx("rect", { stroke: "none", fill: `url(#${patternId})`, width: "100%", height: "100%" })
+ ] });
+}
+const breadcrumbs = [
+ {
+ title: "Dashboard",
+ href: index().url
+ }
+];
+function Dashboard() {
+ return /* @__PURE__ */ jsxs(AppLayout, { breadcrumbs, children: [
+ /* @__PURE__ */ jsx(Head, { title: "Dashboard" }),
+ /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-1 flex-col gap-4 overflow-x-auto rounded-xl p-4", children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid auto-rows-min gap-4 md:grid-cols-3", children: [
+ /* @__PURE__ */ jsx("div", { className: "relative aspect-video overflow-hidden rounded-xl border border-sidebar-border/70 dark:border-sidebar-border", children: /* @__PURE__ */ jsx(PlaceholderPattern, { className: "absolute inset-0 size-full stroke-neutral-900/20 dark:stroke-neutral-100/20" }) }),
+ /* @__PURE__ */ jsx("div", { className: "relative aspect-video overflow-hidden rounded-xl border border-sidebar-border/70 dark:border-sidebar-border", children: /* @__PURE__ */ jsx(PlaceholderPattern, { className: "absolute inset-0 size-full stroke-neutral-900/20 dark:stroke-neutral-100/20" }) }),
+ /* @__PURE__ */ jsx("div", { className: "relative aspect-video overflow-hidden rounded-xl border border-sidebar-border/70 dark:border-sidebar-border", children: /* @__PURE__ */ jsx(PlaceholderPattern, { className: "absolute inset-0 size-full stroke-neutral-900/20 dark:stroke-neutral-100/20" }) })
+ ] }),
+ /* @__PURE__ */ jsx("div", { className: "relative min-h-[100vh] flex-1 overflow-hidden rounded-xl border border-sidebar-border/70 md:min-h-min dark:border-sidebar-border", children: /* @__PURE__ */ jsx(PlaceholderPattern, { className: "absolute inset-0 size-full stroke-neutral-900/20 dark:stroke-neutral-100/20" }) })
+ ] })
+ ] });
+}
+export {
+ Dashboard as default
+};
diff --git a/bootstrap/ssr/assets/dialog-C3kXNAKa.js b/bootstrap/ssr/assets/dialog-C3kXNAKa.js
new file mode 100644
index 0000000..963cff8
--- /dev/null
+++ b/bootstrap/ssr/assets/dialog-C3kXNAKa.js
@@ -0,0 +1,126 @@
+import { jsx, jsxs } from "react/jsx-runtime";
+import * as SheetPrimitive from "@radix-ui/react-dialog";
+import { XIcon } from "lucide-react";
+import { c as cn } from "./index-CY6fYws-.js";
+function Dialog({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SheetPrimitive.Root, { "data-slot": "dialog", ...props });
+}
+function DialogTrigger({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "dialog-trigger", ...props });
+}
+function DialogPortal({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
+}
+function DialogClose({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "dialog-close", ...props });
+}
+function DialogOverlay({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SheetPrimitive.Overlay,
+ {
+ "data-slot": "dialog-overlay",
+ className: cn(
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function DialogContent({
+ className,
+ children,
+ ...props
+}) {
+ return /* @__PURE__ */ jsxs(DialogPortal, { "data-slot": "dialog-portal", children: [
+ /* @__PURE__ */ jsx(DialogOverlay, {}),
+ /* @__PURE__ */ jsxs(
+ SheetPrimitive.Content,
+ {
+ "data-slot": "dialog-content",
+ className: cn(
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",
+ className
+ ),
+ ...props,
+ children: [
+ children,
+ /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", children: [
+ /* @__PURE__ */ jsx(XIcon, {}),
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
+ ] })
+ ]
+ }
+ )
+ ] });
+}
+function DialogHeader({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "dialog-header",
+ className: cn("flex flex-col gap-2 text-center sm:text-left", className),
+ ...props
+ }
+ );
+}
+function DialogFooter({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "dialog-footer",
+ className: cn(
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function DialogTitle({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SheetPrimitive.Title,
+ {
+ "data-slot": "dialog-title",
+ className: cn("text-lg leading-none font-semibold", className),
+ ...props
+ }
+ );
+}
+function DialogDescription({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SheetPrimitive.Description,
+ {
+ "data-slot": "dialog-description",
+ className: cn("text-muted-foreground text-sm", className),
+ ...props
+ }
+ );
+}
+export {
+ Dialog as D,
+ DialogTrigger as a,
+ DialogContent as b,
+ DialogTitle as c,
+ DialogDescription as d,
+ DialogFooter as e,
+ DialogClose as f,
+ DialogHeader as g
+};
diff --git a/bootstrap/ssr/assets/edit-l0sNRNKZ.js b/bootstrap/ssr/assets/edit-l0sNRNKZ.js
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/bootstrap/ssr/assets/edit-l0sNRNKZ.js
@@ -0,0 +1 @@
+
diff --git a/bootstrap/ssr/assets/faq-pz_F0yUl.js b/bootstrap/ssr/assets/faq-pz_F0yUl.js
new file mode 100644
index 0000000..b12ff0b
--- /dev/null
+++ b/bootstrap/ssr/assets/faq-pz_F0yUl.js
@@ -0,0 +1,153 @@
+import { jsx, jsxs, Fragment } from "react/jsx-runtime";
+import * as AccordionPrimitive from "@radix-ui/react-accordion";
+import { ChevronDownIcon } from "lucide-react";
+import { c as cn, d as contact, B as Button } from "./index-CY6fYws-.js";
+import { L as Layout } from "./layout-toNsB0Jp.js";
+import { Head, Link } from "@inertiajs/react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "./input-DfkIsvXR.js";
+import "./label-DrpjkvJN.js";
+import "@radix-ui/react-label";
+import "@icons-pack/react-simple-icons";
+import "./select-CsRyyQUa.js";
+import "@radix-ui/react-select";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+function Accordion({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
+}
+function AccordionItem({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ AccordionPrimitive.Item,
+ {
+ "data-slot": "accordion-item",
+ className: cn("border-b last:border-b-0", className),
+ ...props
+ }
+ );
+}
+function AccordionTrigger({
+ className,
+ children,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
+ AccordionPrimitive.Trigger,
+ {
+ "data-slot": "accordion-trigger",
+ className: cn(
+ "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
+ className
+ ),
+ ...props,
+ children: [
+ children,
+ /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
+ ]
+ }
+ ) });
+}
+function AccordionContent({
+ className,
+ children,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ AccordionPrimitive.Content,
+ {
+ "data-slot": "accordion-content",
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
+ ...props,
+ children: /* @__PURE__ */ jsx("div", { className: cn("pt-0 pb-4", className), children })
+ }
+ );
+}
+const img1 = "/build/assets/bes%205-BwicfiFA.jpg";
+const img4 = "/build/assets/Ree%206-CXyPf4sr.jpg";
+const img3 = "/build/assets/Shrek-HrZ6bJMT.jpg";
+const img2 = "/build/assets/Swarovsky%20embedded%20wall%20hang-CEzO-m5f.jpg";
+function Faq({
+ faq
+}) {
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Layout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "FAQs" }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto grid max-w-screen-2xl grid-cols-12 gap-32 px-12 py-8 max-sm:grid-cols-1 max-sm:gap-8 max-sm:px-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "col-span-4 flex flex-col items-start gap-4", children: [
+ /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsx("h1", { className: "font-serif text-4xl font-medium tracking-tight", children: "Frequently Asked Questions" }),
+ /* @__PURE__ */ jsx("p", { children: "Any question, answered right here" })
+ ] }),
+ /* @__PURE__ */ jsx(Link, { href: contact(), children: /* @__PURE__ */ jsx(
+ Button,
+ {
+ className: "cursor-pointer border border-primary font-serif ring-primary",
+ variant: "outline",
+ children: "Contact Now"
+ }
+ ) }),
+ /* @__PURE__ */ jsxs("div", { className: "mt-8 grid grid-cols-2 gap-2 max-sm:mt-2 max-sm:hidden", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: img1,
+ alt: "Image 1",
+ className: "rounded-lg"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: img4,
+ alt: "Image 4",
+ className: "rounded-lg"
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: img2,
+ alt: "Image 2",
+ className: "rounded-lg"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: img3,
+ alt: "Image 3",
+ className: "rounded-lg"
+ }
+ )
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsx("div", { className: "col-span-8 w-full", children: /* @__PURE__ */ jsx(
+ Accordion,
+ {
+ type: "single",
+ collapsible: true,
+ className: "w-full",
+ defaultValue: "1",
+ children: faq.map((item) => /* @__PURE__ */ jsxs(AccordionItem, { value: `${item.id}`, children: [
+ /* @__PURE__ */ jsx(AccordionTrigger, { className: "w-full", children: item?.question }),
+ /* @__PURE__ */ jsx(AccordionContent, { className: "px-2 text-gray-600", children: item?.answer })
+ ] }))
+ }
+ ) })
+ ] })
+ ] }) });
+}
+export {
+ Faq as default
+};
diff --git a/bootstrap/ssr/assets/forgot-password-BNiMrYQb.js b/bootstrap/ssr/assets/forgot-password-BNiMrYQb.js
new file mode 100644
index 0000000..2a77f59
--- /dev/null
+++ b/bootstrap/ssr/assets/forgot-password-BNiMrYQb.js
@@ -0,0 +1,128 @@
+import { jsxs, jsx, Fragment } from "react/jsx-runtime";
+import { q as queryParams, B as Button, l as login } from "./index-CY6fYws-.js";
+import { Head, Form } from "@inertiajs/react";
+import { LoaderCircle } from "lucide-react";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { T as TextLink } from "./text-link-ByYmiDlq.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { A as AuthLayout } from "./auth-layout-iyjWmxzQ.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "./app-logo-icon-kpljnLMz.js";
+const create = (options) => ({
+ url: create.url(options),
+ method: "get"
+});
+create.definition = {
+ methods: ["get", "head"],
+ url: "/forgot-password"
+};
+create.url = (options) => {
+ return create.definition.url + queryParams(options);
+};
+create.get = (options) => ({
+ url: create.url(options),
+ method: "get"
+});
+create.head = (options) => ({
+ url: create.url(options),
+ method: "head"
+});
+const createForm = (options) => ({
+ action: create.url(options),
+ method: "get"
+});
+createForm.get = (options) => ({
+ action: create.url(options),
+ method: "get"
+});
+createForm.head = (options) => ({
+ action: create.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+create.form = createForm;
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/forgot-password"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const PasswordResetLinkController = { store };
+function ForgotPassword({ status }) {
+ return /* @__PURE__ */ jsxs(
+ AuthLayout,
+ {
+ title: "Forgot password",
+ description: "Enter your email to receive a password reset link",
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Forgot password" }),
+ status && /* @__PURE__ */ jsx("div", { className: "mb-4 text-center text-sm font-medium text-green-600", children: status }),
+ /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
+ /* @__PURE__ */ jsx(Form, { ...PasswordResetLinkController.store.form(), children: ({ processing, errors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email address" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "email",
+ type: "email",
+ name: "email",
+ autoComplete: "off",
+ autoFocus: true,
+ placeholder: "email@example.com"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.email })
+ ] }),
+ /* @__PURE__ */ jsx("div", { className: "my-6 flex items-center justify-start", children: /* @__PURE__ */ jsxs(
+ Button,
+ {
+ className: "w-full",
+ disabled: processing,
+ "data-test": "email-password-reset-link-button",
+ children: [
+ processing && /* @__PURE__ */ jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" }),
+ "Email password reset link"
+ ]
+ }
+ ) })
+ ] }) }),
+ /* @__PURE__ */ jsxs("div", { className: "space-x-1 text-center text-sm text-muted-foreground", children: [
+ /* @__PURE__ */ jsx("span", { children: "Or, return to" }),
+ /* @__PURE__ */ jsx(TextLink, { href: login(), children: "log in" })
+ ] })
+ ] })
+ ]
+ }
+ );
+}
+export {
+ ForgotPassword as default
+};
diff --git a/bootstrap/ssr/assets/index-BHwjGIZD.js b/bootstrap/ssr/assets/index-BHwjGIZD.js
new file mode 100644
index 0000000..0b2b8ad
--- /dev/null
+++ b/bootstrap/ssr/assets/index-BHwjGIZD.js
@@ -0,0 +1,341 @@
+import { q as queryParams } from "./index-CY6fYws-.js";
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/two-factor-challenge"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const login$1 = {
+ store: Object.assign(store, store)
+};
+const login = (options) => ({
+ url: login.url(options),
+ method: "get"
+});
+login.definition = {
+ methods: ["get", "head"],
+ url: "/two-factor-challenge"
+};
+login.url = (options) => {
+ return login.definition.url + queryParams(options);
+};
+login.get = (options) => ({
+ url: login.url(options),
+ method: "get"
+});
+login.head = (options) => ({
+ url: login.url(options),
+ method: "head"
+});
+const loginForm = (options) => ({
+ action: login.url(options),
+ method: "get"
+});
+loginForm.get = (options) => ({
+ action: login.url(options),
+ method: "get"
+});
+loginForm.head = (options) => ({
+ action: login.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+login.form = loginForm;
+const enable = (options) => ({
+ url: enable.url(options),
+ method: "post"
+});
+enable.definition = {
+ methods: ["post"],
+ url: "/user/two-factor-authentication"
+};
+enable.url = (options) => {
+ return enable.definition.url + queryParams(options);
+};
+enable.post = (options) => ({
+ url: enable.url(options),
+ method: "post"
+});
+const enableForm = (options) => ({
+ action: enable.url(options),
+ method: "post"
+});
+enableForm.post = (options) => ({
+ action: enable.url(options),
+ method: "post"
+});
+enable.form = enableForm;
+const confirm = (options) => ({
+ url: confirm.url(options),
+ method: "post"
+});
+confirm.definition = {
+ methods: ["post"],
+ url: "/user/confirmed-two-factor-authentication"
+};
+confirm.url = (options) => {
+ return confirm.definition.url + queryParams(options);
+};
+confirm.post = (options) => ({
+ url: confirm.url(options),
+ method: "post"
+});
+const confirmForm = (options) => ({
+ action: confirm.url(options),
+ method: "post"
+});
+confirmForm.post = (options) => ({
+ action: confirm.url(options),
+ method: "post"
+});
+confirm.form = confirmForm;
+const disable = (options) => ({
+ url: disable.url(options),
+ method: "delete"
+});
+disable.definition = {
+ methods: ["delete"],
+ url: "/user/two-factor-authentication"
+};
+disable.url = (options) => {
+ return disable.definition.url + queryParams(options);
+};
+disable.delete = (options) => ({
+ url: disable.url(options),
+ method: "delete"
+});
+const disableForm = (options) => ({
+ action: disable.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "DELETE",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+disableForm.delete = (options) => ({
+ action: disable.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "DELETE",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+disable.form = disableForm;
+const qrCode = (options) => ({
+ url: qrCode.url(options),
+ method: "get"
+});
+qrCode.definition = {
+ methods: ["get", "head"],
+ url: "/user/two-factor-qr-code"
+};
+qrCode.url = (options) => {
+ return qrCode.definition.url + queryParams(options);
+};
+qrCode.get = (options) => ({
+ url: qrCode.url(options),
+ method: "get"
+});
+qrCode.head = (options) => ({
+ url: qrCode.url(options),
+ method: "head"
+});
+const qrCodeForm = (options) => ({
+ action: qrCode.url(options),
+ method: "get"
+});
+qrCodeForm.get = (options) => ({
+ action: qrCode.url(options),
+ method: "get"
+});
+qrCodeForm.head = (options) => ({
+ action: qrCode.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+qrCode.form = qrCodeForm;
+const secretKey = (options) => ({
+ url: secretKey.url(options),
+ method: "get"
+});
+secretKey.definition = {
+ methods: ["get", "head"],
+ url: "/user/two-factor-secret-key"
+};
+secretKey.url = (options) => {
+ return secretKey.definition.url + queryParams(options);
+};
+secretKey.get = (options) => ({
+ url: secretKey.url(options),
+ method: "get"
+});
+secretKey.head = (options) => ({
+ url: secretKey.url(options),
+ method: "head"
+});
+const secretKeyForm = (options) => ({
+ action: secretKey.url(options),
+ method: "get"
+});
+secretKeyForm.get = (options) => ({
+ action: secretKey.url(options),
+ method: "get"
+});
+secretKeyForm.head = (options) => ({
+ action: secretKey.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+secretKey.form = secretKeyForm;
+const recoveryCodes = (options) => ({
+ url: recoveryCodes.url(options),
+ method: "get"
+});
+recoveryCodes.definition = {
+ methods: ["get", "head"],
+ url: "/user/two-factor-recovery-codes"
+};
+recoveryCodes.url = (options) => {
+ return recoveryCodes.definition.url + queryParams(options);
+};
+recoveryCodes.get = (options) => ({
+ url: recoveryCodes.url(options),
+ method: "get"
+});
+recoveryCodes.head = (options) => ({
+ url: recoveryCodes.url(options),
+ method: "head"
+});
+const recoveryCodesForm = (options) => ({
+ action: recoveryCodes.url(options),
+ method: "get"
+});
+recoveryCodesForm.get = (options) => ({
+ action: recoveryCodes.url(options),
+ method: "get"
+});
+recoveryCodesForm.head = (options) => ({
+ action: recoveryCodes.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+recoveryCodes.form = recoveryCodesForm;
+const regenerateRecoveryCodes = (options) => ({
+ url: regenerateRecoveryCodes.url(options),
+ method: "post"
+});
+regenerateRecoveryCodes.definition = {
+ methods: ["post"],
+ url: "/user/two-factor-recovery-codes"
+};
+regenerateRecoveryCodes.url = (options) => {
+ return regenerateRecoveryCodes.definition.url + queryParams(options);
+};
+regenerateRecoveryCodes.post = (options) => ({
+ url: regenerateRecoveryCodes.url(options),
+ method: "post"
+});
+const regenerateRecoveryCodesForm = (options) => ({
+ action: regenerateRecoveryCodes.url(options),
+ method: "post"
+});
+regenerateRecoveryCodesForm.post = (options) => ({
+ action: regenerateRecoveryCodes.url(options),
+ method: "post"
+});
+regenerateRecoveryCodes.form = regenerateRecoveryCodesForm;
+const show = (options) => ({
+ url: show.url(options),
+ method: "get"
+});
+show.definition = {
+ methods: ["get", "head"],
+ url: "/settings/two-factor"
+};
+show.url = (options) => {
+ return show.definition.url + queryParams(options);
+};
+show.get = (options) => ({
+ url: show.url(options),
+ method: "get"
+});
+show.head = (options) => ({
+ url: show.url(options),
+ method: "head"
+});
+const showForm = (options) => ({
+ action: show.url(options),
+ method: "get"
+});
+showForm.get = (options) => ({
+ action: show.url(options),
+ method: "get"
+});
+showForm.head = (options) => ({
+ action: show.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+show.form = showForm;
+({
+ login: Object.assign(login, login$1),
+ enable: Object.assign(enable, enable),
+ confirm: Object.assign(confirm, confirm),
+ disable: Object.assign(disable, disable),
+ qrCode: Object.assign(qrCode, qrCode),
+ secretKey: Object.assign(secretKey, secretKey),
+ recoveryCodes: Object.assign(recoveryCodes, recoveryCodes),
+ regenerateRecoveryCodes: Object.assign(regenerateRecoveryCodes, regenerateRecoveryCodes),
+ show: Object.assign(show, show)
+});
+export {
+ secretKey as a,
+ show as b,
+ regenerateRecoveryCodes as c,
+ confirm as d,
+ disable as e,
+ enable as f,
+ qrCode as q,
+ recoveryCodes as r,
+ store as s
+};
diff --git a/bootstrap/ssr/assets/index-BRhO3_4E.js b/bootstrap/ssr/assets/index-BRhO3_4E.js
new file mode 100644
index 0000000..986ecd7
--- /dev/null
+++ b/bootstrap/ssr/assets/index-BRhO3_4E.js
@@ -0,0 +1,32 @@
+import { q as queryParams } from "./index-CY6fYws-.js";
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/user/confirm-password"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const confirm = {
+ store: Object.assign(store, store)
+};
+export {
+ confirm as c,
+ store as s
+};
diff --git a/bootstrap/ssr/assets/index-BuzAnds1.js b/bootstrap/ssr/assets/index-BuzAnds1.js
new file mode 100644
index 0000000..aabf74f
--- /dev/null
+++ b/bootstrap/ssr/assets/index-BuzAnds1.js
@@ -0,0 +1,295 @@
+import { q as queryParams, a as applyUrlDefaults } from "./index-CY6fYws-.js";
+import { c as confirm$1 } from "./index-BRhO3_4E.js";
+const confirm = (options) => ({
+ url: confirm.url(options),
+ method: "get"
+});
+confirm.definition = {
+ methods: ["get", "head"],
+ url: "/user/confirm-password"
+};
+confirm.url = (options) => {
+ return confirm.definition.url + queryParams(options);
+};
+confirm.get = (options) => ({
+ url: confirm.url(options),
+ method: "get"
+});
+confirm.head = (options) => ({
+ url: confirm.url(options),
+ method: "head"
+});
+const confirmForm = (options) => ({
+ action: confirm.url(options),
+ method: "get"
+});
+confirmForm.get = (options) => ({
+ action: confirm.url(options),
+ method: "get"
+});
+confirmForm.head = (options) => ({
+ action: confirm.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+confirm.form = confirmForm;
+const confirmation = (options) => ({
+ url: confirmation.url(options),
+ method: "get"
+});
+confirmation.definition = {
+ methods: ["get", "head"],
+ url: "/user/confirmed-password-status"
+};
+confirmation.url = (options) => {
+ return confirmation.definition.url + queryParams(options);
+};
+confirmation.get = (options) => ({
+ url: confirmation.url(options),
+ method: "get"
+});
+confirmation.head = (options) => ({
+ url: confirmation.url(options),
+ method: "head"
+});
+const confirmationForm = (options) => ({
+ action: confirmation.url(options),
+ method: "get"
+});
+confirmationForm.get = (options) => ({
+ action: confirmation.url(options),
+ method: "get"
+});
+confirmationForm.head = (options) => ({
+ action: confirmation.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+confirmation.form = confirmationForm;
+const edit = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.definition = {
+ methods: ["get", "head"],
+ url: "/settings/password"
+};
+edit.url = (options) => {
+ return edit.definition.url + queryParams(options);
+};
+edit.get = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.head = (options) => ({
+ url: edit.url(options),
+ method: "head"
+});
+const editForm = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.get = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.head = (options) => ({
+ action: edit.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+edit.form = editForm;
+const update = (options) => ({
+ url: update.url(options),
+ method: "put"
+});
+update.definition = {
+ methods: ["put"],
+ url: "/settings/password"
+};
+update.url = (options) => {
+ return update.definition.url + queryParams(options);
+};
+update.put = (options) => ({
+ url: update.url(options),
+ method: "put"
+});
+const updateForm = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PUT",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+updateForm.put = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PUT",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+update.form = updateForm;
+const request = (options) => ({
+ url: request.url(options),
+ method: "get"
+});
+request.definition = {
+ methods: ["get", "head"],
+ url: "/forgot-password"
+};
+request.url = (options) => {
+ return request.definition.url + queryParams(options);
+};
+request.get = (options) => ({
+ url: request.url(options),
+ method: "get"
+});
+request.head = (options) => ({
+ url: request.url(options),
+ method: "head"
+});
+const requestForm = (options) => ({
+ action: request.url(options),
+ method: "get"
+});
+requestForm.get = (options) => ({
+ action: request.url(options),
+ method: "get"
+});
+requestForm.head = (options) => ({
+ action: request.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+request.form = requestForm;
+const email = (options) => ({
+ url: email.url(options),
+ method: "post"
+});
+email.definition = {
+ methods: ["post"],
+ url: "/forgot-password"
+};
+email.url = (options) => {
+ return email.definition.url + queryParams(options);
+};
+email.post = (options) => ({
+ url: email.url(options),
+ method: "post"
+});
+const emailForm = (options) => ({
+ action: email.url(options),
+ method: "post"
+});
+emailForm.post = (options) => ({
+ action: email.url(options),
+ method: "post"
+});
+email.form = emailForm;
+const reset = (args, options) => ({
+ url: reset.url(args, options),
+ method: "get"
+});
+reset.definition = {
+ methods: ["get", "head"],
+ url: "/reset-password/{token}"
+};
+reset.url = (args, options) => {
+ if (typeof args === "string" || typeof args === "number") {
+ args = { token: args };
+ }
+ if (Array.isArray(args)) {
+ args = {
+ token: args[0]
+ };
+ }
+ args = applyUrlDefaults(args);
+ const parsedArgs = {
+ token: args.token
+ };
+ return reset.definition.url.replace("{token}", parsedArgs.token.toString()).replace(/\/+$/, "") + queryParams(options);
+};
+reset.get = (args, options) => ({
+ url: reset.url(args, options),
+ method: "get"
+});
+reset.head = (args, options) => ({
+ url: reset.url(args, options),
+ method: "head"
+});
+const resetForm = (args, options) => ({
+ action: reset.url(args, options),
+ method: "get"
+});
+resetForm.get = (args, options) => ({
+ action: reset.url(args, options),
+ method: "get"
+});
+resetForm.head = (args, options) => ({
+ action: reset.url(args, {
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+reset.form = resetForm;
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/reset-password"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+({
+ confirm: Object.assign(confirm, confirm$1),
+ confirmation: Object.assign(confirmation, confirmation),
+ edit: Object.assign(edit, edit),
+ update: Object.assign(update, update),
+ request: Object.assign(request, request),
+ email: Object.assign(email, email),
+ reset: Object.assign(reset, reset),
+ store: Object.assign(store, store)
+});
+export {
+ edit as e,
+ request as r
+};
diff --git a/bootstrap/ssr/assets/index-C7ejuoa3.js b/bootstrap/ssr/assets/index-C7ejuoa3.js
new file mode 100644
index 0000000..4cc3a08
--- /dev/null
+++ b/bootstrap/ssr/assets/index-C7ejuoa3.js
@@ -0,0 +1,73 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from "./table-DB-AS5w6.js";
+import { A as AppLayout, d as dashboard } from "./app-layout-BFyUFda2.js";
+import { Head, Link } from "@inertiajs/react";
+import { Pencil, Trash2 } from "lucide-react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+function Product({
+ product
+}) {
+ return /* @__PURE__ */ jsxs(
+ AppLayout,
+ {
+ breadcrumbs: [
+ { title: "Products", href: dashboard.product.index().url }
+ ],
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Products" }),
+ /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-8 px-8 py-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-xl font-semibold tracking-tight", children: "Products" }),
+ /* @__PURE__ */ jsx(Link, { href: dashboard.product.add(), children: /* @__PURE__ */ jsx(Button, { className: "cursor-pointer", children: "Add Image" }) })
+ ] }),
+ /* @__PURE__ */ jsxs(Table, { children: [
+ /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[80px]", children: "S.N." }),
+ /* @__PURE__ */ jsx(TableHead, { className: "w-48", children: "Image" }),
+ /* @__PURE__ */ jsx(TableHead, { children: "Title" }),
+ /* @__PURE__ */ jsx(TableHead, { className: "w-24", children: "Type" }),
+ /* @__PURE__ */ jsx(TableHead, { className: "text-right", children: "Action" })
+ ] }) }),
+ /* @__PURE__ */ jsx(TableBody, { children: product.map((item, index) => /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableCell, { className: "font-medium", children: index + 1 }),
+ /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: item.image_url,
+ alt: item.title,
+ className: "aspect-video w-24 rounded-md object-cover object-center"
+ }
+ ) }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.title }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.type }),
+ /* @__PURE__ */ jsx(TableCell, { className: "text-right", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(Pencil, { size: 18 }) }),
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(
+ Trash2,
+ {
+ size: 18,
+ color: "#D2042D"
+ }
+ ) })
+ ] }) })
+ ] }, index)) })
+ ] })
+ ] })
+ ]
+ }
+ );
+}
+export {
+ Product as default
+};
diff --git a/bootstrap/ssr/assets/index-CY6fYws-.js b/bootstrap/ssr/assets/index-CY6fYws-.js
new file mode 100644
index 0000000..2037571
--- /dev/null
+++ b/bootstrap/ssr/assets/index-CY6fYws-.js
@@ -0,0 +1,488 @@
+import { jsx } from "react/jsx-runtime";
+import { Slot } from "@radix-ui/react-slot";
+import { cva } from "class-variance-authority";
+import { clsx } from "clsx";
+import { twMerge } from "tailwind-merge";
+function cn(...inputs) {
+ return twMerge(clsx(inputs));
+}
+const buttonVariants = cva(
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ {
+ variants: {
+ variant: {
+ default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
+ destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
+ outline: "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
+ secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
+ ghost: "hover:bg-accent hover:text-accent-foreground",
+ link: "text-primary underline-offset-4 hover:underline"
+ },
+ size: {
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
+ sm: "h-8 rounded-md px-3 has-[>svg]:px-2.5",
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
+ icon: "size-9"
+ }
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default"
+ }
+ }
+);
+function Button({
+ className,
+ variant,
+ size,
+ asChild = false,
+ ...props
+}) {
+ const Comp = asChild ? Slot : "button";
+ return /* @__PURE__ */ jsx(
+ Comp,
+ {
+ "data-slot": "button",
+ className: cn(buttonVariants({ variant, size, className })),
+ ...props
+ }
+ );
+}
+let urlDefaults = {};
+const queryParams = (options) => {
+ if (!options || !options.query && !options.mergeQuery) {
+ return "";
+ }
+ const query = options.query ?? options.mergeQuery;
+ const includeExisting = options.mergeQuery !== void 0;
+ const getValue = (value) => {
+ if (value === true) {
+ return "1";
+ }
+ if (value === false) {
+ return "0";
+ }
+ return value.toString();
+ };
+ const params = new URLSearchParams(
+ includeExisting && typeof window !== "undefined" ? window.location.search : ""
+ );
+ for (const key in query) {
+ if (query[key] === void 0 || query[key] === null) {
+ params.delete(key);
+ continue;
+ }
+ if (Array.isArray(query[key])) {
+ if (params.has(`${key}[]`)) {
+ params.delete(`${key}[]`);
+ }
+ query[key].forEach((value) => {
+ params.append(`${key}[]`, value.toString());
+ });
+ } else if (typeof query[key] === "object") {
+ params.forEach((_, paramKey) => {
+ if (paramKey.startsWith(`${key}[`)) {
+ params.delete(paramKey);
+ }
+ });
+ for (const subKey in query[key]) {
+ if (typeof query[key][subKey] === "undefined") {
+ continue;
+ }
+ if (["string", "number", "boolean"].includes(
+ typeof query[key][subKey]
+ )) {
+ params.set(
+ `${key}[${subKey}]`,
+ getValue(query[key][subKey])
+ );
+ }
+ }
+ } else {
+ params.set(key, getValue(query[key]));
+ }
+ }
+ const str = params.toString();
+ return str.length > 0 ? `?${str}` : "";
+};
+const applyUrlDefaults = (existing) => {
+ const existingParams = { ...existing ?? {} };
+ for (const key in urlDefaults) {
+ if (existingParams[key] === void 0 && urlDefaults[key] !== void 0) {
+ existingParams[key] = urlDefaults[key];
+ }
+ }
+ return existingParams;
+};
+const login = (options) => ({
+ url: login.url(options),
+ method: "get"
+});
+login.definition = {
+ methods: ["get", "head"],
+ url: "/login"
+};
+login.url = (options) => {
+ return login.definition.url + queryParams(options);
+};
+login.get = (options) => ({
+ url: login.url(options),
+ method: "get"
+});
+login.head = (options) => ({
+ url: login.url(options),
+ method: "head"
+});
+const loginForm = (options) => ({
+ action: login.url(options),
+ method: "get"
+});
+loginForm.get = (options) => ({
+ action: login.url(options),
+ method: "get"
+});
+loginForm.head = (options) => ({
+ action: login.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+login.form = loginForm;
+const logout = (options) => ({
+ url: logout.url(options),
+ method: "post"
+});
+logout.definition = {
+ methods: ["post"],
+ url: "/logout"
+};
+logout.url = (options) => {
+ return logout.definition.url + queryParams(options);
+};
+logout.post = (options) => ({
+ url: logout.url(options),
+ method: "post"
+});
+const logoutForm = (options) => ({
+ action: logout.url(options),
+ method: "post"
+});
+logoutForm.post = (options) => ({
+ action: logout.url(options),
+ method: "post"
+});
+logout.form = logoutForm;
+const home = (options) => ({
+ url: home.url(options),
+ method: "get"
+});
+home.definition = {
+ methods: ["get", "head"],
+ url: "/"
+};
+home.url = (options) => {
+ return home.definition.url + queryParams(options);
+};
+home.get = (options) => ({
+ url: home.url(options),
+ method: "get"
+});
+home.head = (options) => ({
+ url: home.url(options),
+ method: "head"
+});
+const homeForm = (options) => ({
+ action: home.url(options),
+ method: "get"
+});
+homeForm.get = (options) => ({
+ action: home.url(options),
+ method: "get"
+});
+homeForm.head = (options) => ({
+ action: home.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+home.form = homeForm;
+const about = (options) => ({
+ url: about.url(options),
+ method: "get"
+});
+about.definition = {
+ methods: ["get", "head"],
+ url: "/about-us"
+};
+about.url = (options) => {
+ return about.definition.url + queryParams(options);
+};
+about.get = (options) => ({
+ url: about.url(options),
+ method: "get"
+});
+about.head = (options) => ({
+ url: about.url(options),
+ method: "head"
+});
+const aboutForm = (options) => ({
+ action: about.url(options),
+ method: "get"
+});
+aboutForm.get = (options) => ({
+ action: about.url(options),
+ method: "get"
+});
+aboutForm.head = (options) => ({
+ action: about.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+about.form = aboutForm;
+const artOfWeaving = (options) => ({
+ url: artOfWeaving.url(options),
+ method: "get"
+});
+artOfWeaving.definition = {
+ methods: ["get", "head"],
+ url: "/art-of-weaving"
+};
+artOfWeaving.url = (options) => {
+ return artOfWeaving.definition.url + queryParams(options);
+};
+artOfWeaving.get = (options) => ({
+ url: artOfWeaving.url(options),
+ method: "get"
+});
+artOfWeaving.head = (options) => ({
+ url: artOfWeaving.url(options),
+ method: "head"
+});
+const artOfWeavingForm = (options) => ({
+ action: artOfWeaving.url(options),
+ method: "get"
+});
+artOfWeavingForm.get = (options) => ({
+ action: artOfWeaving.url(options),
+ method: "get"
+});
+artOfWeavingForm.head = (options) => ({
+ action: artOfWeaving.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+artOfWeaving.form = artOfWeavingForm;
+const contact = (options) => ({
+ url: contact.url(options),
+ method: "get"
+});
+contact.definition = {
+ methods: ["get", "head"],
+ url: "/contact"
+};
+contact.url = (options) => {
+ return contact.definition.url + queryParams(options);
+};
+contact.get = (options) => ({
+ url: contact.url(options),
+ method: "get"
+});
+contact.head = (options) => ({
+ url: contact.url(options),
+ method: "head"
+});
+const contactForm = (options) => ({
+ action: contact.url(options),
+ method: "get"
+});
+contactForm.get = (options) => ({
+ action: contact.url(options),
+ method: "get"
+});
+contactForm.head = (options) => ({
+ action: contact.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+contact.form = contactForm;
+const faq = (options) => ({
+ url: faq.url(options),
+ method: "get"
+});
+faq.definition = {
+ methods: ["get", "head"],
+ url: "/faq"
+};
+faq.url = (options) => {
+ return faq.definition.url + queryParams(options);
+};
+faq.get = (options) => ({
+ url: faq.url(options),
+ method: "get"
+});
+faq.head = (options) => ({
+ url: faq.url(options),
+ method: "head"
+});
+const faqForm = (options) => ({
+ action: faq.url(options),
+ method: "get"
+});
+faqForm.get = (options) => ({
+ action: faq.url(options),
+ method: "get"
+});
+faqForm.head = (options) => ({
+ action: faq.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+faq.form = faqForm;
+const gallery = (options) => ({
+ url: gallery.url(options),
+ method: "get"
+});
+gallery.definition = {
+ methods: ["get", "head"],
+ url: "/gallery"
+};
+gallery.url = (options) => {
+ return gallery.definition.url + queryParams(options);
+};
+gallery.get = (options) => ({
+ url: gallery.url(options),
+ method: "get"
+});
+gallery.head = (options) => ({
+ url: gallery.url(options),
+ method: "head"
+});
+const galleryForm = (options) => ({
+ action: gallery.url(options),
+ method: "get"
+});
+galleryForm.get = (options) => ({
+ action: gallery.url(options),
+ method: "get"
+});
+galleryForm.head = (options) => ({
+ action: gallery.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+gallery.form = galleryForm;
+const bespoke = (options) => ({
+ url: bespoke.url(options),
+ method: "get"
+});
+bespoke.definition = {
+ methods: ["get", "head"],
+ url: "/bespoke"
+};
+bespoke.url = (options) => {
+ return bespoke.definition.url + queryParams(options);
+};
+bespoke.get = (options) => ({
+ url: bespoke.url(options),
+ method: "get"
+});
+bespoke.head = (options) => ({
+ url: bespoke.url(options),
+ method: "head"
+});
+const bespokeForm = (options) => ({
+ action: bespoke.url(options),
+ method: "get"
+});
+bespokeForm.get = (options) => ({
+ action: bespoke.url(options),
+ method: "get"
+});
+bespokeForm.head = (options) => ({
+ action: bespoke.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+bespoke.form = bespokeForm;
+const register = (options) => ({
+ url: register.url(options),
+ method: "get"
+});
+register.definition = {
+ methods: ["get", "head"],
+ url: "/register"
+};
+register.url = (options) => {
+ return register.definition.url + queryParams(options);
+};
+register.get = (options) => ({
+ url: register.url(options),
+ method: "get"
+});
+register.head = (options) => ({
+ url: register.url(options),
+ method: "head"
+});
+const registerForm = (options) => ({
+ action: register.url(options),
+ method: "get"
+});
+registerForm.get = (options) => ({
+ action: register.url(options),
+ method: "get"
+});
+registerForm.head = (options) => ({
+ action: register.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+register.form = registerForm;
+export {
+ Button as B,
+ applyUrlDefaults as a,
+ logout as b,
+ cn as c,
+ contact as d,
+ about as e,
+ artOfWeaving as f,
+ faq as g,
+ home as h,
+ bespoke as i,
+ login as l,
+ queryParams as q,
+ register as r
+};
diff --git a/bootstrap/ssr/assets/index-OpaYcuxi.js b/bootstrap/ssr/assets/index-OpaYcuxi.js
new file mode 100644
index 0000000..54b0977
--- /dev/null
+++ b/bootstrap/ssr/assets/index-OpaYcuxi.js
@@ -0,0 +1,64 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { B as Button } from "./index-CY6fYws-.js";
+import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from "./table-DB-AS5w6.js";
+import { A as AppLayout, d as dashboard } from "./app-layout-BFyUFda2.js";
+import { Head, Link } from "@inertiajs/react";
+import { Pencil, Trash2 } from "lucide-react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+function Faq({
+ faq
+}) {
+ return /* @__PURE__ */ jsxs(
+ AppLayout,
+ {
+ breadcrumbs: [
+ { title: "FAQs", href: dashboard.product.index().url }
+ ],
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "FAQs" }),
+ /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-8 px-8 py-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-xl font-semibold tracking-tight", children: "FAQs" }),
+ /* @__PURE__ */ jsx(Link, { href: dashboard.faq.add(), children: /* @__PURE__ */ jsx(Button, { className: "cursor-pointer", children: "Add Questions" }) })
+ ] }),
+ /* @__PURE__ */ jsxs(Table, { children: [
+ /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[80px]", children: "S.N." }),
+ /* @__PURE__ */ jsx(TableHead, { children: "Question" }),
+ /* @__PURE__ */ jsx(TableHead, { children: "Answer" }),
+ /* @__PURE__ */ jsx(TableHead, { className: "text-right", children: "Action" })
+ ] }) }),
+ /* @__PURE__ */ jsx(TableBody, { children: faq.map((item, index) => /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableCell, { className: "font-medium", children: index + 1 }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.question }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.answer }),
+ /* @__PURE__ */ jsx(TableCell, { className: "text-right", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(Pencil, { size: 18 }) }),
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(
+ Trash2,
+ {
+ size: 18,
+ color: "#D2042D"
+ }
+ ) })
+ ] }) })
+ ] }, index)) })
+ ] })
+ ] })
+ ]
+ }
+ );
+}
+export {
+ Faq as default
+};
diff --git a/bootstrap/ssr/assets/input-DfkIsvXR.js b/bootstrap/ssr/assets/input-DfkIsvXR.js
new file mode 100644
index 0000000..534c2fd
--- /dev/null
+++ b/bootstrap/ssr/assets/input-DfkIsvXR.js
@@ -0,0 +1,21 @@
+import { jsx } from "react/jsx-runtime";
+import { c as cn } from "./index-CY6fYws-.js";
+function Input({ className, type, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "input",
+ {
+ type,
+ "data-slot": "input",
+ className: cn(
+ "border-input file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ className
+ ),
+ ...props
+ }
+ );
+}
+export {
+ Input as I
+};
diff --git a/bootstrap/ssr/assets/input-error-Su2MkR0P.js b/bootstrap/ssr/assets/input-error-Su2MkR0P.js
new file mode 100644
index 0000000..0dcf40a
--- /dev/null
+++ b/bootstrap/ssr/assets/input-error-Su2MkR0P.js
@@ -0,0 +1,19 @@
+import { jsx } from "react/jsx-runtime";
+import { c as cn } from "./index-CY6fYws-.js";
+function InputError({
+ message,
+ className = "",
+ ...props
+}) {
+ return message ? /* @__PURE__ */ jsx(
+ "p",
+ {
+ ...props,
+ className: cn("text-sm text-red-600 dark:text-red-400", className),
+ children: message
+ }
+ ) : null;
+}
+export {
+ InputError as I
+};
diff --git a/bootstrap/ssr/assets/label-DrpjkvJN.js b/bootstrap/ssr/assets/label-DrpjkvJN.js
new file mode 100644
index 0000000..2b96e39
--- /dev/null
+++ b/bootstrap/ssr/assets/label-DrpjkvJN.js
@@ -0,0 +1,22 @@
+import { jsx } from "react/jsx-runtime";
+import * as LabelPrimitive from "@radix-ui/react-label";
+import { c as cn } from "./index-CY6fYws-.js";
+function Label({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ LabelPrimitive.Root,
+ {
+ "data-slot": "label",
+ className: cn(
+ "text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
+ className
+ ),
+ ...props
+ }
+ );
+}
+export {
+ Label as L
+};
diff --git a/bootstrap/ssr/assets/layout-BQI5MpcL.js b/bootstrap/ssr/assets/layout-BQI5MpcL.js
new file mode 100644
index 0000000..bd8ef16
--- /dev/null
+++ b/bootstrap/ssr/assets/layout-BQI5MpcL.js
@@ -0,0 +1,147 @@
+import { jsx, jsxs } from "react/jsx-runtime";
+import { c as cn, q as queryParams, B as Button } from "./index-CY6fYws-.js";
+import * as SeparatorPrimitive from "@radix-ui/react-separator";
+import { e as edit$2 } from "./index-BuzAnds1.js";
+import { e as edit$1 } from "./app-layout-BFyUFda2.js";
+import { b as show } from "./index-BHwjGIZD.js";
+import { Link } from "@inertiajs/react";
+function Separator({
+ className,
+ orientation = "horizontal",
+ decorative = true,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SeparatorPrimitive.Root,
+ {
+ "data-slot": "separator-root",
+ decorative,
+ orientation,
+ className: cn(
+ "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function HeadingSmall({
+ title,
+ description
+}) {
+ return /* @__PURE__ */ jsxs("header", { children: [
+ /* @__PURE__ */ jsx("h3", { className: "mb-0.5 text-base font-medium", children: title }),
+ description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
+ ] });
+}
+function Heading({
+ title,
+ description
+}) {
+ return /* @__PURE__ */ jsxs("div", { className: "mb-8 space-y-0.5", children: [
+ /* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold tracking-tight", children: title }),
+ description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
+ ] });
+}
+const edit = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.definition = {
+ methods: ["get", "head"],
+ url: "/settings/appearance"
+};
+edit.url = (options) => {
+ return edit.definition.url + queryParams(options);
+};
+edit.get = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.head = (options) => ({
+ url: edit.url(options),
+ method: "head"
+});
+const editForm = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.get = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.head = (options) => ({
+ action: edit.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+edit.form = editForm;
+({
+ edit: Object.assign(edit, edit)
+});
+const sidebarNavItems = [
+ {
+ title: "Profile",
+ href: edit$1(),
+ icon: null
+ },
+ {
+ title: "Password",
+ href: edit$2(),
+ icon: null
+ },
+ {
+ title: "Two-Factor Auth",
+ href: show(),
+ icon: null
+ },
+ {
+ title: "Appearance",
+ href: edit(),
+ icon: null
+ }
+];
+function SettingsLayout({ children }) {
+ if (typeof window === "undefined") {
+ return null;
+ }
+ const currentPath = window.location.pathname;
+ return /* @__PURE__ */ jsxs("div", { className: "px-4 py-6", children: [
+ /* @__PURE__ */ jsx(
+ Heading,
+ {
+ title: "Settings",
+ description: "Manage your profile and account settings"
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row lg:space-x-12", children: [
+ /* @__PURE__ */ jsx("aside", { className: "w-full max-w-xl lg:w-48", children: /* @__PURE__ */ jsx("nav", { className: "flex flex-col space-y-1 space-x-0", children: sidebarNavItems.map((item, index) => /* @__PURE__ */ jsx(
+ Button,
+ {
+ size: "sm",
+ variant: "ghost",
+ asChild: true,
+ className: cn("w-full justify-start", {
+ "bg-muted": currentPath === (typeof item.href === "string" ? item.href : item.href.url)
+ }),
+ children: /* @__PURE__ */ jsxs(Link, { href: item.href, children: [
+ item.icon && /* @__PURE__ */ jsx(item.icon, { className: "h-4 w-4" }),
+ item.title
+ ] })
+ },
+ `${typeof item.href === "string" ? item.href : item.href.url}-${index}`
+ )) }) }),
+ /* @__PURE__ */ jsx(Separator, { className: "my-6 lg:hidden" }),
+ /* @__PURE__ */ jsx("div", { className: "flex-1 md:max-w-2xl", children: /* @__PURE__ */ jsx("section", { className: "max-w-xl space-y-12", children }) })
+ ] })
+ ] });
+}
+export {
+ HeadingSmall as H,
+ SettingsLayout as S,
+ edit as e
+};
diff --git a/bootstrap/ssr/assets/layout-toNsB0Jp.js b/bootstrap/ssr/assets/layout-toNsB0Jp.js
new file mode 100644
index 0000000..f2f378a
--- /dev/null
+++ b/bootstrap/ssr/assets/layout-toNsB0Jp.js
@@ -0,0 +1,325 @@
+import { jsxs, jsx, Fragment } from "react/jsx-runtime";
+import { q as queryParams, h as home, d as contact, e as about, f as artOfWeaving, g as faq, B as Button, i as bespoke } from "./index-CY6fYws-.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { usePage, Link, router } from "@inertiajs/react";
+import { SiFacebook, SiInstagram } from "@icons-pack/react-simple-icons";
+import { MoveRight, Phone, Mail, MapPin, Menu } from "lucide-react";
+import { S as Select, a as SelectTrigger, b as SelectValue, c as SelectContent, e as SelectGroup, d as SelectItem } from "./select-CsRyyQUa.js";
+import { S as Sheet, a as SheetTrigger, b as SheetContent, c as SheetTitle, d as SheetDescription } from "./sheet-Bq2cyJmx.js";
+const product = (options) => ({
+ url: product.url(options),
+ method: "get"
+});
+product.definition = {
+ methods: ["get", "head"],
+ url: "/product"
+};
+product.url = (options) => {
+ return product.definition.url + queryParams(options);
+};
+product.get = (options) => ({
+ url: product.url(options),
+ method: "get"
+});
+product.head = (options) => ({
+ url: product.url(options),
+ method: "head"
+});
+const productForm = (options) => ({
+ action: product.url(options),
+ method: "get"
+});
+productForm.get = (options) => ({
+ action: product.url(options),
+ method: "get"
+});
+productForm.head = (options) => ({
+ action: product.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+product.form = productForm;
+const index = {
+ product: Object.assign(product, product)
+};
+function t(translations, key, replacements = {}) {
+ if (!translations) {
+ console.warn("No translations provided");
+ return key;
+ }
+ const keys = key.split(".");
+ let value = translations;
+ for (const k of keys) {
+ if (value && typeof value === "object" && k in value) {
+ value = value[k];
+ } else {
+ console.warn(`Translation key not found: ${key}`);
+ return key;
+ }
+ }
+ if (typeof value !== "string") {
+ return key;
+ }
+ let text = value;
+ Object.entries(replacements).forEach(([k, v]) => {
+ text = text.replace(new RegExp(`:${k}`, "g"), v);
+ });
+ return text;
+}
+function useTranslations() {
+ const { translations } = usePage().props;
+ const translate = (key, replacements = {}) => {
+ return t(translations, key, replacements);
+ };
+ return { t: translate, translations };
+}
+function useLocale() {
+ const { locale } = usePage().props;
+ return locale;
+}
+const ns = "/build/assets/ns-CsWIdWF7.gif";
+const oko = "/build/assets/oko-BkZT_kDH.gif";
+const logo = "/build/assets/soorya-Ci0dhsli.png";
+function Footer() {
+ const { t: t2 } = useTranslations();
+ return /* @__PURE__ */ jsxs("footer", { className: "bg-primary", children: [
+ /* @__PURE__ */ jsxs("div", { className: "mx-auto grid max-w-screen-2xl grid-cols-4 gap-8 px-12 py-8 max-md:grid-cols-1 max-md:grid-rows-4 max-md:px-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
+ /* @__PURE__ */ jsx("img", { src: logo, alt: "Soorya Carpet Logo", className: "w-32" }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 text-sm text-white", children: [
+ /* @__PURE__ */ jsx("p", { children: t2("footer.desc.title") }),
+ /* @__PURE__ */ jsxs("ul", { children: [
+ /* @__PURE__ */ jsx("li", { children: t2("footer.desc.company") }),
+ /* @__PURE__ */ jsx("li", { children: t2("footer.desc.address") }),
+ /* @__PURE__ */ jsx("li", { children: t2("footer.desc.phone") }),
+ /* @__PURE__ */ jsx("li", { children: t2("footer.desc.email") })
+ ] })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
+ /* @__PURE__ */ jsx("p", { className: "text-lg font-medium text-white", children: "Quick Link" }),
+ /* @__PURE__ */ jsxs("ul", { className: "flex flex-col gap-1 text-sm", children: [
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: home(), className: "text-neutral-300", children: t2("footer.links.home") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: contact(), className: "text-neutral-300", children: t2("footer.links.contact") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: about(), className: "text-neutral-300", children: t2("footer.links.about-us") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
+ Link,
+ {
+ href: artOfWeaving(),
+ className: "text-neutral-300",
+ children: t2("footer.links.art")
+ }
+ ) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
+ Link,
+ {
+ href: index.product(),
+ className: "text-neutral-300",
+ children: t2("footer.links.products")
+ }
+ ) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: home(), className: "text-neutral-300", children: t2("footer.links.bespoke") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: home(), className: "text-neutral-300", children: t2("footer.links.gallery") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: faq(), className: "text-neutral-300", children: t2("footer.links.faq") }) })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsx("p", { className: "text-lg font-medium text-white", children: "Certifications & Trust Badges" }),
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 gap-1", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: ns,
+ alt: "NS Standard",
+ className: "aspect-square object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: oko,
+ alt: "oko Standard",
+ className: "object-cover object-center"
+ }
+ )
+ ] })
+ ] }),
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
+ /* @__PURE__ */ jsxs("form", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { className: "text-lg font-medium text-white", children: t2("footer.news.title") }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 max-sm:flex-col", children: [
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "newsletter",
+ placeholder: t2("footer.news.input"),
+ className: "bg-white"
+ }
+ ),
+ /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "outline",
+ className: "bg-transparent text-white max-sm:w-full",
+ children: [
+ t2("footer.news.button"),
+ " ",
+ /* @__PURE__ */ jsx(MoveRight, {})
+ ]
+ }
+ )
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("p", { className: "text-base font-medium text-white", children: t2("footer.news.legal.title") }),
+ /* @__PURE__ */ jsxs("ul", { className: "flex flex-col gap-1 text-sm text-neutral-300", children: [
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: "privacy-policy", children: t2("footer.news.legal.privacy") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: "terms-and-condition", children: t2("footer.news.legal.terms") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: faq(), children: t2("footer.news.legal.policy") }) })
+ ] })
+ ] })
+ ] }) })
+ ] }),
+ /* @__PURE__ */ jsx("hr", { className: "mx-auto my-4 max-w-screen-2xl border-neutral-500 px-12" }),
+ /* @__PURE__ */ jsxs("div", { className: "max-auto flex max-w-screen-2xl items-center justify-between px-12 py-4 max-md:flex-col max-md:gap-4 max-md:px-6", children: [
+ /* @__PURE__ */ jsxs("p", { className: "text-xs text-white", children: [
+ "© ",
+ (/* @__PURE__ */ new Date()).getFullYear(),
+ " Soorya Carpet Industries. All rights reserved."
+ ] }),
+ /* @__PURE__ */ jsxs("ul", { className: "flex items-center gap-4", children: [
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
+ Link,
+ {
+ href: "https://www.facebook.com/sooryacarpet/?locale=ne_NP",
+ target: "_blank",
+ children: /* @__PURE__ */ jsx(SiFacebook, { color: "#d4d4d4", size: 16 })
+ }
+ ) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
+ Link,
+ {
+ href: "https://www.instagram.com/kaleen_carpet/",
+ target: "_blank",
+ children: /* @__PURE__ */ jsx(SiInstagram, { color: "#d4d4d4", size: 16 })
+ }
+ ) })
+ ] })
+ ] })
+ ] });
+}
+function Navbar() {
+ const { t: t2 } = useTranslations();
+ const locale = useLocale();
+ const changeLanguage = (newLocale) => {
+ router.post(
+ "/locale",
+ { locale: newLocale },
+ {
+ preserveScroll: true,
+ preserveState: true,
+ onSuccess: () => {
+ console.log("Language changed to:", newLocale);
+ }
+ }
+ );
+ };
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("header", { className: "mx-auto w-full text-sm not-has-[nav]:hidden", children: [
+ /* @__PURE__ */ jsx("div", { className: "bg-primary py-1.5 text-white/60 max-md:hidden", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex max-w-screen-2xl items-center justify-between px-12 max-md:px-2", children: [
+ /* @__PURE__ */ jsxs("ul", { className: "flex items-center gap-4", children: [
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
+ "a",
+ {
+ href: "tel:01-4220087",
+ className: "flex items-center gap-1 text-xs",
+ children: [
+ /* @__PURE__ */ jsx(Phone, { size: 14 }),
+ "01-4220087"
+ ]
+ }
+ ) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
+ "a",
+ {
+ href: "mailto:info@soorya.com",
+ className: "flex items-center gap-1 text-xs",
+ children: [
+ /* @__PURE__ */ jsx(Mail, { size: 14 }),
+ "info@soorya.com"
+ ]
+ }
+ ) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
+ "a",
+ {
+ href: "#",
+ className: "flex items-center gap-1 text-xs",
+ children: [
+ /* @__PURE__ */ jsx(MapPin, { size: 14 }),
+ "Thapathali, Kathmandu, Nepal"
+ ]
+ }
+ ) })
+ ] }),
+ /* @__PURE__ */ jsxs(Select, { value: locale, onValueChange: changeLanguage, children: [
+ /* @__PURE__ */ jsx(SelectTrigger, { className: "h-0 w-32 border-0 focus-visible:ring-0", children: /* @__PURE__ */ jsx(SelectValue, {}) }),
+ /* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsxs(SelectGroup, { children: [
+ /* @__PURE__ */ jsx(SelectItem, { value: "en", children: "English" }),
+ /* @__PURE__ */ jsx(SelectItem, { value: "cn", children: "ä¸å›½äºº" })
+ ] }) })
+ ] })
+ ] }) }),
+ /* @__PURE__ */ jsx("div", { className: "mx-auto w-full max-w-screen-2xl px-12 py-2 text-base not-has-[nav]:hidden max-md:px-4", children: /* @__PURE__ */ jsxs("nav", { className: "flex items-center justify-between gap-2", children: [
+ /* @__PURE__ */ jsx(Link, { href: home(), children: /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: logo,
+ alt: "Soorya Carpet Logo",
+ className: "w-36"
+ }
+ ) }),
+ /* @__PURE__ */ jsxs("ul", { className: "flex items-center gap-6 max-md:hidden", children: [
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: about(), children: t2("nav.about-us") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: artOfWeaving(), children: t2("nav.art") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: index.product(), children: t2("nav.products") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: bespoke(), children: t2("nav.bespoke") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: faq(), children: t2("nav.faq") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: contact(), children: t2("nav.contact") }) })
+ ] }),
+ /* @__PURE__ */ jsxs(Sheet, { children: [
+ /* @__PURE__ */ jsx(SheetTrigger, { className: "md:hidden", children: /* @__PURE__ */ jsx(Menu, { size: 24 }) }),
+ /* @__PURE__ */ jsxs(SheetContent, { className: "w-full", children: [
+ /* @__PURE__ */ jsx(SheetTitle, { className: "hidden", children: "Menu" }),
+ /* @__PURE__ */ jsx(SheetDescription, { className: "hidden", children: "Navigation Menu Item" }),
+ /* @__PURE__ */ jsxs("ul", { className: "mt-20 flex flex-col items-center justify-center gap-6", children: [
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: about(), children: t2("nav.about-us") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: artOfWeaving(), children: t2("nav.art") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: index.product(), children: t2("nav.products") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: bespoke(), children: t2("nav.bespoke") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: faq(), children: t2("nav.faq") }) }),
+ /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { href: contact(), children: t2("nav.contact") }) })
+ ] })
+ ] })
+ ] })
+ ] }) })
+ ] }) });
+}
+function Layout({ children }) {
+ return /* @__PURE__ */ jsxs("div", { className: "mx-auto grid min-h-[100dvh] grid-rows-[auto_1fr_auto]", children: [
+ /* @__PURE__ */ jsx(Navbar, {}),
+ /* @__PURE__ */ jsx("main", { children }),
+ /* @__PURE__ */ jsx(Footer, {})
+ ] });
+}
+export {
+ Layout as L,
+ index as i,
+ ns as n,
+ oko as o,
+ useTranslations as u
+};
diff --git a/bootstrap/ssr/assets/login-Bx7GyWNN.js b/bootstrap/ssr/assets/login-Bx7GyWNN.js
new file mode 100644
index 0000000..1bf442c
--- /dev/null
+++ b/bootstrap/ssr/assets/login-Bx7GyWNN.js
@@ -0,0 +1,230 @@
+import { jsx, jsxs, Fragment } from "react/jsx-runtime";
+import { q as queryParams, c as cn, B as Button, r as register } from "./index-CY6fYws-.js";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { T as TextLink } from "./text-link-ByYmiDlq.js";
+import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
+import { CheckIcon, LoaderCircle } from "lucide-react";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { A as AuthLayout } from "./auth-layout-iyjWmxzQ.js";
+import { r as request } from "./index-BuzAnds1.js";
+import { Head, Form } from "@inertiajs/react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "./app-logo-icon-kpljnLMz.js";
+import "./index-BRhO3_4E.js";
+const create = (options) => ({
+ url: create.url(options),
+ method: "get"
+});
+create.definition = {
+ methods: ["get", "head"],
+ url: "/login"
+};
+create.url = (options) => {
+ return create.definition.url + queryParams(options);
+};
+create.get = (options) => ({
+ url: create.url(options),
+ method: "get"
+});
+create.head = (options) => ({
+ url: create.url(options),
+ method: "head"
+});
+const createForm = (options) => ({
+ action: create.url(options),
+ method: "get"
+});
+createForm.get = (options) => ({
+ action: create.url(options),
+ method: "get"
+});
+createForm.head = (options) => ({
+ action: create.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+create.form = createForm;
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/login"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const destroy = (options) => ({
+ url: destroy.url(options),
+ method: "post"
+});
+destroy.definition = {
+ methods: ["post"],
+ url: "/logout"
+};
+destroy.url = (options) => {
+ return destroy.definition.url + queryParams(options);
+};
+destroy.post = (options) => ({
+ url: destroy.url(options),
+ method: "post"
+});
+const destroyForm = (options) => ({
+ action: destroy.url(options),
+ method: "post"
+});
+destroyForm.post = (options) => ({
+ action: destroy.url(options),
+ method: "post"
+});
+destroy.form = destroyForm;
+const AuthenticatedSessionController = { store };
+function Checkbox({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ CheckboxPrimitive.Root,
+ {
+ "data-slot": "checkbox",
+ className: cn(
+ "peer border-input data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
+ className
+ ),
+ ...props,
+ children: /* @__PURE__ */ jsx(
+ CheckboxPrimitive.Indicator,
+ {
+ "data-slot": "checkbox-indicator",
+ className: "flex items-center justify-center text-current transition-none",
+ children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
+ }
+ )
+ }
+ );
+}
+function Login({ status, canResetPassword }) {
+ return /* @__PURE__ */ jsxs(
+ AuthLayout,
+ {
+ title: "Log in to your account",
+ description: "Enter your email and password below to log in",
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Log in" }),
+ /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...AuthenticatedSessionController.store.form(),
+ resetOnSuccess: ["password"],
+ className: "flex flex-col gap-6",
+ children: ({ processing, errors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email address" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "email",
+ type: "email",
+ name: "email",
+ required: true,
+ autoFocus: true,
+ tabIndex: 1,
+ autoComplete: "email",
+ placeholder: "email@example.com"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.email })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", children: "Password" }),
+ canResetPassword && /* @__PURE__ */ jsx(
+ TextLink,
+ {
+ href: request(),
+ className: "ml-auto text-sm",
+ tabIndex: 5,
+ children: "Forgot password?"
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password",
+ type: "password",
+ name: "password",
+ required: true,
+ tabIndex: 2,
+ autoComplete: "current-password",
+ placeholder: "Password"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.password })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-3", children: [
+ /* @__PURE__ */ jsx(
+ Checkbox,
+ {
+ id: "remember",
+ name: "remember",
+ tabIndex: 3
+ }
+ ),
+ /* @__PURE__ */ jsx(Label, { htmlFor: "remember", children: "Remember me" })
+ ] }),
+ /* @__PURE__ */ jsxs(
+ Button,
+ {
+ type: "submit",
+ className: "mt-4 w-full",
+ tabIndex: 4,
+ disabled: processing,
+ "data-test": "login-button",
+ children: [
+ processing && /* @__PURE__ */ jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" }),
+ "Log in"
+ ]
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "text-center text-sm text-muted-foreground", children: [
+ "Don't have an account?",
+ " ",
+ /* @__PURE__ */ jsx(TextLink, { href: register(), tabIndex: 5, children: "Sign up" })
+ ] })
+ ] })
+ }
+ ),
+ status && /* @__PURE__ */ jsx("div", { className: "mb-4 text-center text-sm font-medium text-green-600", children: status })
+ ]
+ }
+ );
+}
+export {
+ Login as default
+};
diff --git a/bootstrap/ssr/assets/password-5nAC6NdB.js b/bootstrap/ssr/assets/password-5nAC6NdB.js
new file mode 100644
index 0000000..e2b8f93
--- /dev/null
+++ b/bootstrap/ssr/assets/password-5nAC6NdB.js
@@ -0,0 +1,227 @@
+import { jsxs, jsx, Fragment } from "react/jsx-runtime";
+import { q as queryParams, B as Button } from "./index-CY6fYws-.js";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { A as AppLayout } from "./app-layout-BFyUFda2.js";
+import { S as SettingsLayout, H as HeadingSmall } from "./layout-BQI5MpcL.js";
+import { Transition } from "@headlessui/react";
+import { Head, Form } from "@inertiajs/react";
+import { useRef } from "react";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { e as edit$1 } from "./index-BuzAnds1.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "lucide-react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+import "@radix-ui/react-separator";
+import "./index-BHwjGIZD.js";
+import "@radix-ui/react-label";
+import "./index-BRhO3_4E.js";
+const edit = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.definition = {
+ methods: ["get", "head"],
+ url: "/settings/password"
+};
+edit.url = (options) => {
+ return edit.definition.url + queryParams(options);
+};
+edit.get = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.head = (options) => ({
+ url: edit.url(options),
+ method: "head"
+});
+const editForm = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.get = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.head = (options) => ({
+ action: edit.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+edit.form = editForm;
+const update = (options) => ({
+ url: update.url(options),
+ method: "put"
+});
+update.definition = {
+ methods: ["put"],
+ url: "/settings/password"
+};
+update.url = (options) => {
+ return update.definition.url + queryParams(options);
+};
+update.put = (options) => ({
+ url: update.url(options),
+ method: "put"
+});
+const updateForm = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PUT",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+updateForm.put = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PUT",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+update.form = updateForm;
+const PasswordController = { update };
+const breadcrumbs = [
+ {
+ title: "Password settings",
+ href: edit$1().url
+ }
+];
+function Password() {
+ const passwordInput = useRef(null);
+ const currentPasswordInput = useRef(null);
+ return /* @__PURE__ */ jsxs(AppLayout, { breadcrumbs, children: [
+ /* @__PURE__ */ jsx(Head, { title: "Password settings" }),
+ /* @__PURE__ */ jsx(SettingsLayout, { children: /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
+ /* @__PURE__ */ jsx(
+ HeadingSmall,
+ {
+ title: "Update password",
+ description: "Ensure your account is using a long, random password to stay secure"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...PasswordController.update.form(),
+ options: {
+ preserveScroll: true
+ },
+ resetOnError: [
+ "password",
+ "password_confirmation",
+ "current_password"
+ ],
+ resetOnSuccess: true,
+ onError: (errors) => {
+ if (errors.password) {
+ passwordInput.current?.focus();
+ }
+ if (errors.current_password) {
+ currentPasswordInput.current?.focus();
+ }
+ },
+ className: "space-y-6",
+ children: ({ errors, processing, recentlySuccessful }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "current_password", children: "Current password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "current_password",
+ ref: currentPasswordInput,
+ name: "current_password",
+ type: "password",
+ className: "mt-1 block w-full",
+ autoComplete: "current-password",
+ placeholder: "Current password"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors.current_password
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", children: "New password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password",
+ ref: passwordInput,
+ name: "password",
+ type: "password",
+ className: "mt-1 block w-full",
+ autoComplete: "new-password",
+ placeholder: "New password"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.password })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password_confirmation", children: "Confirm password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password_confirmation",
+ name: "password_confirmation",
+ type: "password",
+ className: "mt-1 block w-full",
+ autoComplete: "new-password",
+ placeholder: "Confirm password"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors.password_confirmation
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ disabled: processing,
+ "data-test": "update-password-button",
+ children: "Save password"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ Transition,
+ {
+ show: recentlySuccessful,
+ enter: "transition ease-in-out",
+ enterFrom: "opacity-0",
+ leave: "transition ease-in-out",
+ leaveTo: "opacity-0",
+ children: /* @__PURE__ */ jsx("p", { className: "text-sm text-neutral-600", children: "Saved" })
+ }
+ )
+ ] })
+ ] })
+ }
+ )
+ ] }) })
+ ] });
+}
+export {
+ Password as default
+};
diff --git a/bootstrap/ssr/assets/product-DH6XS18R.js b/bootstrap/ssr/assets/product-DH6XS18R.js
new file mode 100644
index 0000000..eddb188
--- /dev/null
+++ b/bootstrap/ssr/assets/product-DH6XS18R.js
@@ -0,0 +1,118 @@
+import { jsx, Fragment, jsxs } from "react/jsx-runtime";
+import { T as Tabs, a as TabsList, b as TabsTrigger, c as TabsContent } from "./tabs-C0o9riYx.js";
+import { u as useTranslations, L as Layout } from "./layout-toNsB0Jp.js";
+import { Head } from "@inertiajs/react";
+import "@radix-ui/react-tabs";
+import "./index-CY6fYws-.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "./input-DfkIsvXR.js";
+import "./label-DrpjkvJN.js";
+import "@radix-ui/react-label";
+import "@icons-pack/react-simple-icons";
+import "lucide-react";
+import "./select-CsRyyQUa.js";
+import "@radix-ui/react-select";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+function Product({
+ product
+}) {
+ const { t } = useTranslations();
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Layout, { children: [
+ /* @__PURE__ */ jsx(Head, { title: "Our Products" }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-8 px-12 py-8", children: [
+ /* @__PURE__ */ jsx("h1", { className: "font-serif text-5xl font-medium tracking-tight", children: t("pages.product.sections.first.title") }),
+ /* @__PURE__ */ jsxs(
+ Tabs,
+ {
+ defaultValue: "traditional",
+ className: "flex flex-col gap-8",
+ children: [
+ /* @__PURE__ */ jsxs(TabsList, { className: "flex items-center gap-4 bg-transparent", children: [
+ /* @__PURE__ */ jsx(
+ TabsTrigger,
+ {
+ value: "traditional",
+ className: "!h-auto cursor-pointer px-4 py-2 data-[state=active]:bg-primary data-[state=active]:text-white",
+ children: t("pages.product.sections.first.tab1")
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ TabsTrigger,
+ {
+ value: "modern",
+ className: "!h-auto cursor-pointer px-4 py-2 data-[state=active]:bg-primary data-[state=active]:text-white",
+ children: t("pages.product.sections.first.tab2")
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ TabsTrigger,
+ {
+ value: "abstract",
+ className: "!h-auto cursor-pointer px-4 py-2 data-[state=active]:bg-primary data-[state=active]:text-white",
+ children: t("pages.product.sections.first.tab3")
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsx(TabsContent, { value: "traditional", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-4 gap-6 max-md:grid-cols-3 max-sm:grid-cols-2 max-sm:gap-4", children: product.map(
+ (e, index) => e.type === "traditional" ? /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: e.image_url,
+ alt: e.title,
+ className: "aspect-video rounded-md object-cover object-center"
+ },
+ index
+ ) : null
+ ) }) }),
+ /* @__PURE__ */ jsx(TabsContent, { value: "modern", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-4 gap-6 max-md:grid-cols-3 max-sm:grid-cols-2 max-sm:gap-4", children: product.map(
+ (e, index) => e.type === "modern" ? /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: e.image_url,
+ alt: e.title,
+ className: "aspect-video rounded-md object-cover object-center"
+ },
+ index
+ ) : null
+ ) }) }),
+ /* @__PURE__ */ jsx(TabsContent, { value: "abstract", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-4 gap-6 max-md:grid-cols-3 max-sm:grid-cols-2 max-sm:gap-4", children: product.map(
+ (e, index) => e.type === "abstract" ? /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: e.image_url,
+ alt: e.title,
+ className: "aspect-video rounded-md object-cover object-center"
+ },
+ index
+ ) : null
+ ) }) })
+ ]
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col gap-8 px-12 py-8 max-md:px-8", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
+ /* @__PURE__ */ jsx("h2", { className: "font-serif text-3xl font-medium tracking-tight", children: t("pages.product.sections.second.title") }),
+ /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: t("pages.product.sections.second.desc") })
+ ] }),
+ /* @__PURE__ */ jsx("div", { className: "grid grid-cols-4 gap-6 max-md:grid-cols-3 max-sm:grid-cols-2 max-sm:gap-4", children: product.map(
+ (e, index) => e.type === "art" ? /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: e.image_url,
+ alt: e.title,
+ className: "aspect-video rounded-md object-cover object-center"
+ },
+ index
+ ) : null
+ ) })
+ ] })
+ ] }) });
+}
+export {
+ Product as default
+};
diff --git a/bootstrap/ssr/assets/profile-0AslOX4t.js b/bootstrap/ssr/assets/profile-0AslOX4t.js
new file mode 100644
index 0000000..dbd1bce
--- /dev/null
+++ b/bootstrap/ssr/assets/profile-0AslOX4t.js
@@ -0,0 +1,465 @@
+import { jsxs, jsx, Fragment } from "react/jsx-runtime";
+import { q as queryParams, a as applyUrlDefaults, B as Button } from "./index-CY6fYws-.js";
+import { Transition } from "@headlessui/react";
+import { Form, usePage, Head, Link } from "@inertiajs/react";
+import { H as HeadingSmall, S as SettingsLayout } from "./layout-BQI5MpcL.js";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { D as Dialog, a as DialogTrigger, b as DialogContent, c as DialogTitle, d as DialogDescription, e as DialogFooter, f as DialogClose } from "./dialog-C3kXNAKa.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { useRef } from "react";
+import { A as AppLayout, e as edit$1 } from "./app-layout-BFyUFda2.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-separator";
+import "./index-BuzAnds1.js";
+import "./index-BRhO3_4E.js";
+import "./index-BHwjGIZD.js";
+import "@radix-ui/react-dialog";
+import "lucide-react";
+import "@radix-ui/react-label";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+const edit = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.definition = {
+ methods: ["get", "head"],
+ url: "/settings/profile"
+};
+edit.url = (options) => {
+ return edit.definition.url + queryParams(options);
+};
+edit.get = (options) => ({
+ url: edit.url(options),
+ method: "get"
+});
+edit.head = (options) => ({
+ url: edit.url(options),
+ method: "head"
+});
+const editForm = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.get = (options) => ({
+ action: edit.url(options),
+ method: "get"
+});
+editForm.head = (options) => ({
+ action: edit.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+edit.form = editForm;
+const update = (options) => ({
+ url: update.url(options),
+ method: "patch"
+});
+update.definition = {
+ methods: ["patch"],
+ url: "/settings/profile"
+};
+update.url = (options) => {
+ return update.definition.url + queryParams(options);
+};
+update.patch = (options) => ({
+ url: update.url(options),
+ method: "patch"
+});
+const updateForm = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PATCH",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+updateForm.patch = (options) => ({
+ action: update.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "PATCH",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+update.form = updateForm;
+const destroy = (options) => ({
+ url: destroy.url(options),
+ method: "delete"
+});
+destroy.definition = {
+ methods: ["delete"],
+ url: "/settings/profile"
+};
+destroy.url = (options) => {
+ return destroy.definition.url + queryParams(options);
+};
+destroy.delete = (options) => ({
+ url: destroy.url(options),
+ method: "delete"
+});
+const destroyForm = (options) => ({
+ action: destroy.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "DELETE",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+destroyForm.delete = (options) => ({
+ action: destroy.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "DELETE",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "post"
+});
+destroy.form = destroyForm;
+const ProfileController = { update, destroy };
+const notice = (options) => ({
+ url: notice.url(options),
+ method: "get"
+});
+notice.definition = {
+ methods: ["get", "head"],
+ url: "/verify-email"
+};
+notice.url = (options) => {
+ return notice.definition.url + queryParams(options);
+};
+notice.get = (options) => ({
+ url: notice.url(options),
+ method: "get"
+});
+notice.head = (options) => ({
+ url: notice.url(options),
+ method: "head"
+});
+const noticeForm = (options) => ({
+ action: notice.url(options),
+ method: "get"
+});
+noticeForm.get = (options) => ({
+ action: notice.url(options),
+ method: "get"
+});
+noticeForm.head = (options) => ({
+ action: notice.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+notice.form = noticeForm;
+const verify = (args, options) => ({
+ url: verify.url(args, options),
+ method: "get"
+});
+verify.definition = {
+ methods: ["get", "head"],
+ url: "/verify-email/{id}/{hash}"
+};
+verify.url = (args, options) => {
+ if (Array.isArray(args)) {
+ args = {
+ id: args[0],
+ hash: args[1]
+ };
+ }
+ args = applyUrlDefaults(args);
+ const parsedArgs = {
+ id: args.id,
+ hash: args.hash
+ };
+ return verify.definition.url.replace("{id}", parsedArgs.id.toString()).replace("{hash}", parsedArgs.hash.toString()).replace(/\/+$/, "") + queryParams(options);
+};
+verify.get = (args, options) => ({
+ url: verify.url(args, options),
+ method: "get"
+});
+verify.head = (args, options) => ({
+ url: verify.url(args, options),
+ method: "head"
+});
+const verifyForm = (args, options) => ({
+ action: verify.url(args, options),
+ method: "get"
+});
+verifyForm.get = (args, options) => ({
+ action: verify.url(args, options),
+ method: "get"
+});
+verifyForm.head = (args, options) => ({
+ action: verify.url(args, {
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+verify.form = verifyForm;
+const send = (options) => ({
+ url: send.url(options),
+ method: "post"
+});
+send.definition = {
+ methods: ["post"],
+ url: "/email/verification-notification"
+};
+send.url = (options) => {
+ return send.definition.url + queryParams(options);
+};
+send.post = (options) => ({
+ url: send.url(options),
+ method: "post"
+});
+const sendForm = (options) => ({
+ action: send.url(options),
+ method: "post"
+});
+sendForm.post = (options) => ({
+ action: send.url(options),
+ method: "post"
+});
+send.form = sendForm;
+({
+ notice: Object.assign(notice, notice),
+ verify: Object.assign(verify, verify),
+ send: Object.assign(send, send)
+});
+function DeleteUser() {
+ const passwordInput = useRef(null);
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
+ /* @__PURE__ */ jsx(
+ HeadingSmall,
+ {
+ title: "Delete account",
+ description: "Delete your account and all of its resources"
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "space-y-4 rounded-lg border border-red-100 bg-red-50 p-4 dark:border-red-200/10 dark:bg-red-700/10", children: [
+ /* @__PURE__ */ jsxs("div", { className: "relative space-y-0.5 text-red-600 dark:text-red-100", children: [
+ /* @__PURE__ */ jsx("p", { className: "font-medium", children: "Warning" }),
+ /* @__PURE__ */ jsx("p", { className: "text-sm", children: "Please proceed with caution, this cannot be undone." })
+ ] }),
+ /* @__PURE__ */ jsxs(Dialog, { children: [
+ /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
+ Button,
+ {
+ variant: "destructive",
+ "data-test": "delete-user-button",
+ children: "Delete account"
+ }
+ ) }),
+ /* @__PURE__ */ jsxs(DialogContent, { children: [
+ /* @__PURE__ */ jsx(DialogTitle, { children: "Are you sure you want to delete your account?" }),
+ /* @__PURE__ */ jsx(DialogDescription, { children: "Once your account is deleted, all of its resources and data will also be permanently deleted. Please enter your password to confirm you would like to permanently delete your account." }),
+ /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...ProfileController.destroy.form(),
+ options: {
+ preserveScroll: true
+ },
+ onError: () => passwordInput.current?.focus(),
+ resetOnSuccess: true,
+ className: "space-y-6",
+ children: ({ resetAndClearErrors, processing, errors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(
+ Label,
+ {
+ htmlFor: "password",
+ className: "sr-only",
+ children: "Password"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password",
+ type: "password",
+ name: "password",
+ ref: passwordInput,
+ placeholder: "Password",
+ autoComplete: "current-password"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.password })
+ ] }),
+ /* @__PURE__ */ jsxs(DialogFooter, { className: "gap-2", children: [
+ /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
+ Button,
+ {
+ variant: "secondary",
+ onClick: () => resetAndClearErrors(),
+ children: "Cancel"
+ }
+ ) }),
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ variant: "destructive",
+ disabled: processing,
+ asChild: true,
+ children: /* @__PURE__ */ jsx(
+ "button",
+ {
+ type: "submit",
+ "data-test": "confirm-delete-user-button",
+ children: "Delete account"
+ }
+ )
+ }
+ )
+ ] })
+ ] })
+ }
+ )
+ ] })
+ ] })
+ ] })
+ ] });
+}
+const breadcrumbs = [
+ {
+ title: "Profile settings",
+ href: edit$1().url
+ }
+];
+function Profile({
+ mustVerifyEmail,
+ status
+}) {
+ const { auth } = usePage().props;
+ return /* @__PURE__ */ jsxs(AppLayout, { breadcrumbs, children: [
+ /* @__PURE__ */ jsx(Head, { title: "Profile settings" }),
+ /* @__PURE__ */ jsxs(SettingsLayout, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
+ /* @__PURE__ */ jsx(
+ HeadingSmall,
+ {
+ title: "Profile information",
+ description: "Update your name and email address"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...ProfileController.update.form(),
+ options: {
+ preserveScroll: true
+ },
+ className: "space-y-6",
+ children: ({ processing, recentlySuccessful, errors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "name", children: "Name" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "name",
+ className: "mt-1 block w-full",
+ defaultValue: auth.user.name,
+ name: "name",
+ required: true,
+ autoComplete: "name",
+ placeholder: "Full name"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ className: "mt-2",
+ message: errors.name
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email address" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "email",
+ type: "email",
+ className: "mt-1 block w-full",
+ defaultValue: auth.user.email,
+ name: "email",
+ required: true,
+ autoComplete: "username",
+ placeholder: "Email address"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ className: "mt-2",
+ message: errors.email
+ }
+ )
+ ] }),
+ mustVerifyEmail && auth.user.email_verified_at === null && /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsxs("p", { className: "-mt-4 text-sm text-muted-foreground", children: [
+ "Your email address is unverified.",
+ " ",
+ /* @__PURE__ */ jsx(
+ Link,
+ {
+ href: send(),
+ as: "button",
+ className: "text-foreground underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current! dark:decoration-neutral-500",
+ children: "Click here to resend the verification email."
+ }
+ )
+ ] }),
+ status === "verification-link-sent" && /* @__PURE__ */ jsx("div", { className: "mt-2 text-sm font-medium text-green-600", children: "A new verification link has been sent to your email address." })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ disabled: processing,
+ "data-test": "update-profile-button",
+ children: "Save"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ Transition,
+ {
+ show: recentlySuccessful,
+ enter: "transition ease-in-out",
+ enterFrom: "opacity-0",
+ leave: "transition ease-in-out",
+ leaveTo: "opacity-0",
+ children: /* @__PURE__ */ jsx("p", { className: "text-sm text-neutral-600", children: "Saved" })
+ }
+ )
+ ] })
+ ] })
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsx(DeleteUser, {})
+ ] })
+ ] });
+}
+export {
+ Profile as default
+};
diff --git a/bootstrap/ssr/assets/register-5D2-Zto1.js b/bootstrap/ssr/assets/register-5D2-Zto1.js
new file mode 100644
index 0000000..e1704c5
--- /dev/null
+++ b/bootstrap/ssr/assets/register-5D2-Zto1.js
@@ -0,0 +1,199 @@
+import { jsxs, jsx, Fragment } from "react/jsx-runtime";
+import { q as queryParams, B as Button, l as login } from "./index-CY6fYws-.js";
+import { Head, Form } from "@inertiajs/react";
+import { LoaderCircle } from "lucide-react";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { T as TextLink } from "./text-link-ByYmiDlq.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { A as AuthLayout } from "./auth-layout-iyjWmxzQ.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "./app-logo-icon-kpljnLMz.js";
+const create = (options) => ({
+ url: create.url(options),
+ method: "get"
+});
+create.definition = {
+ methods: ["get", "head"],
+ url: "/register"
+};
+create.url = (options) => {
+ return create.definition.url + queryParams(options);
+};
+create.get = (options) => ({
+ url: create.url(options),
+ method: "get"
+});
+create.head = (options) => ({
+ url: create.url(options),
+ method: "head"
+});
+const createForm = (options) => ({
+ action: create.url(options),
+ method: "get"
+});
+createForm.get = (options) => ({
+ action: create.url(options),
+ method: "get"
+});
+createForm.head = (options) => ({
+ action: create.url({
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+create.form = createForm;
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/register"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const RegisteredUserController = { store };
+function Register() {
+ return /* @__PURE__ */ jsxs(
+ AuthLayout,
+ {
+ title: "Create an account",
+ description: "Enter your details below to create your account",
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Register" }),
+ /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...RegisteredUserController.store.form(),
+ resetOnSuccess: ["password", "password_confirmation"],
+ disableWhileProcessing: true,
+ className: "flex flex-col gap-6",
+ children: ({ processing, errors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "name", children: "Name" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "name",
+ type: "text",
+ required: true,
+ autoFocus: true,
+ tabIndex: 1,
+ autoComplete: "name",
+ name: "name",
+ placeholder: "Full name"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors.name,
+ className: "mt-2"
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email address" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "email",
+ type: "email",
+ required: true,
+ tabIndex: 2,
+ autoComplete: "email",
+ name: "email",
+ placeholder: "email@example.com"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.email })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", children: "Password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password",
+ type: "password",
+ required: true,
+ tabIndex: 3,
+ autoComplete: "new-password",
+ name: "password",
+ placeholder: "Password"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.password })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password_confirmation", children: "Confirm password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password_confirmation",
+ type: "password",
+ required: true,
+ tabIndex: 4,
+ autoComplete: "new-password",
+ name: "password_confirmation",
+ placeholder: "Confirm password"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors.password_confirmation
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs(
+ Button,
+ {
+ type: "submit",
+ className: "mt-2 w-full",
+ tabIndex: 5,
+ "data-test": "register-user-button",
+ children: [
+ processing && /* @__PURE__ */ jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" }),
+ "Create account"
+ ]
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "text-center text-sm text-muted-foreground", children: [
+ "Already have an account?",
+ " ",
+ /* @__PURE__ */ jsx(TextLink, { href: login(), tabIndex: 6, children: "Log in" })
+ ] })
+ ] })
+ }
+ )
+ ]
+ }
+ );
+}
+export {
+ Register as default
+};
diff --git a/bootstrap/ssr/assets/reset-password-yPQQhFaB.js b/bootstrap/ssr/assets/reset-password-yPQQhFaB.js
new file mode 100644
index 0000000..b080341
--- /dev/null
+++ b/bootstrap/ssr/assets/reset-password-yPQQhFaB.js
@@ -0,0 +1,185 @@
+import { jsxs, jsx } from "react/jsx-runtime";
+import { q as queryParams, a as applyUrlDefaults, B as Button } from "./index-CY6fYws-.js";
+import { Head, Form } from "@inertiajs/react";
+import { LoaderCircle } from "lucide-react";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { A as AuthLayout } from "./auth-layout-iyjWmxzQ.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-label";
+import "./app-logo-icon-kpljnLMz.js";
+const create = (args, options) => ({
+ url: create.url(args, options),
+ method: "get"
+});
+create.definition = {
+ methods: ["get", "head"],
+ url: "/reset-password/{token}"
+};
+create.url = (args, options) => {
+ if (typeof args === "string" || typeof args === "number") {
+ args = { token: args };
+ }
+ if (Array.isArray(args)) {
+ args = {
+ token: args[0]
+ };
+ }
+ args = applyUrlDefaults(args);
+ const parsedArgs = {
+ token: args.token
+ };
+ return create.definition.url.replace("{token}", parsedArgs.token.toString()).replace(/\/+$/, "") + queryParams(options);
+};
+create.get = (args, options) => ({
+ url: create.url(args, options),
+ method: "get"
+});
+create.head = (args, options) => ({
+ url: create.url(args, options),
+ method: "head"
+});
+const createForm = (args, options) => ({
+ action: create.url(args, options),
+ method: "get"
+});
+createForm.get = (args, options) => ({
+ action: create.url(args, options),
+ method: "get"
+});
+createForm.head = (args, options) => ({
+ action: create.url(args, {
+ [options?.mergeQuery ? "mergeQuery" : "query"]: {
+ _method: "HEAD",
+ ...options?.query ?? options?.mergeQuery ?? {}
+ }
+ }),
+ method: "get"
+});
+create.form = createForm;
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/reset-password"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const NewPasswordController = { store };
+function ResetPassword({ token, email }) {
+ return /* @__PURE__ */ jsxs(
+ AuthLayout,
+ {
+ title: "Reset password",
+ description: "Please enter your new password below",
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Reset password" }),
+ /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...NewPasswordController.store.form(),
+ transform: (data) => ({ ...data, token, email }),
+ resetOnSuccess: ["password", "password_confirmation"],
+ children: ({ processing, errors }) => /* @__PURE__ */ jsxs("div", { className: "grid gap-6", children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "email", children: "Email" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "email",
+ type: "email",
+ name: "email",
+ autoComplete: "email",
+ value: email,
+ className: "mt-1 block w-full",
+ readOnly: true
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors.email,
+ className: "mt-2"
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password", children: "Password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password",
+ type: "password",
+ name: "password",
+ autoComplete: "new-password",
+ className: "mt-1 block w-full",
+ autoFocus: true,
+ placeholder: "Password"
+ }
+ ),
+ /* @__PURE__ */ jsx(InputError, { message: errors.password })
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-2", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "password_confirmation", children: "Confirm password" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "password_confirmation",
+ type: "password",
+ name: "password_confirmation",
+ autoComplete: "new-password",
+ className: "mt-1 block w-full",
+ placeholder: "Confirm password"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors.password_confirmation,
+ className: "mt-2"
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs(
+ Button,
+ {
+ type: "submit",
+ className: "mt-4 w-full",
+ disabled: processing,
+ "data-test": "reset-password-button",
+ children: [
+ processing && /* @__PURE__ */ jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" }),
+ "Reset password"
+ ]
+ }
+ )
+ ] })
+ }
+ )
+ ]
+ }
+ );
+}
+export {
+ ResetPassword as default
+};
diff --git a/bootstrap/ssr/assets/select-CsRyyQUa.js b/bootstrap/ssr/assets/select-CsRyyQUa.js
new file mode 100644
index 0000000..65f774f
--- /dev/null
+++ b/bootstrap/ssr/assets/select-CsRyyQUa.js
@@ -0,0 +1,137 @@
+import { jsx, jsxs } from "react/jsx-runtime";
+import * as SelectPrimitive from "@radix-ui/react-select";
+import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
+import { c as cn } from "./index-CY6fYws-.js";
+function Select({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SelectPrimitive.Root, { "data-slot": "select", ...props });
+}
+function SelectGroup({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SelectPrimitive.Group, { "data-slot": "select-group", ...props });
+}
+function SelectValue({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
+}
+function SelectTrigger({
+ className,
+ children,
+ ...props
+}) {
+ return /* @__PURE__ */ jsxs(
+ SelectPrimitive.Trigger,
+ {
+ "data-slot": "select-trigger",
+ className: cn(
+ "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&>span]:line-clamp-1",
+ className
+ ),
+ ...props,
+ children: [
+ children,
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 opacity-50" }) })
+ ]
+ }
+ );
+}
+function SelectContent({
+ className,
+ children,
+ position = "popper",
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
+ SelectPrimitive.Content,
+ {
+ "data-slot": "select-content",
+ className: cn(
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md",
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
+ className
+ ),
+ position,
+ ...props,
+ children: [
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
+ /* @__PURE__ */ jsx(
+ SelectPrimitive.Viewport,
+ {
+ className: cn(
+ "p-1",
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
+ ),
+ children
+ }
+ ),
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
+ ]
+ }
+ ) });
+}
+function SelectItem({
+ className,
+ children,
+ ...props
+}) {
+ return /* @__PURE__ */ jsxs(
+ SelectPrimitive.Item,
+ {
+ "data-slot": "select-item",
+ className: cn(
+ "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
+ className
+ ),
+ ...props,
+ children: [
+ /* @__PURE__ */ jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) }) }),
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
+ ]
+ }
+ );
+}
+function SelectScrollUpButton({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SelectPrimitive.ScrollUpButton,
+ {
+ "data-slot": "select-scroll-up-button",
+ className: cn(
+ "flex cursor-default items-center justify-center py-1",
+ className
+ ),
+ ...props,
+ children: /* @__PURE__ */ jsx(ChevronUpIcon, { className: "size-4" })
+ }
+ );
+}
+function SelectScrollDownButton({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SelectPrimitive.ScrollDownButton,
+ {
+ "data-slot": "select-scroll-down-button",
+ className: cn(
+ "flex cursor-default items-center justify-center py-1",
+ className
+ ),
+ ...props,
+ children: /* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4" })
+ }
+ );
+}
+export {
+ Select as S,
+ SelectTrigger as a,
+ SelectValue as b,
+ SelectContent as c,
+ SelectItem as d,
+ SelectGroup as e
+};
diff --git a/bootstrap/ssr/assets/sheet-Bq2cyJmx.js b/bootstrap/ssr/assets/sheet-Bq2cyJmx.js
new file mode 100644
index 0000000..129649a
--- /dev/null
+++ b/bootstrap/ssr/assets/sheet-Bq2cyJmx.js
@@ -0,0 +1,109 @@
+import { jsx, jsxs } from "react/jsx-runtime";
+import * as SheetPrimitive from "@radix-ui/react-dialog";
+import { XIcon } from "lucide-react";
+import { c as cn } from "./index-CY6fYws-.js";
+function Sheet({ ...props }) {
+ return /* @__PURE__ */ jsx(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
+}
+function SheetTrigger({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
+}
+function SheetPortal({
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
+}
+function SheetOverlay({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SheetPrimitive.Overlay,
+ {
+ "data-slot": "sheet-overlay",
+ className: cn(
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function SheetContent({
+ className,
+ children,
+ side = "right",
+ ...props
+}) {
+ return /* @__PURE__ */ jsxs(SheetPortal, { children: [
+ /* @__PURE__ */ jsx(SheetOverlay, {}),
+ /* @__PURE__ */ jsxs(
+ SheetPrimitive.Content,
+ {
+ "data-slot": "sheet-content",
+ className: cn(
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
+ side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",
+ side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",
+ side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",
+ side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",
+ className
+ ),
+ ...props,
+ children: [
+ children,
+ /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [
+ /* @__PURE__ */ jsx(XIcon, { className: "size-4" }),
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
+ ] })
+ ]
+ }
+ )
+ ] });
+}
+function SheetHeader({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "sheet-header",
+ className: cn("flex flex-col gap-1.5 p-4", className),
+ ...props
+ }
+ );
+}
+function SheetTitle({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SheetPrimitive.Title,
+ {
+ "data-slot": "sheet-title",
+ className: cn("text-foreground font-semibold", className),
+ ...props
+ }
+ );
+}
+function SheetDescription({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ SheetPrimitive.Description,
+ {
+ "data-slot": "sheet-description",
+ className: cn("text-muted-foreground text-sm", className),
+ ...props
+ }
+ );
+}
+export {
+ Sheet as S,
+ SheetTrigger as a,
+ SheetContent as b,
+ SheetTitle as c,
+ SheetDescription as d,
+ SheetHeader as e
+};
diff --git a/bootstrap/ssr/assets/table-DB-AS5w6.js b/bootstrap/ssr/assets/table-DB-AS5w6.js
new file mode 100644
index 0000000..6d43445
--- /dev/null
+++ b/bootstrap/ssr/assets/table-DB-AS5w6.js
@@ -0,0 +1,86 @@
+import { jsx } from "react/jsx-runtime";
+import { c as cn } from "./index-CY6fYws-.js";
+function Table({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "table-container",
+ className: "relative w-full overflow-x-auto",
+ children: /* @__PURE__ */ jsx(
+ "table",
+ {
+ "data-slot": "table",
+ className: cn("w-full caption-bottom text-sm", className),
+ ...props
+ }
+ )
+ }
+ );
+}
+function TableHeader({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "thead",
+ {
+ "data-slot": "table-header",
+ className: cn("[&_tr]:border-b", className),
+ ...props
+ }
+ );
+}
+function TableBody({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "tbody",
+ {
+ "data-slot": "table-body",
+ className: cn("[&_tr:last-child]:border-0", className),
+ ...props
+ }
+ );
+}
+function TableRow({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "tr",
+ {
+ "data-slot": "table-row",
+ className: cn(
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function TableHead({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "th",
+ {
+ "data-slot": "table-head",
+ className: cn(
+ "text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function TableCell({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "td",
+ {
+ "data-slot": "table-cell",
+ className: cn(
+ "p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
+ className
+ ),
+ ...props
+ }
+ );
+}
+export {
+ Table as T,
+ TableHeader as a,
+ TableRow as b,
+ TableHead as c,
+ TableBody as d,
+ TableCell as e
+};
diff --git a/bootstrap/ssr/assets/tabs-C0o9riYx.js b/bootstrap/ssr/assets/tabs-C0o9riYx.js
new file mode 100644
index 0000000..2012afe
--- /dev/null
+++ b/bootstrap/ssr/assets/tabs-C0o9riYx.js
@@ -0,0 +1,67 @@
+import { jsx } from "react/jsx-runtime";
+import * as TabsPrimitive from "@radix-ui/react-tabs";
+import { c as cn } from "./index-CY6fYws-.js";
+function Tabs({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ TabsPrimitive.Root,
+ {
+ "data-slot": "tabs",
+ className: cn("flex flex-col gap-2", className),
+ ...props
+ }
+ );
+}
+function TabsList({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ TabsPrimitive.List,
+ {
+ "data-slot": "tabs-list",
+ className: cn(
+ "bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function TabsTrigger({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ TabsPrimitive.Trigger,
+ {
+ "data-slot": "tabs-trigger",
+ className: cn(
+ "data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function TabsContent({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ TabsPrimitive.Content,
+ {
+ "data-slot": "tabs-content",
+ className: cn("flex-1 outline-none", className),
+ ...props
+ }
+ );
+}
+export {
+ Tabs as T,
+ TabsList as a,
+ TabsTrigger as b,
+ TabsContent as c
+};
diff --git a/bootstrap/ssr/assets/testimonial-B1EWgUPO.js b/bootstrap/ssr/assets/testimonial-B1EWgUPO.js
new file mode 100644
index 0000000..a5938b8
--- /dev/null
+++ b/bootstrap/ssr/assets/testimonial-B1EWgUPO.js
@@ -0,0 +1,70 @@
+import { jsx, Fragment, jsxs } from "react/jsx-runtime";
+import { T as Table, a as TableHeader, b as TableRow, c as TableHead, d as TableBody, e as TableCell } from "./table-DB-AS5w6.js";
+import { A as AppLayout, i as index } from "./app-layout-BFyUFda2.js";
+import { Head, Link } from "@inertiajs/react";
+import { Pencil, Trash2 } from "lucide-react";
+import "./index-CY6fYws-.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "react";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+function Testimonial({
+ testimonial
+}) {
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
+ AppLayout,
+ {
+ breadcrumbs: [{ title: "Testimonial", href: index().url }],
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Testimonials" }),
+ /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-8 px-8 py-8", children: [
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: /* @__PURE__ */ jsx("h1", { className: "text-xl font-semibold tracking-tight", children: "Testimonial" }) }),
+ /* @__PURE__ */ jsxs(Table, { children: [
+ /* @__PURE__ */ jsx(TableHeader, { children: /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableHead, { className: "w-[80px]", children: "S.N." }),
+ /* @__PURE__ */ jsx(TableHead, { className: "w-48", children: "Image" }),
+ /* @__PURE__ */ jsx(TableHead, { children: "Name" }),
+ /* @__PURE__ */ jsx(TableHead, { children: "Location" }),
+ /* @__PURE__ */ jsx(TableHead, { children: "Description" }),
+ /* @__PURE__ */ jsx(TableHead, { className: "text-right", children: "Action" })
+ ] }) }),
+ /* @__PURE__ */ jsx(TableBody, { children: testimonial.map((item, index2) => /* @__PURE__ */ jsxs(TableRow, { children: [
+ /* @__PURE__ */ jsx(TableCell, { className: "font-medium", children: index2 + 1 }),
+ /* @__PURE__ */ jsx(TableCell, { children: /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: item.image,
+ alt: item.name,
+ className: "aspect-video w-24 rounded-md object-cover object-center"
+ }
+ ) }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.name }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.location }),
+ /* @__PURE__ */ jsx(TableCell, { children: item.description }),
+ /* @__PURE__ */ jsx(TableCell, { className: "text-right", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-2", children: [
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(Pencil, { size: 18 }) }),
+ /* @__PURE__ */ jsx(Link, { href: "", children: /* @__PURE__ */ jsx(
+ Trash2,
+ {
+ size: 18,
+ color: "#D2042D"
+ }
+ ) })
+ ] }) })
+ ] }, index2)) })
+ ] })
+ ] })
+ ]
+ }
+ ) });
+}
+export {
+ Testimonial as default
+};
diff --git a/bootstrap/ssr/assets/text-link-ByYmiDlq.js b/bootstrap/ssr/assets/text-link-ByYmiDlq.js
new file mode 100644
index 0000000..4d38959
--- /dev/null
+++ b/bootstrap/ssr/assets/text-link-ByYmiDlq.js
@@ -0,0 +1,23 @@
+import { jsx } from "react/jsx-runtime";
+import { c as cn } from "./index-CY6fYws-.js";
+import { Link } from "@inertiajs/react";
+function TextLink({
+ className = "",
+ children,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ Link,
+ {
+ className: cn(
+ "text-foreground underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current! dark:decoration-neutral-500",
+ className
+ ),
+ ...props,
+ children
+ }
+ );
+}
+export {
+ TextLink as T
+};
diff --git a/bootstrap/ssr/assets/textarea-CcuSk8nN.js b/bootstrap/ssr/assets/textarea-CcuSk8nN.js
new file mode 100644
index 0000000..a0883aa
--- /dev/null
+++ b/bootstrap/ssr/assets/textarea-CcuSk8nN.js
@@ -0,0 +1,18 @@
+import { jsx } from "react/jsx-runtime";
+import { c as cn } from "./index-CY6fYws-.js";
+function Textarea({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "textarea",
+ {
+ "data-slot": "textarea",
+ className: cn(
+ "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
+ className
+ ),
+ ...props
+ }
+ );
+}
+export {
+ Textarea as T
+};
diff --git a/bootstrap/ssr/assets/two-factor-DaA3_KAg.js b/bootstrap/ssr/assets/two-factor-DaA3_KAg.js
new file mode 100644
index 0000000..a92b7ca
--- /dev/null
+++ b/bootstrap/ssr/assets/two-factor-DaA3_KAg.js
@@ -0,0 +1,664 @@
+import { jsx, jsxs, Fragment } from "react/jsx-runtime";
+import { S as SettingsLayout, H as HeadingSmall } from "./layout-BQI5MpcL.js";
+import { c as cn, B as Button } from "./index-CY6fYws-.js";
+import { c as regenerateRecoveryCodes, d as confirm, b as show, e as disable, f as enable } from "./index-BHwjGIZD.js";
+import { Form, Head } from "@inertiajs/react";
+import { AlertCircleIcon, LockKeyhole, EyeOff, Eye, RefreshCw, ScanLine, Loader2, Check, Copy, ShieldBan, ShieldCheck } from "lucide-react";
+import { useState, useRef, useCallback, useEffect, useMemo } from "react";
+import { cva } from "class-variance-authority";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { D as Dialog, b as DialogContent, g as DialogHeader, c as DialogTitle, d as DialogDescription } from "./dialog-C3kXNAKa.js";
+import { I as InputOTP, O as OTP_MAX_LENGTH, a as InputOTPGroup, b as InputOTPSlot, u as useTwoFactorAuth } from "./use-two-factor-auth-CT68eJCK.js";
+import { REGEXP_ONLY_DIGITS } from "input-otp";
+import { Slot } from "@radix-ui/react-slot";
+import { A as AppLayout } from "./app-layout-BFyUFda2.js";
+import "@radix-ui/react-separator";
+import "./index-BuzAnds1.js";
+import "./index-BRhO3_4E.js";
+import "clsx";
+import "tailwind-merge";
+import "@radix-ui/react-dialog";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-tooltip";
+import "@radix-ui/react-dropdown-menu";
+import "@radix-ui/react-avatar";
+import "./app-logo-icon-kpljnLMz.js";
+function Card({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "card",
+ className: cn(
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function CardHeader({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "card-header",
+ className: cn("flex flex-col gap-1.5 px-6", className),
+ ...props
+ }
+ );
+}
+function CardTitle({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "card-title",
+ className: cn("leading-none font-semibold", className),
+ ...props
+ }
+ );
+}
+function CardDescription({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "card-description",
+ className: cn("text-muted-foreground text-sm", className),
+ ...props
+ }
+ );
+}
+function CardContent({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "card-content",
+ className: cn("px-6", className),
+ ...props
+ }
+ );
+}
+const alertVariants = cva(
+ "relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
+ {
+ variants: {
+ variant: {
+ default: "bg-background text-foreground",
+ destructive: "text-destructive-foreground [&>svg]:text-current *:data-[slot=alert-description]:text-destructive-foreground/80"
+ }
+ },
+ defaultVariants: {
+ variant: "default"
+ }
+ }
+);
+function Alert({
+ className,
+ variant,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "alert",
+ role: "alert",
+ className: cn(alertVariants({ variant }), className),
+ ...props
+ }
+ );
+}
+function AlertTitle({ className, ...props }) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "alert-title",
+ className: cn(
+ "col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function AlertDescription({
+ className,
+ ...props
+}) {
+ return /* @__PURE__ */ jsx(
+ "div",
+ {
+ "data-slot": "alert-description",
+ className: cn(
+ "text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",
+ className
+ ),
+ ...props
+ }
+ );
+}
+function AlertError({
+ errors,
+ title
+}) {
+ return /* @__PURE__ */ jsxs(Alert, { variant: "destructive", children: [
+ /* @__PURE__ */ jsx(AlertCircleIcon, {}),
+ /* @__PURE__ */ jsx(AlertTitle, { children: title || "Something went wrong." }),
+ /* @__PURE__ */ jsx(AlertDescription, { children: /* @__PURE__ */ jsx("ul", { className: "list-inside list-disc text-sm", children: Array.from(new Set(errors)).map((error, index) => /* @__PURE__ */ jsx("li", { children: error }, index)) }) })
+ ] });
+}
+function TwoFactorRecoveryCodes({
+ recoveryCodesList,
+ fetchRecoveryCodes,
+ errors
+}) {
+ const [codesAreVisible, setCodesAreVisible] = useState(false);
+ const codesSectionRef = useRef(null);
+ const canRegenerateCodes = recoveryCodesList.length > 0 && codesAreVisible;
+ const toggleCodesVisibility = useCallback(async () => {
+ if (!codesAreVisible && !recoveryCodesList.length) {
+ await fetchRecoveryCodes();
+ }
+ setCodesAreVisible(!codesAreVisible);
+ if (!codesAreVisible) {
+ setTimeout(() => {
+ codesSectionRef.current?.scrollIntoView({
+ behavior: "smooth",
+ block: "nearest"
+ });
+ });
+ }
+ }, [codesAreVisible, recoveryCodesList.length, fetchRecoveryCodes]);
+ useEffect(() => {
+ if (!recoveryCodesList.length) {
+ fetchRecoveryCodes();
+ }
+ }, [recoveryCodesList.length, fetchRecoveryCodes]);
+ const RecoveryCodeIconComponent = codesAreVisible ? EyeOff : Eye;
+ return /* @__PURE__ */ jsxs(Card, { children: [
+ /* @__PURE__ */ jsxs(CardHeader, { children: [
+ /* @__PURE__ */ jsxs(CardTitle, { className: "flex gap-3", children: [
+ /* @__PURE__ */ jsx(LockKeyhole, { className: "size-4", "aria-hidden": "true" }),
+ "2FA Recovery Codes"
+ ] }),
+ /* @__PURE__ */ jsx(CardDescription, { children: "Recovery codes let you regain access if you lose your 2FA device. Store them in a secure password manager." })
+ ] }),
+ /* @__PURE__ */ jsxs(CardContent, { children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-3 select-none sm:flex-row sm:items-center sm:justify-between", children: [
+ /* @__PURE__ */ jsxs(
+ Button,
+ {
+ onClick: toggleCodesVisibility,
+ className: "w-fit",
+ "aria-expanded": codesAreVisible,
+ "aria-controls": "recovery-codes-section",
+ children: [
+ /* @__PURE__ */ jsx(
+ RecoveryCodeIconComponent,
+ {
+ className: "size-4",
+ "aria-hidden": "true"
+ }
+ ),
+ codesAreVisible ? "Hide" : "View",
+ " Recovery Codes"
+ ]
+ }
+ ),
+ canRegenerateCodes && /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...regenerateRecoveryCodes.form(),
+ options: { preserveScroll: true },
+ onSuccess: fetchRecoveryCodes,
+ children: ({ processing }) => /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "secondary",
+ type: "submit",
+ disabled: processing,
+ "aria-describedby": "regenerate-warning",
+ children: [
+ /* @__PURE__ */ jsx(RefreshCw, {}),
+ " Regenerate Codes"
+ ]
+ }
+ )
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsx(
+ "div",
+ {
+ id: "recovery-codes-section",
+ className: `relative overflow-hidden transition-all duration-300 ${codesAreVisible ? "h-auto opacity-100" : "h-0 opacity-0"}`,
+ "aria-hidden": !codesAreVisible,
+ children: /* @__PURE__ */ jsx("div", { className: "mt-3 space-y-3", children: errors?.length ? /* @__PURE__ */ jsx(AlertError, { errors }) : /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsx(
+ "div",
+ {
+ ref: codesSectionRef,
+ className: "grid gap-1 rounded-lg bg-muted p-4 font-mono text-sm",
+ role: "list",
+ "aria-label": "Recovery codes",
+ children: recoveryCodesList.length ? recoveryCodesList.map((code, index) => /* @__PURE__ */ jsx(
+ "div",
+ {
+ role: "listitem",
+ className: "select-text",
+ children: code
+ },
+ index
+ )) : /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: "space-y-2",
+ "aria-label": "Loading recovery codes",
+ children: Array.from(
+ { length: 8 },
+ (_, index) => /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: "h-4 animate-pulse rounded bg-muted-foreground/20",
+ "aria-hidden": "true"
+ },
+ index
+ )
+ )
+ }
+ )
+ }
+ ),
+ /* @__PURE__ */ jsx("div", { className: "text-xs text-muted-foreground select-none", children: /* @__PURE__ */ jsxs("p", { id: "regenerate-warning", children: [
+ "Each recovery code can be used once to access your account and will be removed after use. If you need more, click",
+ " ",
+ /* @__PURE__ */ jsx("span", { className: "font-bold", children: "Regenerate Codes" }),
+ " ",
+ "above."
+ ] }) })
+ ] }) })
+ }
+ )
+ ] })
+ ] });
+}
+function useClipboard() {
+ const [copiedText, setCopiedText] = useState(null);
+ const copy = useCallback(async (text) => {
+ if (!navigator?.clipboard) {
+ console.warn("Clipboard not supported");
+ return false;
+ }
+ try {
+ await navigator.clipboard.writeText(text);
+ setCopiedText(text);
+ return true;
+ } catch (error) {
+ console.warn("Copy failed", error);
+ setCopiedText(null);
+ return false;
+ }
+ }, []);
+ return [copiedText, copy];
+}
+function GridScanIcon() {
+ return /* @__PURE__ */ jsx("div", { className: "mb-3 rounded-full border border-border bg-card p-0.5 shadow-sm", children: /* @__PURE__ */ jsxs("div", { className: "relative overflow-hidden rounded-full border border-border bg-muted p-2.5", children: [
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 grid grid-cols-5 opacity-50", children: Array.from({ length: 5 }, (_, i) => /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: "border-r border-border last:border-r-0"
+ },
+ `col-${i + 1}`
+ )) }),
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 grid grid-rows-5 opacity-50", children: Array.from({ length: 5 }, (_, i) => /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: "border-b border-border last:border-b-0"
+ },
+ `row-${i + 1}`
+ )) }),
+ /* @__PURE__ */ jsx(ScanLine, { className: "relative z-20 size-6 text-foreground" })
+ ] }) });
+}
+function TwoFactorSetupStep({
+ qrCodeSvg,
+ manualSetupKey,
+ buttonText,
+ onNextStep,
+ errors
+}) {
+ const [copiedText, copy] = useClipboard();
+ const IconComponent = copiedText === manualSetupKey ? Check : Copy;
+ return /* @__PURE__ */ jsx(Fragment, { children: errors?.length ? /* @__PURE__ */ jsx(AlertError, { errors }) : /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-md overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "mx-auto aspect-square w-64 rounded-lg border border-border", children: /* @__PURE__ */ jsx("div", { className: "z-10 flex h-full w-full items-center justify-center p-5", children: qrCodeSvg ? /* @__PURE__ */ jsx(
+ "div",
+ {
+ dangerouslySetInnerHTML: {
+ __html: qrCodeSvg
+ }
+ }
+ ) : /* @__PURE__ */ jsx(Loader2, { className: "flex size-4 animate-spin" }) }) }) }),
+ /* @__PURE__ */ jsx("div", { className: "flex w-full space-x-5", children: /* @__PURE__ */ jsx(Button, { className: "w-full", onClick: onNextStep, children: buttonText }) }),
+ /* @__PURE__ */ jsxs("div", { className: "relative flex w-full items-center justify-center", children: [
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 top-1/2 h-px w-full bg-border" }),
+ /* @__PURE__ */ jsx("span", { className: "relative bg-card px-2 py-1", children: "or, enter the code manually" })
+ ] }),
+ /* @__PURE__ */ jsx("div", { className: "flex w-full space-x-2", children: /* @__PURE__ */ jsx("div", { className: "flex w-full items-stretch overflow-hidden rounded-xl border border-border", children: !manualSetupKey ? /* @__PURE__ */ jsx("div", { className: "flex h-full w-full items-center justify-center bg-muted p-3", children: /* @__PURE__ */ jsx(Loader2, { className: "size-4 animate-spin" }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsx(
+ "input",
+ {
+ type: "text",
+ readOnly: true,
+ value: manualSetupKey,
+ className: "h-full w-full bg-background p-3 text-foreground outline-none"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ "button",
+ {
+ onClick: () => copy(manualSetupKey),
+ className: "border-l border-border px-3 hover:bg-muted",
+ children: /* @__PURE__ */ jsx(IconComponent, { className: "w-4" })
+ }
+ )
+ ] }) }) })
+ ] }) });
+}
+function TwoFactorVerificationStep({
+ onClose,
+ onBack
+}) {
+ const [code, setCode] = useState("");
+ const pinInputContainerRef = useRef(null);
+ useEffect(() => {
+ setTimeout(() => {
+ pinInputContainerRef.current?.querySelector("input")?.focus();
+ }, 0);
+ }, []);
+ return /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...confirm.form(),
+ onSuccess: () => onClose(),
+ resetOnError: true,
+ resetOnSuccess: true,
+ children: ({
+ processing,
+ errors
+ }) => /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
+ "div",
+ {
+ ref: pinInputContainerRef,
+ className: "relative w-full space-y-3",
+ children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col items-center space-y-3 py-2", children: [
+ /* @__PURE__ */ jsx(
+ InputOTP,
+ {
+ id: "otp",
+ name: "code",
+ maxLength: OTP_MAX_LENGTH,
+ onChange: setCode,
+ disabled: processing,
+ pattern: REGEXP_ONLY_DIGITS,
+ children: /* @__PURE__ */ jsx(InputOTPGroup, { children: Array.from(
+ { length: OTP_MAX_LENGTH },
+ (_, index) => /* @__PURE__ */ jsx(
+ InputOTPSlot,
+ {
+ index
+ },
+ index
+ )
+ ) })
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors?.confirmTwoFactorAuthentication?.code
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full space-x-5", children: [
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ type: "button",
+ variant: "outline",
+ className: "flex-1",
+ onClick: onBack,
+ disabled: processing,
+ children: "Back"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ type: "submit",
+ className: "flex-1",
+ disabled: processing || code.length < OTP_MAX_LENGTH,
+ children: "Confirm"
+ }
+ )
+ ] })
+ ]
+ }
+ ) })
+ }
+ );
+}
+function TwoFactorSetupModal({
+ isOpen,
+ onClose,
+ requiresConfirmation,
+ twoFactorEnabled,
+ qrCodeSvg,
+ manualSetupKey,
+ clearSetupData,
+ fetchSetupData,
+ errors
+}) {
+ const [showVerificationStep, setShowVerificationStep] = useState(false);
+ const modalConfig = useMemo(() => {
+ if (twoFactorEnabled) {
+ return {
+ title: "Two-Factor Authentication Enabled",
+ description: "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.",
+ buttonText: "Close"
+ };
+ }
+ if (showVerificationStep) {
+ return {
+ title: "Verify Authentication Code",
+ description: "Enter the 6-digit code from your authenticator app",
+ buttonText: "Continue"
+ };
+ }
+ return {
+ title: "Enable Two-Factor Authentication",
+ description: "To finish enabling two-factor authentication, scan the QR code or enter the setup key in your authenticator app",
+ buttonText: "Continue"
+ };
+ }, [twoFactorEnabled, showVerificationStep]);
+ const handleModalNextStep = useCallback(() => {
+ if (requiresConfirmation) {
+ setShowVerificationStep(true);
+ return;
+ }
+ clearSetupData();
+ onClose();
+ }, [requiresConfirmation, clearSetupData, onClose]);
+ const resetModalState = useCallback(() => {
+ setShowVerificationStep(false);
+ if (twoFactorEnabled) {
+ clearSetupData();
+ }
+ }, [twoFactorEnabled, clearSetupData]);
+ useEffect(() => {
+ if (!isOpen) {
+ resetModalState();
+ return;
+ }
+ if (!qrCodeSvg) {
+ fetchSetupData();
+ }
+ }, [isOpen, qrCodeSvg, fetchSetupData, resetModalState]);
+ return /* @__PURE__ */ jsx(Dialog, { open: isOpen, onOpenChange: (open) => !open && onClose(), children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
+ /* @__PURE__ */ jsxs(DialogHeader, { className: "flex items-center justify-center", children: [
+ /* @__PURE__ */ jsx(GridScanIcon, {}),
+ /* @__PURE__ */ jsx(DialogTitle, { children: modalConfig.title }),
+ /* @__PURE__ */ jsx(DialogDescription, { className: "text-center", children: modalConfig.description })
+ ] }),
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col items-center space-y-5", children: showVerificationStep ? /* @__PURE__ */ jsx(
+ TwoFactorVerificationStep,
+ {
+ onClose,
+ onBack: () => setShowVerificationStep(false)
+ }
+ ) : /* @__PURE__ */ jsx(
+ TwoFactorSetupStep,
+ {
+ qrCodeSvg,
+ manualSetupKey,
+ buttonText: modalConfig.buttonText,
+ onNextStep: handleModalNextStep,
+ errors
+ }
+ ) })
+ ] }) });
+}
+const badgeVariants = cva(
+ "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
+ {
+ variants: {
+ variant: {
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
+ destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
+ }
+ },
+ defaultVariants: {
+ variant: "default"
+ }
+ }
+);
+function Badge({
+ className,
+ variant,
+ asChild = false,
+ ...props
+}) {
+ const Comp = asChild ? Slot : "span";
+ return /* @__PURE__ */ jsx(
+ Comp,
+ {
+ "data-slot": "badge",
+ className: cn(badgeVariants({ variant }), className),
+ ...props
+ }
+ );
+}
+const breadcrumbs = [
+ {
+ title: "Two-Factor Authentication",
+ href: show.url()
+ }
+];
+function TwoFactor({
+ requiresConfirmation = false,
+ twoFactorEnabled = false
+}) {
+ const {
+ qrCodeSvg,
+ hasSetupData,
+ manualSetupKey,
+ clearSetupData,
+ fetchSetupData,
+ recoveryCodesList,
+ fetchRecoveryCodes,
+ errors
+ } = useTwoFactorAuth();
+ const [showSetupModal, setShowSetupModal] = useState(false);
+ return /* @__PURE__ */ jsxs(AppLayout, { breadcrumbs, children: [
+ /* @__PURE__ */ jsx(Head, { title: "Two-Factor Authentication" }),
+ /* @__PURE__ */ jsx(SettingsLayout, { children: /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
+ /* @__PURE__ */ jsx(
+ HeadingSmall,
+ {
+ title: "Two-Factor Authentication",
+ description: "Manage your two-factor authentication settings"
+ }
+ ),
+ twoFactorEnabled ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start justify-start space-y-4", children: [
+ /* @__PURE__ */ jsx(Badge, { variant: "default", children: "Enabled" }),
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone." }),
+ /* @__PURE__ */ jsx(
+ TwoFactorRecoveryCodes,
+ {
+ recoveryCodesList,
+ fetchRecoveryCodes,
+ errors
+ }
+ ),
+ /* @__PURE__ */ jsx("div", { className: "relative inline", children: /* @__PURE__ */ jsx(Form, { ...disable.form(), children: ({ processing }) => /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "destructive",
+ type: "submit",
+ disabled: processing,
+ children: [
+ /* @__PURE__ */ jsx(ShieldBan, {}),
+ " Disable 2FA"
+ ]
+ }
+ ) }) })
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start justify-start space-y-4", children: [
+ /* @__PURE__ */ jsx(Badge, { variant: "destructive", children: "Disabled" }),
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: "When you enable two-factor authentication, you will be prompted for a secure pin during login. This pin can be retrieved from a TOTP-supported application on your phone." }),
+ /* @__PURE__ */ jsx("div", { children: hasSetupData ? /* @__PURE__ */ jsxs(
+ Button,
+ {
+ onClick: () => setShowSetupModal(true),
+ children: [
+ /* @__PURE__ */ jsx(ShieldCheck, {}),
+ "Continue Setup"
+ ]
+ }
+ ) : /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...enable.form(),
+ onSuccess: () => setShowSetupModal(true),
+ children: ({ processing }) => /* @__PURE__ */ jsxs(
+ Button,
+ {
+ type: "submit",
+ disabled: processing,
+ children: [
+ /* @__PURE__ */ jsx(ShieldCheck, {}),
+ "Enable 2FA"
+ ]
+ }
+ )
+ }
+ ) })
+ ] }),
+ /* @__PURE__ */ jsx(
+ TwoFactorSetupModal,
+ {
+ isOpen: showSetupModal,
+ onClose: () => setShowSetupModal(false),
+ requiresConfirmation,
+ twoFactorEnabled,
+ qrCodeSvg,
+ manualSetupKey,
+ clearSetupData,
+ fetchSetupData,
+ errors
+ }
+ )
+ ] }) })
+ ] });
+}
+export {
+ TwoFactor as default
+};
diff --git a/bootstrap/ssr/assets/two-factor-challenge-C3nZjMy6.js b/bootstrap/ssr/assets/two-factor-challenge-C3nZjMy6.js
new file mode 100644
index 0000000..124a0df
--- /dev/null
+++ b/bootstrap/ssr/assets/two-factor-challenge-C3nZjMy6.js
@@ -0,0 +1,125 @@
+import { jsxs, jsx, Fragment } from "react/jsx-runtime";
+import { I as InputError } from "./input-error-Su2MkR0P.js";
+import { B as Button } from "./index-CY6fYws-.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { I as InputOTP, O as OTP_MAX_LENGTH, a as InputOTPGroup, b as InputOTPSlot } from "./use-two-factor-auth-CT68eJCK.js";
+import { A as AuthLayout } from "./auth-layout-iyjWmxzQ.js";
+import { s as store } from "./index-BHwjGIZD.js";
+import { Head, Form } from "@inertiajs/react";
+import { REGEXP_ONLY_DIGITS } from "input-otp";
+import { useState, useMemo } from "react";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "lucide-react";
+import "./app-logo-icon-kpljnLMz.js";
+function TwoFactorChallenge() {
+ const [showRecoveryInput, setShowRecoveryInput] = useState(false);
+ const [code, setCode] = useState("");
+ const authConfigContent = useMemo(() => {
+ if (showRecoveryInput) {
+ return {
+ title: "Recovery Code",
+ description: "Please confirm access to your account by entering one of your emergency recovery codes.",
+ toggleText: "login using an authentication code"
+ };
+ }
+ return {
+ title: "Authentication Code",
+ description: "Enter the authentication code provided by your authenticator application.",
+ toggleText: "login using a recovery code"
+ };
+ }, [showRecoveryInput]);
+ const toggleRecoveryMode = (clearErrors) => {
+ setShowRecoveryInput(!showRecoveryInput);
+ clearErrors();
+ setCode("");
+ };
+ return /* @__PURE__ */ jsxs(
+ AuthLayout,
+ {
+ title: authConfigContent.title,
+ description: authConfigContent.description,
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Two-Factor Authentication" }),
+ /* @__PURE__ */ jsx("div", { className: "space-y-6", children: /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...store.form(),
+ className: "space-y-4",
+ resetOnError: true,
+ resetOnSuccess: !showRecoveryInput,
+ children: ({ errors, processing, clearErrors }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ showRecoveryInput ? /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ name: "recovery_code",
+ type: "text",
+ placeholder: "Enter recovery code",
+ autoFocus: showRecoveryInput,
+ required: true
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ InputError,
+ {
+ message: errors.recovery_code
+ }
+ )
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center space-y-3 text-center", children: [
+ /* @__PURE__ */ jsx("div", { className: "flex w-full items-center justify-center", children: /* @__PURE__ */ jsx(
+ InputOTP,
+ {
+ name: "code",
+ maxLength: OTP_MAX_LENGTH,
+ value: code,
+ onChange: (value) => setCode(value),
+ disabled: processing,
+ pattern: REGEXP_ONLY_DIGITS,
+ children: /* @__PURE__ */ jsx(InputOTPGroup, { children: Array.from(
+ { length: OTP_MAX_LENGTH },
+ (_, index) => /* @__PURE__ */ jsx(
+ InputOTPSlot,
+ {
+ index
+ },
+ index
+ )
+ ) })
+ }
+ ) }),
+ /* @__PURE__ */ jsx(InputError, { message: errors.code })
+ ] }),
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ type: "submit",
+ className: "w-full",
+ disabled: processing,
+ children: "Continue"
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "text-center text-sm text-muted-foreground", children: [
+ /* @__PURE__ */ jsx("span", { children: "or you can " }),
+ /* @__PURE__ */ jsx(
+ "button",
+ {
+ type: "button",
+ className: "cursor-pointer text-foreground underline decoration-neutral-300 underline-offset-4 transition-colors duration-300 ease-out hover:decoration-current! dark:decoration-neutral-500",
+ onClick: () => toggleRecoveryMode(clearErrors),
+ children: authConfigContent.toggleText
+ }
+ )
+ ] })
+ ] })
+ }
+ ) })
+ ]
+ }
+ );
+}
+export {
+ TwoFactorChallenge as default
+};
diff --git a/bootstrap/ssr/assets/use-two-factor-auth-CT68eJCK.js b/bootstrap/ssr/assets/use-two-factor-auth-CT68eJCK.js
new file mode 100644
index 0000000..5e641f2
--- /dev/null
+++ b/bootstrap/ssr/assets/use-two-factor-auth-CT68eJCK.js
@@ -0,0 +1,132 @@
+import { jsx, jsxs } from "react/jsx-runtime";
+import * as React from "react";
+import { useState, useMemo, useCallback } from "react";
+import { OTPInput, OTPInputContext } from "input-otp";
+import { Minus } from "lucide-react";
+import { c as cn } from "./index-CY6fYws-.js";
+import { q as qrCode, a as secretKey, r as recoveryCodes } from "./index-BHwjGIZD.js";
+const InputOTP = React.forwardRef(({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx(
+ OTPInput,
+ {
+ ref,
+ containerClassName: cn(
+ "flex items-center gap-2 has-[:disabled]:opacity-50",
+ containerClassName
+ ),
+ className: cn("disabled:cursor-not-allowed", className),
+ ...props
+ }
+));
+InputOTP.displayName = "InputOTP";
+const InputOTPGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, className: cn("flex items-center", className), ...props }));
+InputOTPGroup.displayName = "InputOTPGroup";
+const InputOTPSlot = React.forwardRef(({ index, className, ...props }, ref) => {
+ const inputOTPContext = React.useContext(OTPInputContext);
+ const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
+ return /* @__PURE__ */ jsxs(
+ "div",
+ {
+ ref,
+ className: cn(
+ "relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md",
+ isActive && "z-10 ring-1 ring-ring",
+ className
+ ),
+ ...props,
+ children: [
+ char,
+ hasFakeCaret && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-px animate-caret-blink bg-foreground duration-1000" }) })
+ ]
+ }
+ );
+});
+InputOTPSlot.displayName = "InputOTPSlot";
+const InputOTPSeparator = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx(Minus, {}) }));
+InputOTPSeparator.displayName = "InputOTPSeparator";
+const OTP_MAX_LENGTH = 6;
+const fetchJson = async (url) => {
+ const response = await fetch(url, {
+ headers: { Accept: "application/json" }
+ });
+ if (!response.ok) {
+ throw new Error(`Failed to fetch: ${response.status}`);
+ }
+ return response.json();
+};
+const useTwoFactorAuth = () => {
+ const [qrCodeSvg, setQrCodeSvg] = useState(null);
+ const [manualSetupKey, setManualSetupKey] = useState(null);
+ const [recoveryCodesList, setRecoveryCodesList] = useState([]);
+ const [errors, setErrors] = useState([]);
+ const hasSetupData = useMemo(
+ () => qrCodeSvg !== null && manualSetupKey !== null,
+ [qrCodeSvg, manualSetupKey]
+ );
+ const fetchQrCode = useCallback(async () => {
+ try {
+ const { svg } = await fetchJson(qrCode.url());
+ setQrCodeSvg(svg);
+ } catch {
+ setErrors((prev) => [...prev, "Failed to fetch QR code"]);
+ setQrCodeSvg(null);
+ }
+ }, []);
+ const fetchSetupKey = useCallback(async () => {
+ try {
+ const { secretKey: key } = await fetchJson(
+ secretKey.url()
+ );
+ setManualSetupKey(key);
+ } catch {
+ setErrors((prev) => [...prev, "Failed to fetch a setup key"]);
+ setManualSetupKey(null);
+ }
+ }, []);
+ const clearErrors = useCallback(() => {
+ setErrors([]);
+ }, []);
+ const clearSetupData = useCallback(() => {
+ setManualSetupKey(null);
+ setQrCodeSvg(null);
+ clearErrors();
+ }, [clearErrors]);
+ const fetchRecoveryCodes = useCallback(async () => {
+ try {
+ clearErrors();
+ const codes = await fetchJson(recoveryCodes.url());
+ setRecoveryCodesList(codes);
+ } catch {
+ setErrors((prev) => [...prev, "Failed to fetch recovery codes"]);
+ setRecoveryCodesList([]);
+ }
+ }, [clearErrors]);
+ const fetchSetupData = useCallback(async () => {
+ try {
+ clearErrors();
+ await Promise.all([fetchQrCode(), fetchSetupKey()]);
+ } catch {
+ setQrCodeSvg(null);
+ setManualSetupKey(null);
+ }
+ }, [clearErrors, fetchQrCode, fetchSetupKey]);
+ return {
+ qrCodeSvg,
+ manualSetupKey,
+ recoveryCodesList,
+ hasSetupData,
+ errors,
+ clearErrors,
+ clearSetupData,
+ fetchQrCode,
+ fetchSetupKey,
+ fetchSetupData,
+ fetchRecoveryCodes
+ };
+};
+export {
+ InputOTP as I,
+ OTP_MAX_LENGTH as O,
+ InputOTPGroup as a,
+ InputOTPSlot as b,
+ useTwoFactorAuth as u
+};
diff --git a/bootstrap/ssr/assets/verify-email-C6dGXcHB.js b/bootstrap/ssr/assets/verify-email-C6dGXcHB.js
new file mode 100644
index 0000000..810d630
--- /dev/null
+++ b/bootstrap/ssr/assets/verify-email-C6dGXcHB.js
@@ -0,0 +1,73 @@
+import { jsxs, jsx, Fragment } from "react/jsx-runtime";
+import { q as queryParams, B as Button, b as logout } from "./index-CY6fYws-.js";
+import { Head, Form } from "@inertiajs/react";
+import { LoaderCircle } from "lucide-react";
+import { T as TextLink } from "./text-link-ByYmiDlq.js";
+import { A as AuthLayout } from "./auth-layout-iyjWmxzQ.js";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "./app-logo-icon-kpljnLMz.js";
+const store = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+store.definition = {
+ methods: ["post"],
+ url: "/email/verification-notification"
+};
+store.url = (options) => {
+ return store.definition.url + queryParams(options);
+};
+store.post = (options) => ({
+ url: store.url(options),
+ method: "post"
+});
+const storeForm = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+storeForm.post = (options) => ({
+ action: store.url(options),
+ method: "post"
+});
+store.form = storeForm;
+const EmailVerificationNotificationController = { store };
+function VerifyEmail({ status }) {
+ return /* @__PURE__ */ jsxs(
+ AuthLayout,
+ {
+ title: "Verify email",
+ description: "Please verify your email address by clicking on the link we just emailed to you.",
+ children: [
+ /* @__PURE__ */ jsx(Head, { title: "Email verification" }),
+ status === "verification-link-sent" && /* @__PURE__ */ jsx("div", { className: "mb-4 text-center text-sm font-medium text-green-600", children: "A new verification link has been sent to the email address you provided during registration." }),
+ /* @__PURE__ */ jsx(
+ Form,
+ {
+ ...EmailVerificationNotificationController.store.form(),
+ className: "space-y-6 text-center",
+ children: ({ processing }) => /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs(Button, { disabled: processing, variant: "secondary", children: [
+ processing && /* @__PURE__ */ jsx(LoaderCircle, { className: "h-4 w-4 animate-spin" }),
+ "Resend verification email"
+ ] }),
+ /* @__PURE__ */ jsx(
+ TextLink,
+ {
+ href: logout(),
+ className: "mx-auto block text-sm",
+ children: "Log out"
+ }
+ )
+ ] })
+ }
+ )
+ ]
+ }
+ );
+}
+export {
+ VerifyEmail as default
+};
diff --git a/bootstrap/ssr/assets/welcome-C5bPUp-g.js b/bootstrap/ssr/assets/welcome-C5bPUp-g.js
new file mode 100644
index 0000000..5e73306
--- /dev/null
+++ b/bootstrap/ssr/assets/welcome-C5bPUp-g.js
@@ -0,0 +1,385 @@
+import { jsx, Fragment, jsxs } from "react/jsx-runtime";
+import { B as Button, e as about, f as artOfWeaving } from "./index-CY6fYws-.js";
+import { u as useTranslations, i as index, L as Layout } from "./layout-toNsB0Jp.js";
+import { Link, useForm, Head } from "@inertiajs/react";
+import { MoveRightIcon, Star, MoveRight } from "lucide-react";
+import { Navigation, Pagination } from "swiper/modules";
+import { Swiper, SwiperSlide } from "swiper/react";
+import { D as Dialog, a as DialogTrigger, b as DialogContent, g as DialogHeader, c as DialogTitle, d as DialogDescription } from "./dialog-C3kXNAKa.js";
+import { I as Input } from "./input-DfkIsvXR.js";
+import { L as Label } from "./label-DrpjkvJN.js";
+import { T as Textarea } from "./textarea-CcuSk8nN.js";
+import FilePondPluginImageExifOrientation from "filepond-plugin-image-exif-orientation";
+import FilePondPluginImagePreview from "filepond-plugin-image-preview";
+/* empty css */
+import { registerPlugin, FilePond } from "react-filepond";
+import { useState, useEffect } from "react";
+import { toast } from "sonner";
+import "@radix-ui/react-slot";
+import "class-variance-authority";
+import "clsx";
+import "tailwind-merge";
+import "@icons-pack/react-simple-icons";
+import "./select-CsRyyQUa.js";
+import "@radix-ui/react-select";
+import "./sheet-Bq2cyJmx.js";
+import "@radix-ui/react-dialog";
+import "@radix-ui/react-label";
+function SwiperCarousel({
+ item
+}) {
+ const { t } = useTranslations();
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
+ "div",
+ {
+ className: "relative mx-auto max-w-screen-2xl overflow-clip",
+ id: "hero_swiper",
+ children: [
+ /* @__PURE__ */ jsx(
+ Swiper,
+ {
+ slidesPerView: 1,
+ loop: true,
+ autoplay: {
+ delay: 1500
+ },
+ className: "w-full",
+ navigation: true,
+ modules: [Navigation],
+ children: item.map((e) => /* @__PURE__ */ jsx(SwiperSlide, { className: "relative !w-full overflow-clip", children: /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: e.image_url,
+ alt: e.alt,
+ className: "mx-auto aspect-[16/6.5] h-full !w-full max-w-screen-2xl object-cover object-center max-sm:aspect-video"
+ }
+ ) }))
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "absolute bottom-7 left-12 z-50 flex w-md flex-col gap-6 rounded-lg bg-[#FFF5F1]/80 px-12 py-6 font-serif", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx("h1", { className: "text-3xl font-medium max-sm:text-lg", children: t("pages.home.banner.title") }),
+ /* @__PURE__ */ jsx("p", { className: "text-xl leading-tight max-sm:text-sm", children: t("pages.home.banner.subTitle") })
+ ] }),
+ /* @__PURE__ */ jsx(Link, { href: index.product().url, children: /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "secondary",
+ size: "lg",
+ className: "cursor-pointer border border-primary bg-transparent text-lg ring-primary",
+ children: [
+ t("pages.home.banner.button"),
+ " ",
+ /* @__PURE__ */ jsx(MoveRightIcon, {})
+ ]
+ }
+ ) })
+ ] })
+ ]
+ }
+ ) });
+}
+function Testimonial({
+ testimonial
+}) {
+ const [file, setFile] = useState(null);
+ const [open, setOpen] = useState(false);
+ const { data, setData, post, processing, errors } = useForm({
+ name: "",
+ location: "",
+ description: "",
+ image: null
+ });
+ registerPlugin(
+ FilePondPluginImageExifOrientation,
+ FilePondPluginImagePreview
+ );
+ useEffect(() => {
+ if (file) {
+ setData("image", file.file);
+ }
+ }, [file, setData]);
+ const handleSubmit = (e) => {
+ e.preventDefault();
+ post("/testimonial", {
+ // forceFormData: true,
+ onSuccess: () => {
+ toast.success("Testimonial successfully uploaded!");
+ setOpen(false);
+ setFile(null);
+ setData({
+ name: "",
+ location: "",
+ description: "",
+ image: null
+ });
+ }
+ });
+ };
+ const { t } = useTranslations();
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("section", { className: "mx-auto flex max-w-screen-2xl flex-col items-center gap-12 px-16 py-12 max-sm:px-8", children: [
+ /* @__PURE__ */ jsx("h4", { className: "text-center font-serif text-4xl font-medium", children: t("pages.home.sections.testimonial.title") }),
+ /* @__PURE__ */ jsx(
+ "div",
+ {
+ className: "relative max-w-7xl overflow-clip max-sm:max-w-sm",
+ id: "testimonial",
+ children: /* @__PURE__ */ jsx(
+ Swiper,
+ {
+ spaceBetween: 16,
+ slidesPerView: 4,
+ breakpoints: {
+ 432: {
+ slidesPerView: 2,
+ spaceBetween: 8
+ },
+ 768: {
+ slidesPerView: 3,
+ spaceBetween: 8
+ },
+ 1024: {
+ slidesPerView: 4,
+ spaceBetween: 16
+ }
+ },
+ loop: true,
+ autoplay: {
+ delay: 1500
+ },
+ className: "w-full",
+ pagination: true,
+ modules: [Pagination],
+ children: testimonial.map((review) => /* @__PURE__ */ jsx(SwiperSlide, { className: "relative overflow-clip", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 rounded-lg border border-gray-300 px-6 py-6 text-center", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: review.image,
+ alt: review.name,
+ className: "mb-4 aspect-video rounded-md object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsx("p", { className: "text-lg font-bold", children: review.name }),
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-500", children: review.location })
+ ] }),
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-gray-800", children: review.description }),
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
+ /* @__PURE__ */ jsx(Star, { size: 16, color: "#EDC001" }),
+ /* @__PURE__ */ jsx(Star, { size: 16, color: "#EDC001" }),
+ /* @__PURE__ */ jsx(Star, { size: 16, color: "#EDC001" }),
+ /* @__PURE__ */ jsx(Star, { size: 16, color: "#EDC001" }),
+ /* @__PURE__ */ jsx(Star, { size: 16, color: "#EDC001" })
+ ] })
+ ] }) }))
+ }
+ )
+ }
+ ),
+ /* @__PURE__ */ jsxs(Dialog, { open, onOpenChange: setOpen, children: [
+ /* @__PURE__ */ jsx(DialogTrigger, { asChild: true, children: /* @__PURE__ */ jsx(Button, { className: "cursor-pointer", children: t("pages.home.sections.testimonial.button") }) }),
+ /* @__PURE__ */ jsx(DialogContent, { className: "!max-w-3xl", children: /* @__PURE__ */ jsxs(DialogHeader, { children: [
+ /* @__PURE__ */ jsx(DialogTitle, { children: "Give your testimonial" }),
+ /* @__PURE__ */ jsx(DialogDescription, {}),
+ /* @__PURE__ */ jsxs(
+ "form",
+ {
+ className: "grid gap-4",
+ onSubmit: handleSubmit,
+ method: "POST",
+ children: [
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "name", children: "Name" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "name",
+ name: "name",
+ placeholder: "Enter your name",
+ value: data.name,
+ onChange: (e) => setData("name", e.target.value)
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "company", children: "Location" }),
+ /* @__PURE__ */ jsx(
+ Input,
+ {
+ id: "company",
+ name: "location",
+ placeholder: "Enter you location (e.g. Private Company / Country Name)",
+ value: data.location,
+ onChange: (e) => setData("location", e.target.value)
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
+ /* @__PURE__ */ jsx(Label, { htmlFor: "review", children: "Description" }),
+ /* @__PURE__ */ jsx(
+ Textarea,
+ {
+ id: "review",
+ name: "review",
+ cols: 20,
+ placeholder: "Write your review...",
+ value: data.description,
+ onChange: (e) => setData(
+ "description",
+ e.target.value
+ )
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-3", children: [
+ /* @__PURE__ */ jsx(Label, { children: "Image" }),
+ /* @__PURE__ */ jsx(
+ FilePond,
+ {
+ files: file ? [file] : [],
+ onupdatefiles: (fileItems) => {
+ setFile(fileItems[0] || null);
+ },
+ allowMultiple: false,
+ maxFiles: 1,
+ name: "image",
+ instantUpload: false,
+ storeAsFile: true,
+ labelIdle: 'Drag & Drop your image or Browse'
+ }
+ ),
+ errors.image && /* @__PURE__ */ jsx("span", { className: "text-red-600", children: errors.image })
+ ] }),
+ /* @__PURE__ */ jsx(
+ Button,
+ {
+ type: "submit",
+ disabled: processing,
+ className: "cursor-pointer",
+ children: processing ? "Submitting..." : "Submit Now"
+ }
+ )
+ ]
+ }
+ )
+ ] }) })
+ ] })
+ ] }) });
+}
+const artofWeaving = "/build/assets/IMG_1301-B4CIh8ih.jpg";
+const kaleenCarpet = "/build/assets/IMG_3401-C-Qu3Vp9.jpg";
+const sooryaCarpet = "/build/assets/sci%20trad%2031-B2acD_xa.jpg";
+function Welcome({
+ data
+}) {
+ const { t } = useTranslations();
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
+ /* @__PURE__ */ jsxs(Head, { title: "Premium Hand Knotted Carpets in Nepal", children: [
+ /* @__PURE__ */ jsx("link", { rel: "preconnect", href: "https://fonts.bunny.net" }),
+ /* @__PURE__ */ jsx(
+ "link",
+ {
+ href: "https://fonts.bunny.net/css?family=instrument-sans:400,500,600",
+ rel: "stylesheet"
+ }
+ ),
+ /* @__PURE__ */ jsx(
+ "meta",
+ {
+ name: "description",
+ content: "Experience the finest hand-knotted carpets in Nepal with Soorya Carpet. Each piece is crafted by skilled artisans to deliver unmatched quality, luxury, and timeless design."
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsx(Layout, { children: /* @__PURE__ */ jsxs("div", { children: [
+ /* @__PURE__ */ jsx(SwiperCarousel, { item: data?.carousel }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto grid max-w-screen-2xl grid-cols-2 gap-20 px-16 py-12", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: sooryaCarpet,
+ alt: "Soorya Carpet",
+ className: "aspect-video rounded-lg object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx("h2", { className: "font-serif text-3xl font-medium", children: t("pages.home.sections.first.title") }),
+ /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: t("pages.home.sections.first.desc") })
+ ] }),
+ /* @__PURE__ */ jsx(Link, { href: about(), children: /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "outline",
+ className: "w-fit cursor-pointer border border-primary bg-transparent font-serif ring-primary",
+ children: [
+ t("pages.home.sections.first.button"),
+ " ",
+ /* @__PURE__ */ jsx(MoveRight, {})
+ ]
+ }
+ ) })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto grid max-w-screen-2xl grid-cols-2 gap-20 px-16 py-12", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx("h3", { className: "font-serif text-3xl font-medium", children: t("pages.home.sections.second.title") }),
+ /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: t("pages.home.sections.second.desc") })
+ ] }),
+ /* @__PURE__ */ jsx(Link, { href: about(), children: /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "outline",
+ className: "w-fit cursor-pointer border border-primary bg-transparent font-serif ring-primary",
+ children: [
+ t("pages.home.sections.second.button"),
+ /* @__PURE__ */ jsx(MoveRight, {})
+ ]
+ }
+ ) })
+ ] }),
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: kaleenCarpet,
+ alt: "Kaleen Carpet",
+ className: "aspect-video rounded-lg object-cover object-center"
+ }
+ )
+ ] }),
+ /* @__PURE__ */ jsxs("section", { className: "mx-auto grid max-w-screen-2xl grid-cols-2 gap-20 px-16 py-12", children: [
+ /* @__PURE__ */ jsx(
+ "img",
+ {
+ src: artofWeaving,
+ alt: "Art of Weaving",
+ className: "aspect-video rounded-lg object-cover object-center"
+ }
+ ),
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
+ /* @__PURE__ */ jsx("h2", { className: "font-serif text-3xl font-medium", children: t("pages.home.sections.third.title") }),
+ /* @__PURE__ */ jsx("p", { className: "text-gray-500", children: t("pages.home.sections.third.desc") })
+ ] }),
+ /* @__PURE__ */ jsx(Link, { href: artOfWeaving(), children: /* @__PURE__ */ jsxs(
+ Button,
+ {
+ variant: "outline",
+ className: "w-fit cursor-pointer border border-primary bg-transparent font-serif ring-primary",
+ children: [
+ t("pages.home.sections.third.button"),
+ " ",
+ /* @__PURE__ */ jsx(MoveRight, {})
+ ]
+ }
+ ) })
+ ] })
+ ] }),
+ /* @__PURE__ */ jsx(Testimonial, { testimonial: data?.testimonial })
+ ] }) })
+ ] });
+}
+export {
+ Welcome as default
+};
diff --git a/bootstrap/ssr/ssr-manifest.json b/bootstrap/ssr/ssr-manifest.json
new file mode 100644
index 0000000..6c69893
--- /dev/null
+++ b/bootstrap/ssr/ssr-manifest.json
@@ -0,0 +1,531 @@
+{
+ "node_modules/laravel-vite-plugin/inertia-helpers/index.js": [],
+ "node_modules/swiper/modules/navigation.css": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "node_modules/swiper/modules/pagination.css": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "node_modules/swiper/swiper.css": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "resources/assets/img/Bespoke/Ree 6.jpg": [
+ "/build/assets/faq-pz_F0yUl.js",
+ "/build/assets/bes 5-BwicfiFA.jpg",
+ "/build/assets/Ree 6-CXyPf4sr.jpg",
+ "/build/assets/Shrek-HrZ6bJMT.jpg",
+ "/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg"
+ ],
+ "resources/assets/img/Bespoke/Shrek.jpg": [
+ "/build/assets/faq-pz_F0yUl.js",
+ "/build/assets/bes 5-BwicfiFA.jpg",
+ "/build/assets/Ree 6-CXyPf4sr.jpg",
+ "/build/assets/Shrek-HrZ6bJMT.jpg",
+ "/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg"
+ ],
+ "resources/assets/img/Bespoke/Swarovsky embedded wall hang.jpg": [
+ "/build/assets/faq-pz_F0yUl.js",
+ "/build/assets/bes 5-BwicfiFA.jpg",
+ "/build/assets/Ree 6-CXyPf4sr.jpg",
+ "/build/assets/Shrek-HrZ6bJMT.jpg",
+ "/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg"
+ ],
+ "resources/assets/img/Bespoke/bes 5.jpg": [
+ "/build/assets/faq-pz_F0yUl.js",
+ "/build/assets/bes 5-BwicfiFA.jpg",
+ "/build/assets/Ree 6-CXyPf4sr.jpg",
+ "/build/assets/Shrek-HrZ6bJMT.jpg",
+ "/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg"
+ ],
+ "resources/assets/img/about/kaleen.jpg": [
+ "/build/assets/about-Bpe9pve7.js",
+ "/build/assets/kaleen-D3tdUBUw.jpg",
+ "/build/assets/sci trad 8-DiNu6GWn.jpg"
+ ],
+ "resources/assets/img/about/ns.gif": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/assets/img/about/oko.gif": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/assets/img/carpet/IMG_1301.jpg": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "resources/assets/img/carpet/IMG_3401.jpg": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "resources/assets/img/carpet/sci trad 31.jpg": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "resources/assets/img/logo/soorya.png": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/assets/img/material/silk balls.jpg": [
+ "/build/assets/art-C_czZZ6v.js",
+ "/build/assets/silk balls-DWY7AS8B.jpg",
+ "/build/assets/silk yarn-CqpV2kWc.jpg",
+ "/build/assets/wool balls-DG1FtOmh.jpg",
+ "/build/assets/wool yarn-BKbNSfod.jpg",
+ "/build/assets/IMG_2719-CBS9fSAo.jpg"
+ ],
+ "resources/assets/img/material/silk yarn.jpg": [
+ "/build/assets/art-C_czZZ6v.js",
+ "/build/assets/silk balls-DWY7AS8B.jpg",
+ "/build/assets/silk yarn-CqpV2kWc.jpg",
+ "/build/assets/wool balls-DG1FtOmh.jpg",
+ "/build/assets/wool yarn-BKbNSfod.jpg",
+ "/build/assets/IMG_2719-CBS9fSAo.jpg"
+ ],
+ "resources/assets/img/material/wool balls.jpg": [
+ "/build/assets/art-C_czZZ6v.js",
+ "/build/assets/silk balls-DWY7AS8B.jpg",
+ "/build/assets/silk yarn-CqpV2kWc.jpg",
+ "/build/assets/wool balls-DG1FtOmh.jpg",
+ "/build/assets/wool yarn-BKbNSfod.jpg",
+ "/build/assets/IMG_2719-CBS9fSAo.jpg"
+ ],
+ "resources/assets/img/material/wool yarn.jpg": [
+ "/build/assets/art-C_czZZ6v.js",
+ "/build/assets/silk balls-DWY7AS8B.jpg",
+ "/build/assets/silk yarn-CqpV2kWc.jpg",
+ "/build/assets/wool balls-DG1FtOmh.jpg",
+ "/build/assets/wool yarn-BKbNSfod.jpg",
+ "/build/assets/IMG_2719-CBS9fSAo.jpg"
+ ],
+ "resources/assets/img/production/IMG_2719.jpg": [
+ "/build/assets/art-C_czZZ6v.js",
+ "/build/assets/silk balls-DWY7AS8B.jpg",
+ "/build/assets/silk yarn-CqpV2kWc.jpg",
+ "/build/assets/wool balls-DG1FtOmh.jpg",
+ "/build/assets/wool yarn-BKbNSfod.jpg",
+ "/build/assets/IMG_2719-CBS9fSAo.jpg"
+ ],
+ "resources/assets/img/products/color swatches.jpg": [
+ "/build/assets/bespoke-Bov4UVda.js",
+ "/build/assets/color swatches-Dl8_1uRD.jpg"
+ ],
+ "resources/assets/img/products/sci trad 8.jpg": [
+ "/build/assets/about-Bpe9pve7.js",
+ "/build/assets/kaleen-D3tdUBUw.jpg",
+ "/build/assets/sci trad 8-DiNu6GWn.jpg"
+ ],
+ "resources/js/actions/App/Http/Controllers/Auth/AuthenticatedSessionController.ts": [
+ "/build/assets/login-Bx7GyWNN.js"
+ ],
+ "resources/js/actions/App/Http/Controllers/Auth/EmailVerificationNotificationController.ts": [
+ "/build/assets/verify-email-C6dGXcHB.js"
+ ],
+ "resources/js/actions/App/Http/Controllers/Auth/NewPasswordController.ts": [
+ "/build/assets/reset-password-yPQQhFaB.js"
+ ],
+ "resources/js/actions/App/Http/Controllers/Auth/PasswordResetLinkController.ts": [
+ "/build/assets/forgot-password-BNiMrYQb.js"
+ ],
+ "resources/js/actions/App/Http/Controllers/Auth/RegisteredUserController.ts": [
+ "/build/assets/register-5D2-Zto1.js"
+ ],
+ "resources/js/actions/App/Http/Controllers/Settings/PasswordController.ts": [
+ "/build/assets/password-5nAC6NdB.js"
+ ],
+ "resources/js/actions/App/Http/Controllers/Settings/ProfileController.ts": [
+ "/build/assets/profile-0AslOX4t.js"
+ ],
+ "resources/js/components/alert-error.tsx": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/components/app-content.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/app-logo-icon.tsx": [
+ "/build/assets/app-logo-icon-kpljnLMz.js"
+ ],
+ "resources/js/components/app-logo.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/app-shell.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/app-sidebar-header.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/app-sidebar.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/appearance-tabs.tsx": [
+ "/build/assets/appearance-Bfpl1eM5.js"
+ ],
+ "resources/js/components/breadcrumbs.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/delete-user.tsx": [
+ "/build/assets/profile-0AslOX4t.js"
+ ],
+ "resources/js/components/heading-small.tsx": [
+ "/build/assets/layout-BQI5MpcL.js"
+ ],
+ "resources/js/components/heading.tsx": [
+ "/build/assets/layout-BQI5MpcL.js"
+ ],
+ "resources/js/components/input-error.tsx": [
+ "/build/assets/input-error-Su2MkR0P.js"
+ ],
+ "resources/js/components/layout/Footer.tsx": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/js/components/layout/Navbar.tsx": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/js/components/nav-main.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/nav-user.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/pages/Home/Swiper.tsx": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "resources/js/components/pages/Home/Testimonial.tsx": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "resources/js/components/text-link.tsx": [
+ "/build/assets/text-link-ByYmiDlq.js"
+ ],
+ "resources/js/components/two-factor-recovery-codes.tsx": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/components/two-factor-setup-modal.tsx": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/components/ui/accordion.tsx": [
+ "/build/assets/faq-pz_F0yUl.js",
+ "/build/assets/bes 5-BwicfiFA.jpg",
+ "/build/assets/Ree 6-CXyPf4sr.jpg",
+ "/build/assets/Shrek-HrZ6bJMT.jpg",
+ "/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg"
+ ],
+ "resources/js/components/ui/alert.tsx": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/components/ui/avatar.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/ui/badge.tsx": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/components/ui/breadcrumb.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/ui/button.tsx": [
+ "/build/assets/index-CY6fYws-.js"
+ ],
+ "resources/js/components/ui/card.tsx": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/components/ui/checkbox.tsx": [
+ "/build/assets/login-Bx7GyWNN.js"
+ ],
+ "resources/js/components/ui/dialog.tsx": [
+ "/build/assets/dialog-C3kXNAKa.js"
+ ],
+ "resources/js/components/ui/dropdown-menu.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/ui/input-otp.tsx": [
+ "/build/assets/use-two-factor-auth-CT68eJCK.js"
+ ],
+ "resources/js/components/ui/input.tsx": [
+ "/build/assets/input-DfkIsvXR.js"
+ ],
+ "resources/js/components/ui/label.tsx": [
+ "/build/assets/label-DrpjkvJN.js"
+ ],
+ "resources/js/components/ui/placeholder-pattern.tsx": [
+ "/build/assets/dashboard-CbiUEmKd.js"
+ ],
+ "resources/js/components/ui/select.tsx": [
+ "/build/assets/select-CsRyyQUa.js"
+ ],
+ "resources/js/components/ui/separator.tsx": [
+ "/build/assets/layout-BQI5MpcL.js"
+ ],
+ "resources/js/components/ui/sheet.tsx": [
+ "/build/assets/sheet-Bq2cyJmx.js"
+ ],
+ "resources/js/components/ui/sidebar.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/ui/table.tsx": [
+ "/build/assets/table-DB-AS5w6.js"
+ ],
+ "resources/js/components/ui/tabs.tsx": [
+ "/build/assets/tabs-C0o9riYx.js"
+ ],
+ "resources/js/components/ui/textarea.tsx": [
+ "/build/assets/textarea-CcuSk8nN.js"
+ ],
+ "resources/js/components/ui/tooltip.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/user-info.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/components/user-menu-content.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/hooks/use-appearance.tsx": [
+ "/build/assets/appearance-Bfpl1eM5.js"
+ ],
+ "resources/js/hooks/use-clipboard.ts": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/hooks/use-initials.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/hooks/use-mobile-navigation.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/hooks/use-mobile.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/hooks/use-two-factor-auth.ts": [
+ "/build/assets/use-two-factor-auth-CT68eJCK.js"
+ ],
+ "resources/js/layouts/app-layout.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/layouts/app/app-sidebar-layout.tsx": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/layouts/auth-layout.tsx": [
+ "/build/assets/auth-layout-iyjWmxzQ.js"
+ ],
+ "resources/js/layouts/auth/auth-simple-layout.tsx": [
+ "/build/assets/auth-layout-iyjWmxzQ.js"
+ ],
+ "resources/js/layouts/client/layout.tsx": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/js/layouts/settings/layout.tsx": [
+ "/build/assets/layout-BQI5MpcL.js"
+ ],
+ "resources/js/lib/utils.ts": [
+ "/build/assets/index-CY6fYws-.js"
+ ],
+ "resources/js/pages/about.tsx": [
+ "/build/assets/about-Bpe9pve7.js",
+ "/build/assets/kaleen-D3tdUBUw.jpg",
+ "/build/assets/sci trad 8-DiNu6GWn.jpg"
+ ],
+ "resources/js/pages/art.tsx": [
+ "/build/assets/art-C_czZZ6v.js",
+ "/build/assets/silk balls-DWY7AS8B.jpg",
+ "/build/assets/silk yarn-CqpV2kWc.jpg",
+ "/build/assets/wool balls-DG1FtOmh.jpg",
+ "/build/assets/wool yarn-BKbNSfod.jpg",
+ "/build/assets/IMG_2719-CBS9fSAo.jpg"
+ ],
+ "resources/js/pages/auth/confirm-password.tsx": [
+ "/build/assets/confirm-password-yJ2scxPz.js"
+ ],
+ "resources/js/pages/auth/forgot-password.tsx": [
+ "/build/assets/forgot-password-BNiMrYQb.js"
+ ],
+ "resources/js/pages/auth/login.tsx": [
+ "/build/assets/login-Bx7GyWNN.js"
+ ],
+ "resources/js/pages/auth/register.tsx": [
+ "/build/assets/register-5D2-Zto1.js"
+ ],
+ "resources/js/pages/auth/reset-password.tsx": [
+ "/build/assets/reset-password-yPQQhFaB.js"
+ ],
+ "resources/js/pages/auth/two-factor-challenge.tsx": [
+ "/build/assets/two-factor-challenge-C3nZjMy6.js"
+ ],
+ "resources/js/pages/auth/verify-email.tsx": [
+ "/build/assets/verify-email-C6dGXcHB.js"
+ ],
+ "resources/js/pages/bespoke.tsx": [
+ "/build/assets/bespoke-Bov4UVda.js",
+ "/build/assets/color swatches-Dl8_1uRD.jpg"
+ ],
+ "resources/js/pages/contact.tsx": [
+ "/build/assets/contact-DiSMu-mk.js"
+ ],
+ "resources/js/pages/dashboard.tsx": [
+ "/build/assets/dashboard-CbiUEmKd.js"
+ ],
+ "resources/js/pages/dashboard/carousel/add.tsx": [
+ "/build/assets/add-S6fabe2O.js",
+ "/build/assets/filepond-BjJCD9wJ.css"
+ ],
+ "resources/js/pages/dashboard/carousel/carousel.tsx": [
+ "/build/assets/carousel-BH5ls6c-.js"
+ ],
+ "resources/js/pages/dashboard/faq/add.tsx": [
+ "/build/assets/add-BhcrNqMR.js",
+ "/build/assets/filepond-BjJCD9wJ.css"
+ ],
+ "resources/js/pages/dashboard/faq/index.tsx": [
+ "/build/assets/index-OpaYcuxi.js"
+ ],
+ "resources/js/pages/dashboard/products/add.tsx": [
+ "/build/assets/add-CPccOhjJ.js",
+ "/build/assets/filepond-BjJCD9wJ.css"
+ ],
+ "resources/js/pages/dashboard/products/edit.tsx": [
+ "/build/assets/edit-l0sNRNKZ.js"
+ ],
+ "resources/js/pages/dashboard/products/index.tsx": [
+ "/build/assets/index-C7ejuoa3.js"
+ ],
+ "resources/js/pages/dashboard/testimonial.tsx": [
+ "/build/assets/testimonial-B1EWgUPO.js"
+ ],
+ "resources/js/pages/faq.tsx": [
+ "/build/assets/faq-pz_F0yUl.js",
+ "/build/assets/bes 5-BwicfiFA.jpg",
+ "/build/assets/Ree 6-CXyPf4sr.jpg",
+ "/build/assets/Shrek-HrZ6bJMT.jpg",
+ "/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg"
+ ],
+ "resources/js/pages/product.tsx": [
+ "/build/assets/product-DH6XS18R.js"
+ ],
+ "resources/js/pages/settings/appearance.tsx": [
+ "/build/assets/appearance-Bfpl1eM5.js"
+ ],
+ "resources/js/pages/settings/password.tsx": [
+ "/build/assets/password-5nAC6NdB.js"
+ ],
+ "resources/js/pages/settings/profile.tsx": [
+ "/build/assets/profile-0AslOX4t.js"
+ ],
+ "resources/js/pages/settings/two-factor.tsx": [
+ "/build/assets/two-factor-DaA3_KAg.js"
+ ],
+ "resources/js/pages/welcome.tsx": [
+ "/build/assets/welcome-C5bPUp-g.js",
+ "/build/assets/welcome-uGqyt-El.css",
+ "/build/assets/filepond-BjJCD9wJ.css",
+ "/build/assets/IMG_1301-B4CIh8ih.jpg",
+ "/build/assets/IMG_3401-C-Qu3Vp9.jpg",
+ "/build/assets/sci trad 31-B2acD_xa.jpg"
+ ],
+ "resources/js/routes/appearance/index.ts": [
+ "/build/assets/layout-BQI5MpcL.js"
+ ],
+ "resources/js/routes/dashboard/carousel/index.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/routes/dashboard/faq/index.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/routes/dashboard/index.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/routes/dashboard/product/add/index.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/routes/dashboard/product/index.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/routes/index.ts": [
+ "/build/assets/index-CY6fYws-.js"
+ ],
+ "resources/js/routes/index/index.ts": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/js/routes/password/confirm/index.ts": [
+ "/build/assets/index-BRhO3_4E.js"
+ ],
+ "resources/js/routes/password/index.ts": [
+ "/build/assets/index-BuzAnds1.js"
+ ],
+ "resources/js/routes/profile/index.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/routes/testimonial/index.ts": [
+ "/build/assets/app-layout-BFyUFda2.js"
+ ],
+ "resources/js/routes/two-factor/index.ts": [
+ "/build/assets/index-BHwjGIZD.js"
+ ],
+ "resources/js/routes/two-factor/login/index.ts": [
+ "/build/assets/index-BHwjGIZD.js"
+ ],
+ "resources/js/routes/verification/index.ts": [
+ "/build/assets/profile-0AslOX4t.js"
+ ],
+ "resources/js/ssr.tsx": [],
+ "resources/js/utils/i18n.ts": [
+ "/build/assets/layout-toNsB0Jp.js",
+ "/build/assets/ns-CsWIdWF7.gif",
+ "/build/assets/oko-BkZT_kDH.gif",
+ "/build/assets/soorya-Ci0dhsli.png"
+ ],
+ "resources/js/wayfinder/index.ts": [
+ "/build/assets/index-CY6fYws-.js"
+ ]
+}
\ No newline at end of file
diff --git a/bootstrap/ssr/ssr.js b/bootstrap/ssr/ssr.js
new file mode 100644
index 0000000..f90576b
--- /dev/null
+++ b/bootstrap/ssr/ssr.js
@@ -0,0 +1,29 @@
+import { jsx } from "react/jsx-runtime";
+import { createInertiaApp } from "@inertiajs/react";
+import createServer from "@inertiajs/react/server";
+import ReactDOMServer from "react-dom/server";
+async function resolvePageComponent(path, pages) {
+ for (const p of Array.isArray(path) ? path : [path]) {
+ const page = pages[p];
+ if (typeof page === "undefined") {
+ continue;
+ }
+ return typeof page === "function" ? page() : page;
+ }
+ throw new Error(`Page not found: ${path}`);
+}
+const appName = "Soorya Carpet";
+createServer(
+ (page) => createInertiaApp({
+ page,
+ render: ReactDOMServer.renderToString,
+ title: (title) => title ? `${title} - ${appName}` : appName,
+ resolve: (name) => resolvePageComponent(
+ `./pages/${name}.tsx`,
+ /* @__PURE__ */ Object.assign({ "./pages/about.tsx": () => import("./assets/about-Bpe9pve7.js"), "./pages/art.tsx": () => import("./assets/art-C_czZZ6v.js"), "./pages/auth/confirm-password.tsx": () => import("./assets/confirm-password-yJ2scxPz.js"), "./pages/auth/forgot-password.tsx": () => import("./assets/forgot-password-BNiMrYQb.js"), "./pages/auth/login.tsx": () => import("./assets/login-Bx7GyWNN.js"), "./pages/auth/register.tsx": () => import("./assets/register-5D2-Zto1.js"), "./pages/auth/reset-password.tsx": () => import("./assets/reset-password-yPQQhFaB.js"), "./pages/auth/two-factor-challenge.tsx": () => import("./assets/two-factor-challenge-C3nZjMy6.js"), "./pages/auth/verify-email.tsx": () => import("./assets/verify-email-C6dGXcHB.js"), "./pages/bespoke.tsx": () => import("./assets/bespoke-Bov4UVda.js"), "./pages/contact.tsx": () => import("./assets/contact-DiSMu-mk.js"), "./pages/dashboard.tsx": () => import("./assets/dashboard-CbiUEmKd.js"), "./pages/dashboard/carousel/add.tsx": () => import("./assets/add-S6fabe2O.js"), "./pages/dashboard/carousel/carousel.tsx": () => import("./assets/carousel-BH5ls6c-.js"), "./pages/dashboard/faq/add.tsx": () => import("./assets/add-BhcrNqMR.js"), "./pages/dashboard/faq/index.tsx": () => import("./assets/index-OpaYcuxi.js"), "./pages/dashboard/products/add.tsx": () => import("./assets/add-CPccOhjJ.js"), "./pages/dashboard/products/edit.tsx": () => import("./assets/edit-l0sNRNKZ.js"), "./pages/dashboard/products/index.tsx": () => import("./assets/index-C7ejuoa3.js"), "./pages/dashboard/testimonial.tsx": () => import("./assets/testimonial-B1EWgUPO.js"), "./pages/faq.tsx": () => import("./assets/faq-pz_F0yUl.js"), "./pages/product.tsx": () => import("./assets/product-DH6XS18R.js"), "./pages/settings/appearance.tsx": () => import("./assets/appearance-Bfpl1eM5.js"), "./pages/settings/password.tsx": () => import("./assets/password-5nAC6NdB.js"), "./pages/settings/profile.tsx": () => import("./assets/profile-0AslOX4t.js"), "./pages/settings/two-factor.tsx": () => import("./assets/two-factor-DaA3_KAg.js"), "./pages/welcome.tsx": () => import("./assets/welcome-C5bPUp-g.js") })
+ ),
+ setup: ({ App, props }) => {
+ return /* @__PURE__ */ jsx(App, { ...props });
+ }
+ })
+);
diff --git a/public/build/assets/DMSans-D_B5dL4R.ttf b/public/build/assets/DMSans-D_B5dL4R.ttf
new file mode 100644
index 0000000..94c9e1c
Binary files /dev/null and b/public/build/assets/DMSans-D_B5dL4R.ttf differ
diff --git a/public/build/assets/IMG_1301-B4CIh8ih.jpg b/public/build/assets/IMG_1301-B4CIh8ih.jpg
new file mode 100644
index 0000000..c2480a1
Binary files /dev/null and b/public/build/assets/IMG_1301-B4CIh8ih.jpg differ
diff --git a/public/build/assets/IMG_2719-CBS9fSAo.jpg b/public/build/assets/IMG_2719-CBS9fSAo.jpg
new file mode 100644
index 0000000..de72db4
Binary files /dev/null and b/public/build/assets/IMG_2719-CBS9fSAo.jpg differ
diff --git a/public/build/assets/IMG_3401-C-Qu3Vp9.jpg b/public/build/assets/IMG_3401-C-Qu3Vp9.jpg
new file mode 100644
index 0000000..b644efe
Binary files /dev/null and b/public/build/assets/IMG_3401-C-Qu3Vp9.jpg differ
diff --git a/public/build/assets/Recoleta-Black-CC8dtL2F.ttf b/public/build/assets/Recoleta-Black-CC8dtL2F.ttf
new file mode 100644
index 0000000..e0e693f
Binary files /dev/null and b/public/build/assets/Recoleta-Black-CC8dtL2F.ttf differ
diff --git a/public/build/assets/Recoleta-Bold-D_NYAREG.ttf b/public/build/assets/Recoleta-Bold-D_NYAREG.ttf
new file mode 100644
index 0000000..6a28fa6
Binary files /dev/null and b/public/build/assets/Recoleta-Bold-D_NYAREG.ttf differ
diff --git a/public/build/assets/Recoleta-Light-Doe5RDW8.ttf b/public/build/assets/Recoleta-Light-Doe5RDW8.ttf
new file mode 100644
index 0000000..c5b4442
Binary files /dev/null and b/public/build/assets/Recoleta-Light-Doe5RDW8.ttf differ
diff --git a/public/build/assets/Recoleta-Medium-CT6QtXv5.ttf b/public/build/assets/Recoleta-Medium-CT6QtXv5.ttf
new file mode 100644
index 0000000..96d51a1
Binary files /dev/null and b/public/build/assets/Recoleta-Medium-CT6QtXv5.ttf differ
diff --git a/public/build/assets/Recoleta-Regular-DgQGZewA.ttf b/public/build/assets/Recoleta-Regular-DgQGZewA.ttf
new file mode 100644
index 0000000..7c87a1b
Binary files /dev/null and b/public/build/assets/Recoleta-Regular-DgQGZewA.ttf differ
diff --git a/public/build/assets/Recoleta-SemiBold-BDk2dOZG.ttf b/public/build/assets/Recoleta-SemiBold-BDk2dOZG.ttf
new file mode 100644
index 0000000..94eca27
Binary files /dev/null and b/public/build/assets/Recoleta-SemiBold-BDk2dOZG.ttf differ
diff --git a/public/build/assets/Recoleta-Thin-B3dQvhHI.ttf b/public/build/assets/Recoleta-Thin-B3dQvhHI.ttf
new file mode 100644
index 0000000..a1d2a65
Binary files /dev/null and b/public/build/assets/Recoleta-Thin-B3dQvhHI.ttf differ
diff --git a/public/build/assets/RecoletaAlt-Black-Cv-7kAGY.ttf b/public/build/assets/RecoletaAlt-Black-Cv-7kAGY.ttf
new file mode 100644
index 0000000..8fd5621
Binary files /dev/null and b/public/build/assets/RecoletaAlt-Black-Cv-7kAGY.ttf differ
diff --git a/public/build/assets/RecoletaAlt-Bold-D1u0xFAV.ttf b/public/build/assets/RecoletaAlt-Bold-D1u0xFAV.ttf
new file mode 100644
index 0000000..628f225
Binary files /dev/null and b/public/build/assets/RecoletaAlt-Bold-D1u0xFAV.ttf differ
diff --git a/public/build/assets/RecoletaAlt-Light-Cx4WjdB5.ttf b/public/build/assets/RecoletaAlt-Light-Cx4WjdB5.ttf
new file mode 100644
index 0000000..baf1b79
Binary files /dev/null and b/public/build/assets/RecoletaAlt-Light-Cx4WjdB5.ttf differ
diff --git a/public/build/assets/RecoletaAlt-Medium-DMeQnRtS.ttf b/public/build/assets/RecoletaAlt-Medium-DMeQnRtS.ttf
new file mode 100644
index 0000000..544aa32
Binary files /dev/null and b/public/build/assets/RecoletaAlt-Medium-DMeQnRtS.ttf differ
diff --git a/public/build/assets/RecoletaAlt-Regular-YPJh9klv.ttf b/public/build/assets/RecoletaAlt-Regular-YPJh9klv.ttf
new file mode 100644
index 0000000..968703b
Binary files /dev/null and b/public/build/assets/RecoletaAlt-Regular-YPJh9klv.ttf differ
diff --git a/public/build/assets/RecoletaAlt-SemiBold-D4oH70iG.ttf b/public/build/assets/RecoletaAlt-SemiBold-D4oH70iG.ttf
new file mode 100644
index 0000000..0c70e49
Binary files /dev/null and b/public/build/assets/RecoletaAlt-SemiBold-D4oH70iG.ttf differ
diff --git a/public/build/assets/RecoletaAlt-Thin-BIkfHvSF.ttf b/public/build/assets/RecoletaAlt-Thin-BIkfHvSF.ttf
new file mode 100644
index 0000000..98d39e3
Binary files /dev/null and b/public/build/assets/RecoletaAlt-Thin-BIkfHvSF.ttf differ
diff --git a/public/build/assets/Ree 6-CXyPf4sr.jpg b/public/build/assets/Ree 6-CXyPf4sr.jpg
new file mode 100644
index 0000000..2d781a7
Binary files /dev/null and b/public/build/assets/Ree 6-CXyPf4sr.jpg differ
diff --git a/public/build/assets/Shrek-HrZ6bJMT.jpg b/public/build/assets/Shrek-HrZ6bJMT.jpg
new file mode 100644
index 0000000..24c5348
Binary files /dev/null and b/public/build/assets/Shrek-HrZ6bJMT.jpg differ
diff --git a/public/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg b/public/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg
new file mode 100644
index 0000000..d8db99c
Binary files /dev/null and b/public/build/assets/Swarovsky embedded wall hang-CEzO-m5f.jpg differ
diff --git a/public/build/assets/about-D-lLDmVN.js b/public/build/assets/about-D-lLDmVN.js
new file mode 100644
index 0000000..1b70f63
--- /dev/null
+++ b/public/build/assets/about-D-lLDmVN.js
@@ -0,0 +1,16 @@
+import{j as e,H as a}from"./app-C6SiEMGn.js";import{u as c,L as i,n as l,o as r}from"./layout-DermKrDq.js";import{a as t}from"./createLucideIcon-CPpF-2ww.js";import"./app-6D7Y1jSv.js";import"./input-DYhKGVpQ.js";import"./label-BB9HLxkE.js";import"./index-B7t1D_co.js";import"./select-BuGuwdXt.js";import"./index-FUlYkgbj.js";import"./sheet-BvPq5L9Z.js";import"./index-ChxR6kRZ.js";import"./check-DEcJAs2N.js";/**
+ * @license lucide-react v0.475.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const o=[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66",key:"4oyue0"}],["path",{d:"m18 15-2-2",key:"60u0ii"}],["path",{d:"m15 18-2-2",key:"6p76be"}]],n=t("HeartHandshake",o);/**
+ * @license lucide-react v0.475.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const x=[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]],d=t("Lightbulb",x);/**
+ * @license lucide-react v0.475.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const m=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]],p=t("Target",m),h="/build/assets/kaleen-D3tdUBUw.jpg",g="/build/assets/sci%20trad%208-DiNu6GWn.jpg";function H(){const{t:s}=c();return e.jsxs(e.Fragment,{children:[e.jsx(a,{title:"About Us",children:e.jsx("meta",{name:"description",content:"Experience the finest hand-knotted carpets in Nepal with Soorya Carpet. Each piece is crafted by skilled artisans to deliver unmatched quality, luxury, and timeless design."})}),e.jsxs(i,{children:[e.jsxs("section",{className:"mx-auto flex max-w-screen-2xl flex-col gap-32 px-12 py-12 max-sm:px-8",children:[e.jsxs("div",{className:"grid h-1/2 grid-cols-2 gap-20 overflow-clip max-md:grid-cols-1 max-md:gap-12",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("h1",{className:"font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl",children:s("pages.about.sections.first.title")}),e.jsxs("div",{className:"flex flex-col gap-4 text-sm max-sm:text-base",children:[e.jsx("p",{children:s("pages.about.sections.first.desc.first")}),e.jsx("p",{children:s("pages.about.sections.first.desc.second")}),e.jsx("p",{children:s("pages.about.sections.first.desc.third")})]})]}),e.jsx("img",{src:g,alt:"Our Story",className:"aspect-[5/3] h-full w-full rounded-xl object-cover object-center"})]})," ",e.jsxs("div",{className:"grid h-1/2 grid-cols-2 gap-20 overflow-clip max-md:grid-cols-1 max-md:gap-12",children:[e.jsx("img",{src:h,alt:"Kaleen Story",className:"aspect-[5/3] h-full w-full rounded-xl object-cover object-center"}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("h2",{className:"font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl",children:s("pages.about.sections.second.title")}),e.jsxs("div",{className:"flex flex-col gap-4 text-sm max-sm:text-base",children:[e.jsx("p",{children:s("pages.about.sections.second.desc.first")}),e.jsx("p",{children:s("pages.about.sections.second.desc.second")}),e.jsx("p",{children:s("pages.about.sections.second.desc.third")})]})]})]})]}),e.jsxs("section",{className:"mx-auto flex max-w-screen-2xl flex-col gap-8 px-12 py-12 max-md:px-6",children:[e.jsx("h3",{className:"text-center font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl",children:s("pages.about.sections.third.title")}),e.jsxs("div",{className:"flex gap-8 max-md:flex-col",children:[e.jsxs("div",{className:"flex flex-col items-center gap-4 rounded-xl bg-accent px-8 py-8 text-center max-sm:px-4",children:[e.jsx(d,{size:48,color:"#5A1A1A"}),e.jsx("p",{className:"font-serif text-3xl font-semibold",children:s("pages.about.sections.third.cards.first.title")}),e.jsx("p",{className:"text-justify text-lg tracking-tight",children:s("pages.about.sections.third.cards.first.desc")})]})," ",e.jsxs("div",{className:"flex flex-col items-center gap-4 rounded-xl bg-accent px-8 py-8 text-center",children:[e.jsx(p,{size:48,color:"#5A1A1A"}),e.jsx("p",{className:"font-serif text-3xl font-semibold",children:s("pages.about.sections.third.cards.second.title")}),e.jsx("p",{className:"text-justify text-lg tracking-tight",children:s("pages.about.sections.third.cards.second.desc")})]})," ",e.jsxs("div",{className:"flex flex-col items-center gap-4 rounded-xl bg-accent px-8 py-8 text-center",children:[e.jsx(n,{size:48,color:"#5A1A1A"}),e.jsx("p",{className:"font-serif text-3xl font-semibold",children:s("pages.about.sections.third.cards.third.title")}),e.jsx("p",{className:"text-justify text-lg tracking-tight",children:s("pages.about.sections.third.cards.third.desc")})]})]})]}),e.jsxs("section",{className:"mx-auto flex max-w-screen-2xl flex-col gap-8 px-12 py-12",children:[e.jsx("h4",{className:"text-center font-serif text-5xl leading-tight font-medium tracking-tight max-sm:text-4xl",children:s("pages.about.sections.fourth.title")}),e.jsxs("div",{className:"flex items-center justify-center gap-8",children:[e.jsx("img",{src:l,alt:"NS Standard"}),e.jsx("img",{src:r,alt:"OKO Standard"})]})]})]})]})}export{H as default};
diff --git a/public/build/assets/add-CtZCjhMZ.js b/public/build/assets/add-CtZCjhMZ.js
new file mode 100644
index 0000000..f15bf59
--- /dev/null
+++ b/public/build/assets/add-CtZCjhMZ.js
@@ -0,0 +1 @@
+import{u as m,j as s,H as c}from"./app-C6SiEMGn.js";import{B as p}from"./createLucideIcon-CPpF-2ww.js";import{I as i}from"./input-DYhKGVpQ.js";import{L as l}from"./label-BB9HLxkE.js";import{A as x,d as f}from"./app-layout-B4kweoSW.js";import{t as h,r as g,p as j,a as b}from"./index-BQ4sA8lt.js";import"./app-6D7Y1jSv.js";import"./index-B7t1D_co.js";import"./sheet-BvPq5L9Z.js";import"./index-FUlYkgbj.js";import"./index-CxjaVpyF.js";import"./app-logo-icon-B_KiS1IV.js";import"./package-DTdg9l_D.js";g(j,b);function C(){const{data:a,setData:r,post:n,processing:o,errors:t,wasSuccessful:d}=m({question:"",answer:""}),u=e=>{e.preventDefault(),n(f.faq.addFaq().url,{forceFormData:!0}),d&&h.success("Product added successfully")};return s.jsxs(x,{children:[s.jsx(c,{title:"Add FAQ Questions"}),s.jsxs("section",{className:"flex flex-col gap-8 px-8 py-8",children:[s.jsx("h1",{className:"text-lg font-semibold tracking-tight",children:"Add FAQ Questions"}),s.jsxs("form",{onSubmit:u,method:"POST",encType:"multipart/formdata",className:"flex flex-col items-start gap-4",children:[s.jsxs("div",{className:"flex w-full flex-col gap-2",children:[s.jsx(l,{htmlFor:"question",children:"Question"}),s.jsx(i,{type:"text",id:"question",value:a.question,onChange:e=>r("question",e.target.value),className:"rounded border p-2"}),t.question&&s.jsx("span",{className:"text-red-600",children:t.question})]}),s.jsxs("div",{className:"flex w-full flex-col gap-2",children:[s.jsx(l,{htmlFor:"answer",children:"Answer"}),s.jsx(i,{type:"text",id:"answer",value:a.answer,onChange:e=>r("answer",e.target.value),className:"rounded border p-2"}),t.answer&&s.jsx("span",{className:"text-red-600",children:t.answer})]}),s.jsx(p,{type:"submit",disabled:o,className:"cursor-pointer",children:o?"submitting...":"Submit"})]})]})]})}export{C as default};
diff --git a/public/build/assets/add-DBvxbIM5.js b/public/build/assets/add-DBvxbIM5.js
new file mode 100644
index 0000000..b393199
--- /dev/null
+++ b/public/build/assets/add-DBvxbIM5.js
@@ -0,0 +1 @@
+import{r as i,u as c,j as e,H as f}from"./app-C6SiEMGn.js";import{B as x}from"./createLucideIcon-CPpF-2ww.js";import{I as g}from"./input-DYhKGVpQ.js";import{L as o}from"./label-BB9HLxkE.js";import{A as h}from"./app-layout-B4kweoSW.js";import{F as j,t as b,r as F,p as N,a as S}from"./index-BQ4sA8lt.js";import"./app-6D7Y1jSv.js";import"./index-B7t1D_co.js";import"./sheet-BvPq5L9Z.js";import"./index-FUlYkgbj.js";import"./index-CxjaVpyF.js";import"./app-logo-icon-B_KiS1IV.js";import"./package-DTdg9l_D.js";F(N,S);function H(){const[s,m]=i.useState(null),{data:n,setData:t,post:u,processing:r,errors:l,wasSuccessful:p}=c({alt:"",image_url:null});i.useEffect(()=>{s&&t("image_url",s.file)},[s,t]);const d=a=>{a.preventDefault(),u("/carousel",{forceFormData:!0}),p&&b.success("Slider image successfully uploaded")};return e.jsxs(h,{children:[e.jsx(f,{title:"Add Carousel"}),e.jsxs("section",{className:"flex flex-col gap-8 px-8 py-8",children:[e.jsx("h1",{className:"text-lg font-semibold tracking-tight",children:"Add Slider Image"}),e.jsxs("form",{onSubmit:d,method:"POST",encType:"multipart/formdata",children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(o,{htmlFor:"title",children:"Title"}),e.jsx(g,{type:"text",id:"title",value:n.alt,onChange:a=>t("alt",a.target.value),className:"rounded border p-2"}),l.alt&&e.jsx("span",{className:"text-red-600",children:l.alt})]}),e.jsxs("div",{className:"mt-4",children:[e.jsx(o,{children:"Image"}),e.jsx(j,{files:s?[s]:[],onupdatefiles:a=>{m(a[0]||null)},allowMultiple:!1,maxFiles:1,name:"image_url",instantUpload:!1,storeAsFile:!0,labelIdle:'Drag & Drop your image or Browse'}),l.image_url&&e.jsx("span",{className:"text-red-600",children:l.image_url})]}),e.jsx(x,{type:"submit",disabled:r,className:"cursor-pointer",children:r?"Uploading...":"Submit"})]})]})]})}export{H as default};
diff --git a/public/build/assets/add-PPtXNn1w.js b/public/build/assets/add-PPtXNn1w.js
new file mode 100644
index 0000000..b94ffff
--- /dev/null
+++ b/public/build/assets/add-PPtXNn1w.js
@@ -0,0 +1 @@
+import{r as d,u as x,j as e,H as f}from"./app-C6SiEMGn.js";import{B as h}from"./createLucideIcon-CPpF-2ww.js";import{I as g}from"./input-DYhKGVpQ.js";import{L as i}from"./label-BB9HLxkE.js";import{S as j,a as b,b as S,c as v,e as y,d as s}from"./select-BuGuwdXt.js";import{A as N,d as F}from"./app-layout-B4kweoSW.js";import{F as A,t as I,r as P,p as T,a as _}from"./index-BQ4sA8lt.js";import"./app-6D7Y1jSv.js";import"./index-B7t1D_co.js";import"./index-FUlYkgbj.js";import"./sheet-BvPq5L9Z.js";import"./index-ChxR6kRZ.js";import"./check-DEcJAs2N.js";import"./index-CxjaVpyF.js";import"./app-logo-icon-B_KiS1IV.js";import"./package-DTdg9l_D.js";P(T,_);function z(){const[l,n]=d.useState(null),{data:o,setData:a,post:m,processing:c,errors:r,wasSuccessful:p}=x({title:"",type:"traditional",image_url:null});d.useEffect(()=>{l&&a("image_url",l.file)},[l,a]);const u=t=>{t.preventDefault(),m(F.product.add().url,{forceFormData:!0}),p&&I.success("Product added successfully")};return e.jsxs(N,{children:[e.jsx(f,{title:"Add Product Image"}),e.jsxs("section",{className:"flex flex-col gap-8 px-8 py-8",children:[e.jsx("h1",{className:"text-lg font-semibold tracking-tight",children:"Add Product Image"}),e.jsxs("form",{onSubmit:u,method:"POST",encType:"multipart/formdata",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex w-full flex-col gap-4",children:[e.jsx(i,{htmlFor:"title",children:"Title"}),e.jsx(g,{type:"text",id:"title",value:o.title,onChange:t=>a("title",t.target.value),className:"rounded border p-2"}),r.title&&e.jsx("span",{className:"text-red-600",children:r.title})]}),e.jsxs("div",{className:"flex w-full flex-col gap-4",children:[e.jsx(i,{htmlFor:"title",children:"Type"}),e.jsxs(j,{value:o.type,onValueChange:t=>{console.log(t),a("type",t)},children:[e.jsx(b,{children:e.jsx(S,{placeholder:"Select a type"})}),e.jsx(v,{children:e.jsxs(y,{children:[e.jsx(s,{value:"traditional",children:"Traditional"}),e.jsx(s,{value:"modern",children:"Modern"}),e.jsx(s,{value:"bespoke",children:"Bespoke"}),e.jsx(s,{value:"abstract",children:"Abstract"}),e.jsx(s,{value:"art",children:"Art in carpet"})]})})]})]})]}),e.jsxs("div",{className:"mt-4",children:[e.jsx(i,{children:"Image"}),e.jsx(A,{files:l?[l]:[],onupdatefiles:t=>{n(t[0]||null)},allowMultiple:!1,maxFiles:1,name:"image_url",instantUpload:!1,storeAsFile:!0,labelIdle:'Drag & Drop your image or Browse'}),r.image_url&&e.jsx("span",{className:"text-red-600",children:r.image_url})]}),e.jsx(h,{type:"submit",disabled:c,className:"cursor-pointer",children:c?"Uploading...":"Submit"})]})]})]})}export{z as default};
diff --git a/public/build/assets/app-6D7Y1jSv.js b/public/build/assets/app-6D7Y1jSv.js
new file mode 100644
index 0000000..b4bea26
--- /dev/null
+++ b/public/build/assets/app-6D7Y1jSv.js
@@ -0,0 +1 @@
+const e=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));export{e};
diff --git a/public/build/assets/app-C6SiEMGn.js b/public/build/assets/app-C6SiEMGn.js
new file mode 100644
index 0000000..9431067
--- /dev/null
+++ b/public/build/assets/app-C6SiEMGn.js
@@ -0,0 +1,123 @@
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/about-D-lLDmVN.js","assets/layout-DermKrDq.js","assets/createLucideIcon-CPpF-2ww.js","assets/input-DYhKGVpQ.js","assets/label-BB9HLxkE.js","assets/index-B7t1D_co.js","assets/select-BuGuwdXt.js","assets/index-FUlYkgbj.js","assets/sheet-BvPq5L9Z.js","assets/index-ChxR6kRZ.js","assets/check-DEcJAs2N.js","assets/app-6D7Y1jSv.js","assets/app-CRNoOCA8.css","assets/art-Bj4URi2c.js","assets/tabs-0s913y8g.js","assets/index-CxjaVpyF.js","assets/palette-CS1w2D7p.js","assets/package-DTdg9l_D.js","assets/confirm-password-DUhakVOI.js","assets/input-error-DHxzqysv.js","assets/auth-layout-CgoifTok.js","assets/app-logo-icon-B_KiS1IV.js","assets/index-81wdD626.js","assets/loader-circle-BPtK_d4m.js","assets/forgot-password-DvlnxC4k.js","assets/text-link-DNnNqMs9.js","assets/login-DtXSgYUo.js","assets/index-CaEroahx.js","assets/register-PppBZAaz.js","assets/reset-password-CSGE0xvG.js","assets/two-factor-challenge-C51k2snZ.js","assets/use-two-factor-auth-CI4BDFqe.js","assets/index-BrphWuSj.js","assets/verify-email-DKMd4_mF.js","assets/bespoke-CHbaJjvE.js","assets/contact-CER_mUgD.js","assets/textarea-CqLjq5zb.js","assets/dashboard-CPZDQt6I.js","assets/app-layout-B4kweoSW.js","assets/add-DBvxbIM5.js","assets/index-BQ4sA8lt.js","assets/index-BjJCD9wJ.css","assets/carousel-TKM9yJaI.js","assets/table-DVbaU0dA.js","assets/add-CtZCjhMZ.js","assets/index-Dbt94IH4.js","assets/add-PPtXNn1w.js","assets/index-EoGgzwer.js","assets/testimonial-Cp53nCqT.js","assets/faq-DXZIOTAF.js","assets/product-BC9Tk3vd.js","assets/appearance-Bvh310vF.js","assets/layout-C1UmCZPc.js","assets/password-CUuokjl5.js","assets/transition-DErrJhEy.js","assets/profile-CXJzqYJR.js","assets/dialog-DBIBGtzF.js","assets/two-factor-BO-rSCw5.js","assets/welcome-BougYWEW.js","assets/welcome-uGqyt-El.css"])))=>i.map(i=>d[i]);
+import"./app-6D7Y1jSv.js";function sb(r,l){for(var u=0;us[c]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}const cb="modulepreload",fb=function(r){return"/build/"+r},Oy={},Xe=function(l,u,s){let c=Promise.resolve();if(u&&u.length>0){let g=function(y){return Promise.all(y.map(m=>Promise.resolve(m).then(E=>({status:"fulfilled",value:E}),E=>({status:"rejected",reason:E}))))};document.getElementsByTagName("link");const h=document.querySelector("meta[property=csp-nonce]"),v=h?.nonce||h?.getAttribute("nonce");c=g(u.map(y=>{if(y=fb(y),y in Oy)return;Oy[y]=!0;const m=y.endsWith(".css"),E=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${y}"]${E}`))return;const w=document.createElement("link");if(w.rel=m?"stylesheet":cb,m||(w.as="script"),w.crossOrigin="",w.href=y,v&&w.setAttribute("nonce",v),document.head.appendChild(w),m)return new Promise((O,S)=>{w.addEventListener("load",O),w.addEventListener("error",()=>S(new Error(`Unable to preload CSS for ${y}`)))})}))}function d(h){const v=new Event("vite:preloadError",{cancelable:!0});if(v.payload=h,window.dispatchEvent(v),!v.defaultPrevented)throw h}return c.then(h=>{for(const v of h||[])v.status==="rejected"&&d(v.reason);return l().catch(d)})};var _y=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function db(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function hb(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var l=r.default;if(typeof l=="function"){var u=function s(){var c=!1;try{c=this instanceof s}catch{}return c?Reflect.construct(l,arguments,this.constructor):l.apply(this,arguments)};u.prototype=l.prototype}else u={};return Object.defineProperty(u,"__esModule",{value:!0}),Object.keys(r).forEach(function(s){var c=Object.getOwnPropertyDescriptor(r,s);Object.defineProperty(u,s,c.get?c:{enumerable:!0,get:function(){return r[s]}})}),u}var tc={exports:{}},Zl={};/**
+ * @license React
+ * react-jsx-runtime.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */var wy;function pb(){if(wy)return Zl;wy=1;var r=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function u(s,c,d){var h=null;if(d!==void 0&&(h=""+d),c.key!==void 0&&(h=""+c.key),"key"in c){d={};for(var v in c)v!=="key"&&(d[v]=c[v])}else d=c;return c=d.ref,{$$typeof:r,type:s,key:h,ref:c!==void 0?c:null,props:d}}return Zl.Fragment=l,Zl.jsx=u,Zl.jsxs=u,Zl}var Ry;function yb(){return Ry||(Ry=1,tc.exports=pb()),tc.exports}var mb=yb(),nc,Dy;function Za(){return Dy||(Dy=1,nc=TypeError),nc}const vb={},gb=Object.freeze(Object.defineProperty({__proto__:null,default:vb},Symbol.toStringTag,{value:"Module"})),Sb=hb(gb);var rc,My;function Hu(){if(My)return rc;My=1;var r=typeof Map=="function"&&Map.prototype,l=Object.getOwnPropertyDescriptor&&r?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,u=r&&l&&typeof l.get=="function"?l.get:null,s=r&&Map.prototype.forEach,c=typeof Set=="function"&&Set.prototype,d=Object.getOwnPropertyDescriptor&&c?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,h=c&&d&&typeof d.get=="function"?d.get:null,v=c&&Set.prototype.forEach,g=typeof WeakMap=="function"&&WeakMap.prototype,y=g?WeakMap.prototype.has:null,m=typeof WeakSet=="function"&&WeakSet.prototype,E=m?WeakSet.prototype.has:null,w=typeof WeakRef=="function"&&WeakRef.prototype,O=w?WeakRef.prototype.deref:null,S=Boolean.prototype.valueOf,C=Object.prototype.toString,T=Function.prototype.toString,D=String.prototype.match,z=String.prototype.slice,Q=String.prototype.replace,V=String.prototype.toUpperCase,Y=String.prototype.toLowerCase,J=RegExp.prototype.test,W=Array.prototype.concat,te=Array.prototype.join,ne=Array.prototype.slice,ue=Math.floor,ve=typeof BigInt=="function"?BigInt.prototype.valueOf:null,ee=Object.getOwnPropertySymbols,we=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Se=typeof Symbol=="function"&&typeof Symbol.iterator=="object",be=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Se||!0)?Symbol.toStringTag:null,q=Object.prototype.propertyIsEnumerable,K=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(U){return U.__proto__}:null);function $(U,B){if(U===1/0||U===-1/0||U!==U||U&&U>-1e3&&U<1e3||J.call(/e/,B))return B;var Ue=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof U=="number"){var He=U<0?-ue(-U):ue(U);if(He!==U){var je=String(He),Ee=z.call(B,je.length+1);return Q.call(je,Ue,"$&_")+"."+Q.call(Q.call(Ee,/([0-9]{3})/g,"$&_"),/_$/,"")}}return Q.call(B,Ue,"$&_")}var oe=Sb,A=oe.custom,j=ke(A)?A:null,F={__proto__:null,double:'"',single:"'"},Z={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};rc=function U(B,Ue,He,je){var Ee=Ue||{};if(Ze(Ee,"quoteStyle")&&!Ze(F,Ee.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Ze(Ee,"maxStringLength")&&(typeof Ee.maxStringLength=="number"?Ee.maxStringLength<0&&Ee.maxStringLength!==1/0:Ee.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var xt=Ze(Ee,"customInspect")?Ee.customInspect:!0;if(typeof xt!="boolean"&&xt!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Ze(Ee,"indent")&&Ee.indent!==null&&Ee.indent!==" "&&!(parseInt(Ee.indent,10)===Ee.indent&&Ee.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Ze(Ee,"numericSeparator")&&typeof Ee.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var xn=Ee.numericSeparator;if(typeof B>"u")return"undefined";if(B===null)return"null";if(typeof B=="boolean")return B?"true":"false";if(typeof B=="string")return At(B,Ee);if(typeof B=="number"){if(B===0)return 1/0/B>0?"0":"-0";var Tt=String(B);return xn?$(B,Tt):Tt}if(typeof B=="bigint"){var ln=String(B)+"n";return xn?$(B,ln):ln}var zr=typeof Ee.depth>"u"?5:Ee.depth;if(typeof He>"u"&&(He=0),He>=zr&&zr>0&&typeof B=="object")return ae(B)?"[Array]":"[Object]";var vn=oa(Ee,He);if(typeof je>"u")je=[];else if(an(je,B)>=0)return"[Circular]";function Ct(Un,Br,qn){if(Br&&(je=ne.call(je),je.push(Br)),qn){var Nn={depth:Ee.depth};return Ze(Ee,"quoteStyle")&&(Nn.quoteStyle=Ee.quoteStyle),U(Un,Nn,He+1,je)}return U(Un,Ee,He+1,je)}if(typeof B=="function"&&!ye(B)){var fi=Dn(B),un=$t(B,Ct);return"[Function"+(fi?": "+fi:" (anonymous)")+"]"+(un.length>0?" { "+te.call(un,", ")+" }":"")}if(ke(B)){var ot=Se?Q.call(String(B),/^(Symbol\(.*\))_[^)]*$/,"$1"):we.call(B);return typeof B=="object"&&!Se?ut(ot):ot}if(Nr(B)){for(var at="<"+Y.call(String(B.nodeName)),gn=B.attributes||[],lr=0;lr",B.childNodes&&B.childNodes.length&&(at+="..."),at+=""+Y.call(String(B.nodeName))+">",at}if(ae(B)){if(B.length===0)return"[]";var Wa=$t(B,Ct);return vn&&!Zu(Wa)?"["+ar(Wa,vn)+"]":"[ "+te.call(Wa,", ")+" ]"}if(re(B)){var Ia=$t(B,Ct);return!("cause"in Error.prototype)&&"cause"in B&&!q.call(B,"cause")?"{ ["+String(B)+"] "+te.call(W.call("[cause]: "+Ct(B.cause),Ia),", ")+" }":Ia.length===0?"["+String(B)+"]":"{ ["+String(B)+"] "+te.call(Ia,", ")+" }"}if(typeof B=="object"&&xt){if(j&&typeof B[j]=="function"&&oe)return oe(B,{depth:zr-He});if(xt!=="symbol"&&typeof B.inspect=="function")return B.inspect()}if(Et(B)){var el=[];return s&&s.call(B,function(Un,Br){el.push(Ct(Br,B,!0)+" => "+Ct(Un,B))}),ci("Map",u.call(B),el,vn)}if(rr(B)){var ir=[];return v&&v.call(B,function(Un){ir.push(Ct(Un,B))}),ci("Set",h.call(B),ir,vn)}if(nr(B))return ka("WeakMap");if($u(B))return ka("WeakSet");if(Mn(B))return ka("WeakRef");if(Ce(B))return ut(Ct(Number(B)));if(vt(B))return ut(Ct(ve.call(B)));if(Oe(B))return ut(S.call(B));if(de(B))return ut(Ct(String(B)));if(typeof window<"u"&&B===window)return"{ [object Window] }";if(typeof globalThis<"u"&&B===globalThis||typeof _y<"u"&&B===_y)return"{ [object globalThis] }";if(!fe(B)&&!ye(B)){var Hr=$t(B,Ct),Cn=K?K(B)===Object.prototype:B instanceof Object||B.constructor===Object,Sn=B instanceof Object?"":"null prototype",ur=!Cn&&be&&Object(B)===B&&be in B?z.call(Mt(B),8,-1):Sn?"Object":"",or=Cn||typeof B.constructor!="function"?"":B.constructor.name?B.constructor.name+" ":"",We=or+(ur||Sn?"["+te.call(W.call([],ur||[],Sn||[]),": ")+"] ":"");return Hr.length===0?We+"{}":vn?We+"{"+ar(Hr,vn)+"}":We+"{ "+te.call(Hr,", ")+" }"}return String(B)};function k(U,B,Ue){var He=Ue.quoteStyle||B,je=F[He];return je+U+je}function se(U){return Q.call(String(U),/"/g,""")}function le(U){return!be||!(typeof U=="object"&&(be in U||typeof U[be]<"u"))}function ae(U){return Mt(U)==="[object Array]"&&le(U)}function fe(U){return Mt(U)==="[object Date]"&&le(U)}function ye(U){return Mt(U)==="[object RegExp]"&&le(U)}function re(U){return Mt(U)==="[object Error]"&&le(U)}function de(U){return Mt(U)==="[object String]"&&le(U)}function Ce(U){return Mt(U)==="[object Number]"&&le(U)}function Oe(U){return Mt(U)==="[object Boolean]"&&le(U)}function ke(U){if(Se)return U&&typeof U=="object"&&U instanceof Symbol;if(typeof U=="symbol")return!0;if(!U||typeof U!="object"||!we)return!1;try{return we.call(U),!0}catch{}return!1}function vt(U){if(!U||typeof U!="object"||!ve)return!1;try{return ve.call(U),!0}catch{}return!1}var dt=Object.prototype.hasOwnProperty||function(U){return U in this};function Ze(U,B){return dt.call(U,B)}function Mt(U){return C.call(U)}function Dn(U){if(U.name)return U.name;var B=D.call(T.call(U),/^function\s*([\w$]+)/);return B?B[1]:null}function an(U,B){if(U.indexOf)return U.indexOf(B);for(var Ue=0,He=U.length;UeB.maxStringLength){var Ue=U.length-B.maxStringLength,He="... "+Ue+" more character"+(Ue>1?"s":"");return At(z.call(U,0,B.maxStringLength),B)+He}var je=Z[B.quoteStyle||"single"];je.lastIndex=0;var Ee=Q.call(Q.call(U,je,"\\$1"),/[\x00-\x1f]/g,mn);return k(Ee,"single",B)}function mn(U){var B=U.charCodeAt(0),Ue={8:"b",9:"t",10:"n",12:"f",13:"r"}[B];return Ue?"\\"+Ue:"\\x"+(B<16?"0":"")+V.call(B.toString(16))}function ut(U){return"Object("+U+")"}function ka(U){return U+" { ? }"}function ci(U,B,Ue,He){var je=He?ar(Ue,He):te.call(Ue,", ");return U+" ("+B+") {"+je+"}"}function Zu(U){for(var B=0;B=0)return!1;return!0}function oa(U,B){var Ue;if(U.indent===" ")Ue=" ";else if(typeof U.indent=="number"&&U.indent>0)Ue=te.call(Array(U.indent+1)," ");else return null;return{base:Ue,prev:te.call(Array(B+1),Ue)}}function ar(U,B){if(U.length===0)return"";var Ue=`
+`+B.prev+B.base;return Ue+te.call(U,","+Ue)+`
+`+B.prev}function $t(U,B){var Ue=ae(U),He=[];if(Ue){He.length=U.length;for(var je=0;je"u"||!W?r:W(Uint8Array),Se={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?r:ArrayBuffer,"%ArrayIteratorPrototype%":J&&W?W([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":ee,"%AsyncGenerator%":ee,"%AsyncGeneratorFunction%":ee,"%AsyncIteratorPrototype%":ee,"%Atomics%":typeof Atomics>"u"?r:Atomics,"%BigInt%":typeof BigInt>"u"?r:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?r:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?r:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":u,"%eval%":eval,"%EvalError%":s,"%Float16Array%":typeof Float16Array>"u"?r:Float16Array,"%Float32Array%":typeof Float32Array>"u"?r:Float32Array,"%Float64Array%":typeof Float64Array>"u"?r:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?r:FinalizationRegistry,"%Function%":T,"%GeneratorFunction%":ee,"%Int8Array%":typeof Int8Array>"u"?r:Int8Array,"%Int16Array%":typeof Int16Array>"u"?r:Int16Array,"%Int32Array%":typeof Int32Array>"u"?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":J&&W?W(W([][Symbol.iterator]())):r,"%JSON%":typeof JSON=="object"?JSON:r,"%Map%":typeof Map>"u"?r:Map,"%MapIteratorPrototype%":typeof Map>"u"||!J||!W?r:W(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":l,"%Object.getOwnPropertyDescriptor%":z,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?r:Promise,"%Proxy%":typeof Proxy>"u"?r:Proxy,"%RangeError%":c,"%ReferenceError%":d,"%Reflect%":typeof Reflect>"u"?r:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?r:Set,"%SetIteratorPrototype%":typeof Set>"u"||!J||!W?r:W(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":J&&W?W(""[Symbol.iterator]()):r,"%Symbol%":J?Symbol:r,"%SyntaxError%":h,"%ThrowTypeError%":Y,"%TypedArray%":we,"%TypeError%":v,"%Uint8Array%":typeof Uint8Array>"u"?r:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?r:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?r:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?r:Uint32Array,"%URIError%":g,"%WeakMap%":typeof WeakMap>"u"?r:WeakMap,"%WeakRef%":typeof WeakRef>"u"?r:WeakRef,"%WeakSet%":typeof WeakSet>"u"?r:WeakSet,"%Function.prototype.call%":ve,"%Function.prototype.apply%":ue,"%Object.defineProperty%":Q,"%Object.getPrototypeOf%":te,"%Math.abs%":y,"%Math.floor%":m,"%Math.max%":E,"%Math.min%":w,"%Math.pow%":O,"%Math.round%":S,"%Math.sign%":C,"%Reflect.getPrototypeOf%":ne};if(W)try{null.error}catch(ye){var be=W(W(ye));Se["%Error.prototype%"]=be}var q=function ye(re){var de;if(re==="%AsyncFunction%")de=D("async function () {}");else if(re==="%GeneratorFunction%")de=D("function* () {}");else if(re==="%AsyncGeneratorFunction%")de=D("async function* () {}");else if(re==="%AsyncGenerator%"){var Ce=ye("%AsyncGeneratorFunction%");Ce&&(de=Ce.prototype)}else if(re==="%AsyncIteratorPrototype%"){var Oe=ye("%AsyncGenerator%");Oe&&W&&(de=W(Oe.prototype))}return Se[re]=de,de},K={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},$=Bu(),oe=Xb(),A=$.call(ve,Array.prototype.concat),j=$.call(ue,Array.prototype.splice),F=$.call(ve,String.prototype.replace),Z=$.call(ve,String.prototype.slice),k=$.call(ve,RegExp.prototype.exec),se=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,le=/\\(\\)?/g,ae=function(re){var de=Z(re,0,1),Ce=Z(re,-1);if(de==="%"&&Ce!=="%")throw new h("invalid intrinsic syntax, expected closing `%`");if(Ce==="%"&&de!=="%")throw new h("invalid intrinsic syntax, expected opening `%`");var Oe=[];return F(re,se,function(ke,vt,dt,Ze){Oe[Oe.length]=dt?F(Ze,le,"$1"):vt||ke}),Oe},fe=function(re,de){var Ce=re,Oe;if(oe(K,Ce)&&(Oe=K[Ce],Ce="%"+Oe[0]+"%"),oe(Se,Ce)){var ke=Se[Ce];if(ke===ee&&(ke=q(Ce)),typeof ke>"u"&&!de)throw new v("intrinsic "+re+" exists, but is not available. Please file an issue!");return{alias:Oe,name:Ce,value:ke}}throw new h("intrinsic "+re+" does not exist!")};return Bc=function(re,de){if(typeof re!="string"||re.length===0)throw new v("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof de!="boolean")throw new v('"allowMissing" argument must be a boolean');if(k(/^%?[^%]*%?$/,re)===null)throw new h("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var Ce=ae(re),Oe=Ce.length>0?Ce[0]:"",ke=fe("%"+Oe+"%",de),vt=ke.name,dt=ke.value,Ze=!1,Mt=ke.alias;Mt&&(Oe=Mt[0],j(Ce,A([0,1],Mt)));for(var Dn=1,an=!0;Dn=Ce.length){var rr=z(dt,Et);an=!!rr,an&&"get"in rr&&!("originalValue"in rr.get)?dt=rr.get:dt=dt[Et]}else an=oe(dt,Et),dt=dt[Et];an&&!Ze&&(Se[vt]=dt)}}return dt},Bc}var Lc,cm;function Hv(){if(cm)return Lc;cm=1;var r=wf(),l=zv(),u=l([r("%String.prototype.indexOf%")]);return Lc=function(c,d){var h=r(c,!!d);return typeof h=="function"&&u(c,".prototype.")>-1?l([h]):h},Lc}var jc,fm;function Bv(){if(fm)return jc;fm=1;var r=wf(),l=Hv(),u=Hu(),s=Za(),c=r("%Map%",!0),d=l("Map.prototype.get",!0),h=l("Map.prototype.set",!0),v=l("Map.prototype.has",!0),g=l("Map.prototype.delete",!0),y=l("Map.prototype.size",!0);return jc=!!c&&function(){var E,w={assert:function(O){if(!w.has(O))throw new s("Side channel does not contain "+u(O))},delete:function(O){if(E){var S=g(E,O);return y(E)===0&&(E=void 0),S}return!1},get:function(O){if(E)return d(E,O)},has:function(O){return E?v(E,O):!1},set:function(O,S){E||(E=new c),h(E,O,S)}};return w},jc}var Gc,dm;function Qb(){if(dm)return Gc;dm=1;var r=wf(),l=Hv(),u=Hu(),s=Bv(),c=Za(),d=r("%WeakMap%",!0),h=l("WeakMap.prototype.get",!0),v=l("WeakMap.prototype.set",!0),g=l("WeakMap.prototype.has",!0),y=l("WeakMap.prototype.delete",!0);return Gc=d?function(){var E,w,O={assert:function(S){if(!O.has(S))throw new c("Side channel does not contain "+u(S))},delete:function(S){if(d&&S&&(typeof S=="object"||typeof S=="function")){if(E)return y(E,S)}else if(s&&w)return w.delete(S);return!1},get:function(S){return d&&S&&(typeof S=="object"||typeof S=="function")&&E?h(E,S):w&&w.get(S)},has:function(S){return d&&S&&(typeof S=="object"||typeof S=="function")&&E?g(E,S):!!w&&w.has(S)},set:function(S,C){d&&S&&(typeof S=="object"||typeof S=="function")?(E||(E=new d),v(E,S,C)):s&&(w||(w=s()),w.set(S,C))}};return O}:s,Gc}var Pc,hm;function $b(){if(hm)return Pc;hm=1;var r=Za(),l=Hu(),u=bb(),s=Bv(),c=Qb(),d=c||s||u;return Pc=function(){var v,g={assert:function(y){if(!g.has(y))throw new r("Side channel does not contain "+l(y))},delete:function(y){return!!v&&v.delete(y)},get:function(y){return v&&v.get(y)},has:function(y){return!!v&&v.has(y)},set:function(y,m){v||(v=d()),v.set(y,m)}};return g},Pc}var Yc,pm;function Rf(){if(pm)return Yc;pm=1;var r=String.prototype.replace,l=/%20/g,u={RFC1738:"RFC1738",RFC3986:"RFC3986"};return Yc={default:u.RFC3986,formatters:{RFC1738:function(s){return r.call(s,l,"+")},RFC3986:function(s){return String(s)}},RFC1738:u.RFC1738,RFC3986:u.RFC3986},Yc}var Vc,ym;function Lv(){if(ym)return Vc;ym=1;var r=Rf(),l=Object.prototype.hasOwnProperty,u=Array.isArray,s=(function(){for(var T=[],D=0;D<256;++D)T.push("%"+((D<16?"0":"")+D.toString(16)).toUpperCase());return T})(),c=function(D){for(;D.length>1;){var z=D.pop(),Q=z.obj[z.prop];if(u(Q)){for(var V=[],Y=0;Y=y?J.slice(te,te+y):J,ue=[],ve=0;ve=48&&ee<=57||ee>=65&&ee<=90||ee>=97&&ee<=122||Y===r.RFC1738&&(ee===40||ee===41)){ue[ue.length]=ne.charAt(ve);continue}if(ee<128){ue[ue.length]=s[ee];continue}if(ee<2048){ue[ue.length]=s[192|ee>>6]+s[128|ee&63];continue}if(ee<55296||ee>=57344){ue[ue.length]=s[224|ee>>12]+s[128|ee>>6&63]+s[128|ee&63];continue}ve+=1,ee=65536+((ee&1023)<<10|ne.charCodeAt(ve)&1023),ue[ue.length]=s[240|ee>>18]+s[128|ee>>12&63]+s[128|ee>>6&63]+s[128|ee&63]}W+=ue.join("")}return W},E=function(D){for(var z=[{obj:{o:D},prop:"o"}],Q=[],V=0;V"u"&&(A=0)}if(typeof ne=="function"?$=ne(D,$):$ instanceof Date?$=ee($):z==="comma"&&d($)&&($=l.maybeMap($,function(vt){return vt instanceof Date?ee(vt):vt})),$===null){if(Y)return te&&!be?te(D,m.encoder,q,"key",we):D;$=""}if(E($)||l.isBuffer($)){if(te){var Z=be?D:te(D,m.encoder,q,"key",we);return[Se(Z)+"="+Se(te($,m.encoder,q,"value",we))]}return[Se(D)+"="+Se(String($))]}var k=[];if(typeof $>"u")return k;var se;if(z==="comma"&&d($))be&&te&&($=l.maybeMap($,te)),se=[{value:$.length>0?$.join(",")||null:void 0}];else if(d(ne))se=ne;else{var le=Object.keys($);se=ue?le.sort(ue):le}var ae=W?String(D).replace(/\./g,"%2E"):String(D),fe=Q&&d($)&&$.length===1?ae+"[]":ae;if(V&&d($)&&$.length===0)return fe+"[]";for(var ye=0;ye"u"?T.encodeDotInKeys===!0?!0:m.allowDots:!!T.allowDots;return{addQueryPrefix:typeof T.addQueryPrefix=="boolean"?T.addQueryPrefix:m.addQueryPrefix,allowDots:J,allowEmptyArrays:typeof T.allowEmptyArrays=="boolean"?!!T.allowEmptyArrays:m.allowEmptyArrays,arrayFormat:Y,charset:D,charsetSentinel:typeof T.charsetSentinel=="boolean"?T.charsetSentinel:m.charsetSentinel,commaRoundTrip:!!T.commaRoundTrip,delimiter:typeof T.delimiter>"u"?m.delimiter:T.delimiter,encode:typeof T.encode=="boolean"?T.encode:m.encode,encodeDotInKeys:typeof T.encodeDotInKeys=="boolean"?T.encodeDotInKeys:m.encodeDotInKeys,encoder:typeof T.encoder=="function"?T.encoder:m.encoder,encodeValuesOnly:typeof T.encodeValuesOnly=="boolean"?T.encodeValuesOnly:m.encodeValuesOnly,filter:V,format:z,formatter:Q,serializeDate:typeof T.serializeDate=="function"?T.serializeDate:m.serializeDate,skipNulls:typeof T.skipNulls=="boolean"?T.skipNulls:m.skipNulls,sort:typeof T.sort=="function"?T.sort:null,strictNullHandling:typeof T.strictNullHandling=="boolean"?T.strictNullHandling:m.strictNullHandling}};return Xc=function(C,T){var D=C,z=S(T),Q,V;typeof z.filter=="function"?(V=z.filter,D=V("",D)):d(z.filter)&&(V=z.filter,Q=V);var Y=[];if(typeof D!="object"||D===null)return"";var J=c[z.arrayFormat],W=J==="comma"&&z.commaRoundTrip;Q||(Q=Object.keys(D)),z.sort&&Q.sort(z.sort);for(var te=r(),ne=0;ne0?we+ee:""},Xc}var Qc,vm;function Kb(){if(vm)return Qc;vm=1;var r=Lv(),l=Object.prototype.hasOwnProperty,u=Array.isArray,s={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:r.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},c=function(w){return w.replace(/(\d+);/g,function(O,S){return String.fromCharCode(parseInt(S,10))})},d=function(w,O,S){if(w&&typeof w=="string"&&O.comma&&w.indexOf(",")>-1)return w.split(",");if(O.throwOnLimitExceeded&&S>=O.arrayLimit)throw new RangeError("Array limit exceeded. Only "+O.arrayLimit+" element"+(O.arrayLimit===1?"":"s")+" allowed in an array.");return w},h="utf8=%26%2310003%3B",v="utf8=%E2%9C%93",g=function(O,S){var C={__proto__:null},T=S.ignoreQueryPrefix?O.replace(/^\?/,""):O;T=T.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var D=S.parameterLimit===1/0?void 0:S.parameterLimit,z=T.split(S.delimiter,S.throwOnLimitExceeded?D+1:D);if(S.throwOnLimitExceeded&&z.length>D)throw new RangeError("Parameter limit exceeded. Only "+D+" parameter"+(D===1?"":"s")+" allowed.");var Q=-1,V,Y=S.charset;if(S.charsetSentinel)for(V=0;V-1&&(ue=u(ue)?[ue]:ue);var ve=l.call(C,ne);ve&&S.duplicates==="combine"?C[ne]=r.combine(C[ne],ue):(!ve||S.duplicates==="last")&&(C[ne]=ue)}return C},y=function(w,O,S,C){var T=0;if(w.length>0&&w[w.length-1]==="[]"){var D=w.slice(0,-1).join("");T=Array.isArray(O)&&O[D]?O[D].length:0}for(var z=C?O:d(O,S,T),Q=w.length-1;Q>=0;--Q){var V,Y=w[Q];if(Y==="[]"&&S.parseArrays)V=S.allowEmptyArrays&&(z===""||S.strictNullHandling&&z===null)?[]:r.combine([],z);else{V=S.plainObjects?{__proto__:null}:{};var J=Y.charAt(0)==="["&&Y.charAt(Y.length-1)==="]"?Y.slice(1,-1):Y,W=S.decodeDotInKeys?J.replace(/%2E/g,"."):J,te=parseInt(W,10);!S.parseArrays&&W===""?V={0:z}:!isNaN(te)&&Y!==W&&String(te)===W&&te>=0&&S.parseArrays&&te<=S.arrayLimit?(V=[],V[te]=z):W!=="__proto__"&&(V[W]=z)}z=V}return z},m=function(O,S,C,T){if(O){var D=C.allowDots?O.replace(/\.([^.[]+)/g,"[$1]"):O,z=/(\[[^[\]]*])/,Q=/(\[[^[\]]*])/g,V=C.depth>0&&z.exec(D),Y=V?D.slice(0,V.index):D,J=[];if(Y){if(!C.plainObjects&&l.call(Object.prototype,Y)&&!C.allowPrototypes)return;J.push(Y)}for(var W=0;C.depth>0&&(V=Q.exec(D))!==null&&W"u"?s.charset:O.charset,C=typeof O.duplicates>"u"?s.duplicates:O.duplicates;if(C!=="combine"&&C!=="first"&&C!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var T=typeof O.allowDots>"u"?O.decodeDotInKeys===!0?!0:s.allowDots:!!O.allowDots;return{allowDots:T,allowEmptyArrays:typeof O.allowEmptyArrays=="boolean"?!!O.allowEmptyArrays:s.allowEmptyArrays,allowPrototypes:typeof O.allowPrototypes=="boolean"?O.allowPrototypes:s.allowPrototypes,allowSparse:typeof O.allowSparse=="boolean"?O.allowSparse:s.allowSparse,arrayLimit:typeof O.arrayLimit=="number"?O.arrayLimit:s.arrayLimit,charset:S,charsetSentinel:typeof O.charsetSentinel=="boolean"?O.charsetSentinel:s.charsetSentinel,comma:typeof O.comma=="boolean"?O.comma:s.comma,decodeDotInKeys:typeof O.decodeDotInKeys=="boolean"?O.decodeDotInKeys:s.decodeDotInKeys,decoder:typeof O.decoder=="function"?O.decoder:s.decoder,delimiter:typeof O.delimiter=="string"||r.isRegExp(O.delimiter)?O.delimiter:s.delimiter,depth:typeof O.depth=="number"||O.depth===!1?+O.depth:s.depth,duplicates:C,ignoreQueryPrefix:O.ignoreQueryPrefix===!0,interpretNumericEntities:typeof O.interpretNumericEntities=="boolean"?O.interpretNumericEntities:s.interpretNumericEntities,parameterLimit:typeof O.parameterLimit=="number"?O.parameterLimit:s.parameterLimit,parseArrays:O.parseArrays!==!1,plainObjects:typeof O.plainObjects=="boolean"?O.plainObjects:s.plainObjects,strictDepth:typeof O.strictDepth=="boolean"?!!O.strictDepth:s.strictDepth,strictNullHandling:typeof O.strictNullHandling=="boolean"?O.strictNullHandling:s.strictNullHandling,throwOnLimitExceeded:typeof O.throwOnLimitExceeded=="boolean"?O.throwOnLimitExceeded:!1}};return Qc=function(w,O){var S=E(O);if(w===""||w===null||typeof w>"u")return S.plainObjects?{__proto__:null}:{};for(var C=typeof w=="string"?g(w,S):w,T=S.plainObjects?{__proto__:null}:{},D=Object.keys(C),z=0;z-1&&r%1==0&&r-1&&r%1==0&&r<=x1}function C1(r){return r!=null&&Cf(r.length)&&!Yv(r)}var U1=Object.prototype;function Xv(r){var l=r&&r.constructor,u=typeof l=="function"&&l.prototype||U1;return r===u}function q1(r,l){for(var u=-1,s=Array(r);++u-1}function GE(r,l){var u=this.__data__,s=Lu(u,r);return s<0?(++this.size,u.push([r,l])):u[s][1]=l,this}function er(r){var l=-1,u=r==null?0:r.length;for(this.clear();++lv))return!1;var y=d.get(r),m=d.get(l);if(y&&m)return y==l&&m==r;var E=-1,w=!0,O=u&zT?new qu:void 0;for(d.set(r,l),d.set(l,r);++E":">",'"':""","'":"'"},uO=nA(iO),lg=/[&<>"']/g,oO=RegExp(lg.source);function sO(r){return r=kv(r),r&&oO.test(r)?r.replace(lg,uO):r}var cO=Object.prototype,fO=cO.hasOwnProperty;function dO(r,l){return r!=null&&fO.call(r,l)}function hO(r,l){return r!=null&&lO(r,l,dO)}function ig(r,l){return ag(r,l)}function pO(r,l,u,s){if(!Va(r))return r;l=Nf(l,r);for(var c=-1,d=l.length,h=d-1,v=r;v!=null&&++cl=>{const u=yO.call(l);return r[u]||(r[u]=u.slice(8,-1).toLowerCase())})(Object.create(null)),pn=r=>(r=r.toLowerCase(),l=>Pu(l)===r),Yu=r=>l=>typeof l===r,{isArray:Fa}=Array,Qa=Yu("undefined");function ii(r){return r!==null&&!Qa(r)&&r.constructor!==null&&!Qa(r.constructor)&&Bt(r.constructor.isBuffer)&&r.constructor.isBuffer(r)}const sg=pn("ArrayBuffer");function mO(r){let l;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?l=ArrayBuffer.isView(r):l=r&&r.buffer&&sg(r.buffer),l}const vO=Yu("string"),Bt=Yu("function"),cg=Yu("number"),ui=r=>r!==null&&typeof r=="object",gO=r=>r===!0||r===!1,wu=r=>{if(Pu(r)!=="object")return!1;const l=Bf(r);return(l===null||l===Object.prototype||Object.getPrototypeOf(l)===null)&&!(og in r)&&!(Gu in r)},SO=r=>{if(!ui(r)||ii(r))return!1;try{return Object.keys(r).length===0&&Object.getPrototypeOf(r)===Object.prototype}catch{return!1}},bO=pn("Date"),EO=pn("File"),AO=pn("Blob"),TO=pn("FileList"),OO=r=>ui(r)&&Bt(r.pipe),_O=r=>{let l;return r&&(typeof FormData=="function"&&r instanceof FormData||Bt(r.append)&&((l=Pu(r))==="formdata"||l==="object"&&Bt(r.toString)&&r.toString()==="[object FormData]"))},wO=pn("URLSearchParams"),[RO,DO,MO,xO]=["ReadableStream","Request","Response","Headers"].map(pn),CO=r=>r.trim?r.trim():r.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function oi(r,l,{allOwnKeys:u=!1}={}){if(r===null||typeof r>"u")return;let s,c;if(typeof r!="object"&&(r=[r]),Fa(r))for(s=0,c=r.length;s0;)if(c=u[s],l===c.toLowerCase())return c;return null}const ea=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,dg=r=>!Qa(r)&&r!==ea;function df(){const{caseless:r,skipUndefined:l}=dg(this)&&this||{},u={},s=(c,d)=>{const h=r&&fg(u,d)||d;wu(u[h])&&wu(c)?u[h]=df(u[h],c):wu(c)?u[h]=df({},c):Fa(c)?u[h]=c.slice():(!l||!Qa(c))&&(u[h]=c)};for(let c=0,d=arguments.length;c(oi(l,(c,d)=>{u&&Bt(c)?r[d]=ug(c,u):r[d]=c},{allOwnKeys:s}),r),qO=r=>(r.charCodeAt(0)===65279&&(r=r.slice(1)),r),NO=(r,l,u,s)=>{r.prototype=Object.create(l.prototype,s),r.prototype.constructor=r,Object.defineProperty(r,"super",{value:l.prototype}),u&&Object.assign(r.prototype,u)},zO=(r,l,u,s)=>{let c,d,h;const v={};if(l=l||{},r==null)return l;do{for(c=Object.getOwnPropertyNames(r),d=c.length;d-- >0;)h=c[d],(!s||s(h,r,l))&&!v[h]&&(l[h]=r[h],v[h]=!0);r=u!==!1&&Bf(r)}while(r&&(!u||u(r,l))&&r!==Object.prototype);return l},HO=(r,l,u)=>{r=String(r),(u===void 0||u>r.length)&&(u=r.length),u-=l.length;const s=r.indexOf(l,u);return s!==-1&&s===u},BO=r=>{if(!r)return null;if(Fa(r))return r;let l=r.length;if(!cg(l))return null;const u=new Array(l);for(;l-- >0;)u[l]=r[l];return u},LO=(r=>l=>r&&l instanceof r)(typeof Uint8Array<"u"&&Bf(Uint8Array)),jO=(r,l)=>{const s=(r&&r[Gu]).call(r);let c;for(;(c=s.next())&&!c.done;){const d=c.value;l.call(r,d[0],d[1])}},GO=(r,l)=>{let u;const s=[];for(;(u=r.exec(l))!==null;)s.push(u);return s},PO=pn("HTMLFormElement"),YO=r=>r.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(u,s,c){return s.toUpperCase()+c}),$m=(({hasOwnProperty:r})=>(l,u)=>r.call(l,u))(Object.prototype),VO=pn("RegExp"),hg=(r,l)=>{const u=Object.getOwnPropertyDescriptors(r),s={};oi(u,(c,d)=>{let h;(h=l(c,d,r))!==!1&&(s[d]=h||c)}),Object.defineProperties(r,s)},XO=r=>{hg(r,(l,u)=>{if(Bt(r)&&["arguments","caller","callee"].indexOf(u)!==-1)return!1;const s=r[u];if(Bt(s)){if(l.enumerable=!1,"writable"in l){l.writable=!1;return}l.set||(l.set=()=>{throw Error("Can not rewrite read-only method '"+u+"'")})}})},QO=(r,l)=>{const u={},s=c=>{c.forEach(d=>{u[d]=!0})};return Fa(r)?s(r):s(String(r).split(l)),u},$O=()=>{},ZO=(r,l)=>r!=null&&Number.isFinite(r=+r)?r:l;function KO(r){return!!(r&&Bt(r.append)&&r[og]==="FormData"&&r[Gu])}const FO=r=>{const l=new Array(10),u=(s,c)=>{if(ui(s)){if(l.indexOf(s)>=0)return;if(ii(s))return s;if(!("toJSON"in s)){l[c]=s;const d=Fa(s)?[]:{};return oi(s,(h,v)=>{const g=u(h,c+1);!Qa(g)&&(d[v]=g)}),l[c]=void 0,d}}return s};return u(r,0)},JO=pn("AsyncFunction"),kO=r=>r&&(ui(r)||Bt(r))&&Bt(r.then)&&Bt(r.catch),pg=((r,l)=>r?setImmediate:l?((u,s)=>(ea.addEventListener("message",({source:c,data:d})=>{c===ea&&d===u&&s.length&&s.shift()()},!1),c=>{s.push(c),ea.postMessage(u,"*")}))(`axios@${Math.random()}`,[]):u=>setTimeout(u))(typeof setImmediate=="function",Bt(ea.postMessage)),WO=typeof queueMicrotask<"u"?queueMicrotask.bind(ea):typeof process<"u"&&process.nextTick||pg,IO=r=>r!=null&&Bt(r[Gu]),L={isArray:Fa,isArrayBuffer:sg,isBuffer:ii,isFormData:_O,isArrayBufferView:mO,isString:vO,isNumber:cg,isBoolean:gO,isObject:ui,isPlainObject:wu,isEmptyObject:SO,isReadableStream:RO,isRequest:DO,isResponse:MO,isHeaders:xO,isUndefined:Qa,isDate:bO,isFile:EO,isBlob:AO,isRegExp:VO,isFunction:Bt,isStream:OO,isURLSearchParams:wO,isTypedArray:LO,isFileList:TO,forEach:oi,merge:df,extend:UO,trim:CO,stripBOM:qO,inherits:NO,toFlatObject:zO,kindOf:Pu,kindOfTest:pn,endsWith:HO,toArray:BO,forEachEntry:jO,matchAll:GO,isHTMLForm:PO,hasOwnProperty:$m,hasOwnProp:$m,reduceDescriptors:hg,freezeMethods:XO,toObjectSet:QO,toCamelCase:YO,noop:$O,toFiniteNumber:ZO,findKey:fg,global:ea,isContextDefined:dg,isSpecCompliantForm:KO,toJSONObject:FO,isAsyncFn:JO,isThenable:kO,setImmediate:pg,asap:WO,isIterable:IO};function Ae(r,l,u,s,c){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=r,this.name="AxiosError",l&&(this.code=l),u&&(this.config=u),s&&(this.request=s),c&&(this.response=c,this.status=c.status?c.status:null)}L.inherits(Ae,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:L.toJSONObject(this.config),code:this.code,status:this.status}}});const yg=Ae.prototype,mg={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(r=>{mg[r]={value:r}});Object.defineProperties(Ae,mg);Object.defineProperty(yg,"isAxiosError",{value:!0});Ae.from=(r,l,u,s,c,d)=>{const h=Object.create(yg);L.toFlatObject(r,h,function(m){return m!==Error.prototype},y=>y!=="isAxiosError");const v=r&&r.message?r.message:"Error",g=l==null&&r?r.code:l;return Ae.call(h,v,g,u,s,c),r&&h.cause==null&&Object.defineProperty(h,"cause",{value:r,configurable:!0}),h.name=r&&r.name||"Error",d&&Object.assign(h,d),h};const e_=null;function hf(r){return L.isPlainObject(r)||L.isArray(r)}function vg(r){return L.endsWith(r,"[]")?r.slice(0,-2):r}function Zm(r,l,u){return r?r.concat(l).map(function(c,d){return c=vg(c),!u&&d?"["+c+"]":c}).join(u?".":""):l}function t_(r){return L.isArray(r)&&!r.some(hf)}const n_=L.toFlatObject(L,{},null,function(l){return/^is[A-Z]/.test(l)});function Vu(r,l,u){if(!L.isObject(r))throw new TypeError("target must be an object");l=l||new FormData,u=L.toFlatObject(u,{metaTokens:!0,dots:!1,indexes:!1},!1,function(C,T){return!L.isUndefined(T[C])});const s=u.metaTokens,c=u.visitor||m,d=u.dots,h=u.indexes,g=(u.Blob||typeof Blob<"u"&&Blob)&&L.isSpecCompliantForm(l);if(!L.isFunction(c))throw new TypeError("visitor must be a function");function y(S){if(S===null)return"";if(L.isDate(S))return S.toISOString();if(L.isBoolean(S))return S.toString();if(!g&&L.isBlob(S))throw new Ae("Blob is not supported. Use a Buffer instead.");return L.isArrayBuffer(S)||L.isTypedArray(S)?g&&typeof Blob=="function"?new Blob([S]):Buffer.from(S):S}function m(S,C,T){let D=S;if(S&&!T&&typeof S=="object"){if(L.endsWith(C,"{}"))C=s?C:C.slice(0,-2),S=JSON.stringify(S);else if(L.isArray(S)&&t_(S)||(L.isFileList(S)||L.endsWith(C,"[]"))&&(D=L.toArray(S)))return C=vg(C),D.forEach(function(Q,V){!(L.isUndefined(Q)||Q===null)&&l.append(h===!0?Zm([C],V,d):h===null?C:C+"[]",y(Q))}),!1}return hf(S)?!0:(l.append(Zm(T,C,d),y(S)),!1)}const E=[],w=Object.assign(n_,{defaultVisitor:m,convertValue:y,isVisitable:hf});function O(S,C){if(!L.isUndefined(S)){if(E.indexOf(S)!==-1)throw Error("Circular reference detected in "+C.join("."));E.push(S),L.forEach(S,function(D,z){(!(L.isUndefined(D)||D===null)&&c.call(l,D,L.isString(z)?z.trim():z,C,w))===!0&&O(D,C?C.concat(z):[z])}),E.pop()}}if(!L.isObject(r))throw new TypeError("data must be an object");return O(r),l}function Km(r){const l={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(r).replace(/[!'()~]|%20|%00/g,function(s){return l[s]})}function Lf(r,l){this._pairs=[],r&&Vu(r,this,l)}const gg=Lf.prototype;gg.append=function(l,u){this._pairs.push([l,u])};gg.toString=function(l){const u=l?function(s){return l.call(this,s,Km)}:Km;return this._pairs.map(function(c){return u(c[0])+"="+u(c[1])},"").join("&")};function r_(r){return encodeURIComponent(r).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Sg(r,l,u){if(!l)return r;const s=u&&u.encode||r_;L.isFunction(u)&&(u={serialize:u});const c=u&&u.serialize;let d;if(c?d=c(l,u):d=L.isURLSearchParams(l)?l.toString():new Lf(l,u).toString(s),d){const h=r.indexOf("#");h!==-1&&(r=r.slice(0,h)),r+=(r.indexOf("?")===-1?"?":"&")+d}return r}class Fm{constructor(){this.handlers=[]}use(l,u,s){return this.handlers.push({fulfilled:l,rejected:u,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null}),this.handlers.length-1}eject(l){this.handlers[l]&&(this.handlers[l]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(l){L.forEach(this.handlers,function(s){s!==null&&l(s)})}}const bg={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},a_=typeof URLSearchParams<"u"?URLSearchParams:Lf,l_=typeof FormData<"u"?FormData:null,i_=typeof Blob<"u"?Blob:null,u_={isBrowser:!0,classes:{URLSearchParams:a_,FormData:l_,Blob:i_},protocols:["http","https","file","blob","url","data"]},jf=typeof window<"u"&&typeof document<"u",pf=typeof navigator=="object"&&navigator||void 0,o_=jf&&(!pf||["ReactNative","NativeScript","NS"].indexOf(pf.product)<0),s_=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",c_=jf&&window.location.href||"http://localhost",f_=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:jf,hasStandardBrowserEnv:o_,hasStandardBrowserWebWorkerEnv:s_,navigator:pf,origin:c_},Symbol.toStringTag,{value:"Module"})),wt={...f_,...u_};function d_(r,l){return Vu(r,new wt.classes.URLSearchParams,{visitor:function(u,s,c,d){return wt.isNode&&L.isBuffer(u)?(this.append(s,u.toString("base64")),!1):d.defaultVisitor.apply(this,arguments)},...l})}function h_(r){return L.matchAll(/\w+|\[(\w*)]/g,r).map(l=>l[0]==="[]"?"":l[1]||l[0])}function p_(r){const l={},u=Object.keys(r);let s;const c=u.length;let d;for(s=0;s=u.length;return h=!h&&L.isArray(c)?c.length:h,g?(L.hasOwnProp(c,h)?c[h]=[c[h],s]:c[h]=s,!v):((!c[h]||!L.isObject(c[h]))&&(c[h]=[]),l(u,s,c[h],d)&&L.isArray(c[h])&&(c[h]=p_(c[h])),!v)}if(L.isFormData(r)&&L.isFunction(r.entries)){const u={};return L.forEachEntry(r,(s,c)=>{l(h_(s),c,u,0)}),u}return null}function y_(r,l,u){if(L.isString(r))try{return(l||JSON.parse)(r),L.trim(r)}catch(s){if(s.name!=="SyntaxError")throw s}return(u||JSON.stringify)(r)}const si={transitional:bg,adapter:["xhr","http","fetch"],transformRequest:[function(l,u){const s=u.getContentType()||"",c=s.indexOf("application/json")>-1,d=L.isObject(l);if(d&&L.isHTMLForm(l)&&(l=new FormData(l)),L.isFormData(l))return c?JSON.stringify(Eg(l)):l;if(L.isArrayBuffer(l)||L.isBuffer(l)||L.isStream(l)||L.isFile(l)||L.isBlob(l)||L.isReadableStream(l))return l;if(L.isArrayBufferView(l))return l.buffer;if(L.isURLSearchParams(l))return u.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),l.toString();let v;if(d){if(s.indexOf("application/x-www-form-urlencoded")>-1)return d_(l,this.formSerializer).toString();if((v=L.isFileList(l))||s.indexOf("multipart/form-data")>-1){const g=this.env&&this.env.FormData;return Vu(v?{"files[]":l}:l,g&&new g,this.formSerializer)}}return d||c?(u.setContentType("application/json",!1),y_(l)):l}],transformResponse:[function(l){const u=this.transitional||si.transitional,s=u&&u.forcedJSONParsing,c=this.responseType==="json";if(L.isResponse(l)||L.isReadableStream(l))return l;if(l&&L.isString(l)&&(s&&!this.responseType||c)){const h=!(u&&u.silentJSONParsing)&&c;try{return JSON.parse(l,this.parseReviver)}catch(v){if(h)throw v.name==="SyntaxError"?Ae.from(v,Ae.ERR_BAD_RESPONSE,this,null,this.response):v}}return l}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:wt.classes.FormData,Blob:wt.classes.Blob},validateStatus:function(l){return l>=200&&l<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};L.forEach(["delete","get","head","post","put","patch"],r=>{si.headers[r]={}});const m_=L.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),v_=r=>{const l={};let u,s,c;return r&&r.split(`
+`).forEach(function(h){c=h.indexOf(":"),u=h.substring(0,c).trim().toLowerCase(),s=h.substring(c+1).trim(),!(!u||l[u]&&m_[u])&&(u==="set-cookie"?l[u]?l[u].push(s):l[u]=[s]:l[u]=l[u]?l[u]+", "+s:s)}),l},Jm=Symbol("internals");function Fl(r){return r&&String(r).trim().toLowerCase()}function Ru(r){return r===!1||r==null?r:L.isArray(r)?r.map(Ru):String(r)}function g_(r){const l=Object.create(null),u=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=u.exec(r);)l[s[1]]=s[2];return l}const S_=r=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(r.trim());function Jc(r,l,u,s,c){if(L.isFunction(s))return s.call(this,l,u);if(c&&(l=u),!!L.isString(l)){if(L.isString(s))return l.indexOf(s)!==-1;if(L.isRegExp(s))return s.test(l)}}function b_(r){return r.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(l,u,s)=>u.toUpperCase()+s)}function E_(r,l){const u=L.toCamelCase(" "+l);["get","set","has"].forEach(s=>{Object.defineProperty(r,s+u,{value:function(c,d,h){return this[s].call(this,l,c,d,h)},configurable:!0})})}let Lt=class{constructor(l){l&&this.set(l)}set(l,u,s){const c=this;function d(v,g,y){const m=Fl(g);if(!m)throw new Error("header name must be a non-empty string");const E=L.findKey(c,m);(!E||c[E]===void 0||y===!0||y===void 0&&c[E]!==!1)&&(c[E||g]=Ru(v))}const h=(v,g)=>L.forEach(v,(y,m)=>d(y,m,g));if(L.isPlainObject(l)||l instanceof this.constructor)h(l,u);else if(L.isString(l)&&(l=l.trim())&&!S_(l))h(v_(l),u);else if(L.isObject(l)&&L.isIterable(l)){let v={},g,y;for(const m of l){if(!L.isArray(m))throw TypeError("Object iterator must return a key-value pair");v[y=m[0]]=(g=v[y])?L.isArray(g)?[...g,m[1]]:[g,m[1]]:m[1]}h(v,u)}else l!=null&&d(u,l,s);return this}get(l,u){if(l=Fl(l),l){const s=L.findKey(this,l);if(s){const c=this[s];if(!u)return c;if(u===!0)return g_(c);if(L.isFunction(u))return u.call(this,c,s);if(L.isRegExp(u))return u.exec(c);throw new TypeError("parser must be boolean|regexp|function")}}}has(l,u){if(l=Fl(l),l){const s=L.findKey(this,l);return!!(s&&this[s]!==void 0&&(!u||Jc(this,this[s],s,u)))}return!1}delete(l,u){const s=this;let c=!1;function d(h){if(h=Fl(h),h){const v=L.findKey(s,h);v&&(!u||Jc(s,s[v],v,u))&&(delete s[v],c=!0)}}return L.isArray(l)?l.forEach(d):d(l),c}clear(l){const u=Object.keys(this);let s=u.length,c=!1;for(;s--;){const d=u[s];(!l||Jc(this,this[d],d,l,!0))&&(delete this[d],c=!0)}return c}normalize(l){const u=this,s={};return L.forEach(this,(c,d)=>{const h=L.findKey(s,d);if(h){u[h]=Ru(c),delete u[d];return}const v=l?b_(d):String(d).trim();v!==d&&delete u[d],u[v]=Ru(c),s[v]=!0}),this}concat(...l){return this.constructor.concat(this,...l)}toJSON(l){const u=Object.create(null);return L.forEach(this,(s,c)=>{s!=null&&s!==!1&&(u[c]=l&&L.isArray(s)?s.join(", "):s)}),u}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([l,u])=>l+": "+u).join(`
+`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(l){return l instanceof this?l:new this(l)}static concat(l,...u){const s=new this(l);return u.forEach(c=>s.set(c)),s}static accessor(l){const s=(this[Jm]=this[Jm]={accessors:{}}).accessors,c=this.prototype;function d(h){const v=Fl(h);s[v]||(E_(c,h),s[v]=!0)}return L.isArray(l)?l.forEach(d):d(l),this}};Lt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);L.reduceDescriptors(Lt.prototype,({value:r},l)=>{let u=l[0].toUpperCase()+l.slice(1);return{get:()=>r,set(s){this[u]=s}}});L.freezeMethods(Lt);function kc(r,l){const u=this||si,s=l||u,c=Lt.from(s.headers);let d=s.data;return L.forEach(r,function(v){d=v.call(u,d,c.normalize(),l?l.status:void 0)}),c.normalize(),d}function Ag(r){return!!(r&&r.__CANCEL__)}function Ja(r,l,u){Ae.call(this,r??"canceled",Ae.ERR_CANCELED,l,u),this.name="CanceledError"}L.inherits(Ja,Ae,{__CANCEL__:!0});function Tg(r,l,u){const s=u.config.validateStatus;!u.status||!s||s(u.status)?r(u):l(new Ae("Request failed with status code "+u.status,[Ae.ERR_BAD_REQUEST,Ae.ERR_BAD_RESPONSE][Math.floor(u.status/100)-4],u.config,u.request,u))}function A_(r){const l=/^([-+\w]{1,25})(:?\/\/|:)/.exec(r);return l&&l[1]||""}function T_(r,l){r=r||10;const u=new Array(r),s=new Array(r);let c=0,d=0,h;return l=l!==void 0?l:1e3,function(g){const y=Date.now(),m=s[d];h||(h=y),u[c]=g,s[c]=y;let E=d,w=0;for(;E!==c;)w+=u[E++],E=E%r;if(c=(c+1)%r,c===d&&(d=(d+1)%r),y-h{u=m,c=null,d&&(clearTimeout(d),d=null),r(...y)};return[(...y)=>{const m=Date.now(),E=m-u;E>=s?h(y,m):(c=y,d||(d=setTimeout(()=>{d=null,h(c)},s-E)))},()=>c&&h(c)]}const Nu=(r,l,u=3)=>{let s=0;const c=T_(50,250);return O_(d=>{const h=d.loaded,v=d.lengthComputable?d.total:void 0,g=h-s,y=c(g),m=h<=v;s=h;const E={loaded:h,total:v,progress:v?h/v:void 0,bytes:g,rate:y||void 0,estimated:y&&v&&m?(v-h)/y:void 0,event:d,lengthComputable:v!=null,[l?"download":"upload"]:!0};r(E)},u)},km=(r,l)=>{const u=r!=null;return[s=>l[0]({lengthComputable:u,total:r,loaded:s}),l[1]]},Wm=r=>(...l)=>L.asap(()=>r(...l)),__=wt.hasStandardBrowserEnv?((r,l)=>u=>(u=new URL(u,wt.origin),r.protocol===u.protocol&&r.host===u.host&&(l||r.port===u.port)))(new URL(wt.origin),wt.navigator&&/(msie|trident)/i.test(wt.navigator.userAgent)):()=>!0,w_=wt.hasStandardBrowserEnv?{write(r,l,u,s,c,d){const h=[r+"="+encodeURIComponent(l)];L.isNumber(u)&&h.push("expires="+new Date(u).toGMTString()),L.isString(s)&&h.push("path="+s),L.isString(c)&&h.push("domain="+c),d===!0&&h.push("secure"),document.cookie=h.join("; ")},read(r){const l=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return l?decodeURIComponent(l[3]):null},remove(r){this.write(r,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function R_(r){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(r)}function D_(r,l){return l?r.replace(/\/?\/$/,"")+"/"+l.replace(/^\/+/,""):r}function Og(r,l,u){let s=!R_(l);return r&&(s||u==!1)?D_(r,l):l}const Im=r=>r instanceof Lt?{...r}:r;function la(r,l){l=l||{};const u={};function s(y,m,E,w){return L.isPlainObject(y)&&L.isPlainObject(m)?L.merge.call({caseless:w},y,m):L.isPlainObject(m)?L.merge({},m):L.isArray(m)?m.slice():m}function c(y,m,E,w){if(L.isUndefined(m)){if(!L.isUndefined(y))return s(void 0,y,E,w)}else return s(y,m,E,w)}function d(y,m){if(!L.isUndefined(m))return s(void 0,m)}function h(y,m){if(L.isUndefined(m)){if(!L.isUndefined(y))return s(void 0,y)}else return s(void 0,m)}function v(y,m,E){if(E in l)return s(y,m);if(E in r)return s(void 0,y)}const g={url:d,method:d,data:d,baseURL:h,transformRequest:h,transformResponse:h,paramsSerializer:h,timeout:h,timeoutMessage:h,withCredentials:h,withXSRFToken:h,adapter:h,responseType:h,xsrfCookieName:h,xsrfHeaderName:h,onUploadProgress:h,onDownloadProgress:h,decompress:h,maxContentLength:h,maxBodyLength:h,beforeRedirect:h,transport:h,httpAgent:h,httpsAgent:h,cancelToken:h,socketPath:h,responseEncoding:h,validateStatus:v,headers:(y,m,E)=>c(Im(y),Im(m),E,!0)};return L.forEach(Object.keys({...r,...l}),function(m){const E=g[m]||c,w=E(r[m],l[m],m);L.isUndefined(w)&&E!==v||(u[m]=w)}),u}const _g=r=>{const l=la({},r);let{data:u,withXSRFToken:s,xsrfHeaderName:c,xsrfCookieName:d,headers:h,auth:v}=l;if(l.headers=h=Lt.from(h),l.url=Sg(Og(l.baseURL,l.url,l.allowAbsoluteUrls),r.params,r.paramsSerializer),v&&h.set("Authorization","Basic "+btoa((v.username||"")+":"+(v.password?unescape(encodeURIComponent(v.password)):""))),L.isFormData(u)){if(wt.hasStandardBrowserEnv||wt.hasStandardBrowserWebWorkerEnv)h.setContentType(void 0);else if(L.isFunction(u.getHeaders)){const g=u.getHeaders(),y=["content-type","content-length"];Object.entries(g).forEach(([m,E])=>{y.includes(m.toLowerCase())&&h.set(m,E)})}}if(wt.hasStandardBrowserEnv&&(s&&L.isFunction(s)&&(s=s(l)),s||s!==!1&&__(l.url))){const g=c&&d&&w_.read(d);g&&h.set(c,g)}return l},M_=typeof XMLHttpRequest<"u",x_=M_&&function(r){return new Promise(function(u,s){const c=_g(r);let d=c.data;const h=Lt.from(c.headers).normalize();let{responseType:v,onUploadProgress:g,onDownloadProgress:y}=c,m,E,w,O,S;function C(){O&&O(),S&&S(),c.cancelToken&&c.cancelToken.unsubscribe(m),c.signal&&c.signal.removeEventListener("abort",m)}let T=new XMLHttpRequest;T.open(c.method.toUpperCase(),c.url,!0),T.timeout=c.timeout;function D(){if(!T)return;const Q=Lt.from("getAllResponseHeaders"in T&&T.getAllResponseHeaders()),Y={data:!v||v==="text"||v==="json"?T.responseText:T.response,status:T.status,statusText:T.statusText,headers:Q,config:r,request:T};Tg(function(W){u(W),C()},function(W){s(W),C()},Y),T=null}"onloadend"in T?T.onloadend=D:T.onreadystatechange=function(){!T||T.readyState!==4||T.status===0&&!(T.responseURL&&T.responseURL.indexOf("file:")===0)||setTimeout(D)},T.onabort=function(){T&&(s(new Ae("Request aborted",Ae.ECONNABORTED,r,T)),T=null)},T.onerror=function(V){const Y=V&&V.message?V.message:"Network Error",J=new Ae(Y,Ae.ERR_NETWORK,r,T);J.event=V||null,s(J),T=null},T.ontimeout=function(){let V=c.timeout?"timeout of "+c.timeout+"ms exceeded":"timeout exceeded";const Y=c.transitional||bg;c.timeoutErrorMessage&&(V=c.timeoutErrorMessage),s(new Ae(V,Y.clarifyTimeoutError?Ae.ETIMEDOUT:Ae.ECONNABORTED,r,T)),T=null},d===void 0&&h.setContentType(null),"setRequestHeader"in T&&L.forEach(h.toJSON(),function(V,Y){T.setRequestHeader(Y,V)}),L.isUndefined(c.withCredentials)||(T.withCredentials=!!c.withCredentials),v&&v!=="json"&&(T.responseType=c.responseType),y&&([w,S]=Nu(y,!0),T.addEventListener("progress",w)),g&&T.upload&&([E,O]=Nu(g),T.upload.addEventListener("progress",E),T.upload.addEventListener("loadend",O)),(c.cancelToken||c.signal)&&(m=Q=>{T&&(s(!Q||Q.type?new Ja(null,r,T):Q),T.abort(),T=null)},c.cancelToken&&c.cancelToken.subscribe(m),c.signal&&(c.signal.aborted?m():c.signal.addEventListener("abort",m)));const z=A_(c.url);if(z&&wt.protocols.indexOf(z)===-1){s(new Ae("Unsupported protocol "+z+":",Ae.ERR_BAD_REQUEST,r));return}T.send(d||null)})},C_=(r,l)=>{const{length:u}=r=r?r.filter(Boolean):[];if(l||u){let s=new AbortController,c;const d=function(y){if(!c){c=!0,v();const m=y instanceof Error?y:this.reason;s.abort(m instanceof Ae?m:new Ja(m instanceof Error?m.message:m))}};let h=l&&setTimeout(()=>{h=null,d(new Ae(`timeout ${l} of ms exceeded`,Ae.ETIMEDOUT))},l);const v=()=>{r&&(h&&clearTimeout(h),h=null,r.forEach(y=>{y.unsubscribe?y.unsubscribe(d):y.removeEventListener("abort",d)}),r=null)};r.forEach(y=>y.addEventListener("abort",d));const{signal:g}=s;return g.unsubscribe=()=>L.asap(v),g}},U_=function*(r,l){let u=r.byteLength;if(u{const c=q_(r,l);let d=0,h,v=g=>{h||(h=!0,s&&s(g))};return new ReadableStream({async pull(g){try{const{done:y,value:m}=await c.next();if(y){v(),g.close();return}let E=m.byteLength;if(u){let w=d+=E;u(w)}g.enqueue(new Uint8Array(m))}catch(y){throw v(y),y}},cancel(g){return v(g),c.return()}},{highWaterMark:2})},tv=64*1024,{isFunction:Tu}=L,z_=(({Request:r,Response:l})=>({Request:r,Response:l}))(L.global),{ReadableStream:nv,TextEncoder:rv}=L.global,av=(r,...l)=>{try{return!!r(...l)}catch{return!1}},H_=r=>{r=L.merge.call({skipUndefined:!0},z_,r);const{fetch:l,Request:u,Response:s}=r,c=l?Tu(l):typeof fetch=="function",d=Tu(u),h=Tu(s);if(!c)return!1;const v=c&&Tu(nv),g=c&&(typeof rv=="function"?(S=>C=>S.encode(C))(new rv):async S=>new Uint8Array(await new u(S).arrayBuffer())),y=d&&v&&av(()=>{let S=!1;const C=new u(wt.origin,{body:new nv,method:"POST",get duplex(){return S=!0,"half"}}).headers.has("Content-Type");return S&&!C}),m=h&&v&&av(()=>L.isReadableStream(new s("").body)),E={stream:m&&(S=>S.body)};c&&["text","arrayBuffer","blob","formData","stream"].forEach(S=>{!E[S]&&(E[S]=(C,T)=>{let D=C&&C[S];if(D)return D.call(C);throw new Ae(`Response type '${S}' is not supported`,Ae.ERR_NOT_SUPPORT,T)})});const w=async S=>{if(S==null)return 0;if(L.isBlob(S))return S.size;if(L.isSpecCompliantForm(S))return(await new u(wt.origin,{method:"POST",body:S}).arrayBuffer()).byteLength;if(L.isArrayBufferView(S)||L.isArrayBuffer(S))return S.byteLength;if(L.isURLSearchParams(S)&&(S=S+""),L.isString(S))return(await g(S)).byteLength},O=async(S,C)=>{const T=L.toFiniteNumber(S.getContentLength());return T??w(C)};return async S=>{let{url:C,method:T,data:D,signal:z,cancelToken:Q,timeout:V,onDownloadProgress:Y,onUploadProgress:J,responseType:W,headers:te,withCredentials:ne="same-origin",fetchOptions:ue}=_g(S),ve=l||fetch;W=W?(W+"").toLowerCase():"text";let ee=C_([z,Q&&Q.toAbortSignal()],V),we=null;const Se=ee&&ee.unsubscribe&&(()=>{ee.unsubscribe()});let be;try{if(J&&y&&T!=="get"&&T!=="head"&&(be=await O(te,D))!==0){let j=new u(C,{method:"POST",body:D,duplex:"half"}),F;if(L.isFormData(D)&&(F=j.headers.get("content-type"))&&te.setContentType(F),j.body){const[Z,k]=km(be,Nu(Wm(J)));D=ev(j.body,tv,Z,k)}}L.isString(ne)||(ne=ne?"include":"omit");const q=d&&"credentials"in u.prototype,K={...ue,signal:ee,method:T.toUpperCase(),headers:te.normalize().toJSON(),body:D,duplex:"half",credentials:q?ne:void 0};we=d&&new u(C,K);let $=await(d?ve(we,ue):ve(C,K));const oe=m&&(W==="stream"||W==="response");if(m&&(Y||oe&&Se)){const j={};["status","statusText","headers"].forEach(se=>{j[se]=$[se]});const F=L.toFiniteNumber($.headers.get("content-length")),[Z,k]=Y&&km(F,Nu(Wm(Y),!0))||[];$=new s(ev($.body,tv,Z,()=>{k&&k(),Se&&Se()}),j)}W=W||"text";let A=await E[L.findKey(E,W)||"text"]($,S);return!oe&&Se&&Se(),await new Promise((j,F)=>{Tg(j,F,{data:A,headers:Lt.from($.headers),status:$.status,statusText:$.statusText,config:S,request:we})})}catch(q){throw Se&&Se(),q&&q.name==="TypeError"&&/Load failed|fetch/i.test(q.message)?Object.assign(new Ae("Network Error",Ae.ERR_NETWORK,S,we),{cause:q.cause||q}):Ae.from(q,q&&q.code,S,we)}}},B_=new Map,wg=r=>{let l=r?r.env:{};const{fetch:u,Request:s,Response:c}=l,d=[s,c,u];let h=d.length,v=h,g,y,m=B_;for(;v--;)g=d[v],y=m.get(g),y===void 0&&m.set(g,y=v?new Map:H_(l)),m=y;return y};wg();const yf={http:e_,xhr:x_,fetch:{get:wg}};L.forEach(yf,(r,l)=>{if(r){try{Object.defineProperty(r,"name",{value:l})}catch{}Object.defineProperty(r,"adapterName",{value:l})}});const lv=r=>`- ${r}`,L_=r=>L.isFunction(r)||r===null||r===!1,Rg={getAdapter:(r,l)=>{r=L.isArray(r)?r:[r];const{length:u}=r;let s,c;const d={};for(let h=0;h`adapter ${g} `+(y===!1?"is not supported by the environment":"is not available in the build"));let v=u?h.length>1?`since :
+`+h.map(lv).join(`
+`):" "+lv(h[0]):"as no adapter specified";throw new Ae("There is no suitable adapter to dispatch the request "+v,"ERR_NOT_SUPPORT")}return c},adapters:yf};function Wc(r){if(r.cancelToken&&r.cancelToken.throwIfRequested(),r.signal&&r.signal.aborted)throw new Ja(null,r)}function iv(r){return Wc(r),r.headers=Lt.from(r.headers),r.data=kc.call(r,r.transformRequest),["post","put","patch"].indexOf(r.method)!==-1&&r.headers.setContentType("application/x-www-form-urlencoded",!1),Rg.getAdapter(r.adapter||si.adapter,r)(r).then(function(s){return Wc(r),s.data=kc.call(r,r.transformResponse,s),s.headers=Lt.from(s.headers),s},function(s){return Ag(s)||(Wc(r),s&&s.response&&(s.response.data=kc.call(r,r.transformResponse,s.response),s.response.headers=Lt.from(s.response.headers))),Promise.reject(s)})}const Dg="1.12.2",Xu={};["object","boolean","number","function","string","symbol"].forEach((r,l)=>{Xu[r]=function(s){return typeof s===r||"a"+(l<1?"n ":" ")+r}});const uv={};Xu.transitional=function(l,u,s){function c(d,h){return"[Axios v"+Dg+"] Transitional option '"+d+"'"+h+(s?". "+s:"")}return(d,h,v)=>{if(l===!1)throw new Ae(c(h," has been removed"+(u?" in "+u:"")),Ae.ERR_DEPRECATED);return u&&!uv[h]&&(uv[h]=!0,console.warn(c(h," has been deprecated since v"+u+" and will be removed in the near future"))),l?l(d,h,v):!0}};Xu.spelling=function(l){return(u,s)=>(console.warn(`${s} is likely a misspelling of ${l}`),!0)};function j_(r,l,u){if(typeof r!="object")throw new Ae("options must be an object",Ae.ERR_BAD_OPTION_VALUE);const s=Object.keys(r);let c=s.length;for(;c-- >0;){const d=s[c],h=l[d];if(h){const v=r[d],g=v===void 0||h(v,d,r);if(g!==!0)throw new Ae("option "+d+" must be "+g,Ae.ERR_BAD_OPTION_VALUE);continue}if(u!==!0)throw new Ae("Unknown option "+d,Ae.ERR_BAD_OPTION)}}const Du={assertOptions:j_,validators:Xu},_n=Du.validators;let na=class{constructor(l){this.defaults=l||{},this.interceptors={request:new Fm,response:new Fm}}async request(l,u){try{return await this._request(l,u)}catch(s){if(s instanceof Error){let c={};Error.captureStackTrace?Error.captureStackTrace(c):c=new Error;const d=c.stack?c.stack.replace(/^.+\n/,""):"";try{s.stack?d&&!String(s.stack).endsWith(d.replace(/^.+\n.+\n/,""))&&(s.stack+=`
+`+d):s.stack=d}catch{}}throw s}}_request(l,u){typeof l=="string"?(u=u||{},u.url=l):u=l||{},u=la(this.defaults,u);const{transitional:s,paramsSerializer:c,headers:d}=u;s!==void 0&&Du.assertOptions(s,{silentJSONParsing:_n.transitional(_n.boolean),forcedJSONParsing:_n.transitional(_n.boolean),clarifyTimeoutError:_n.transitional(_n.boolean)},!1),c!=null&&(L.isFunction(c)?u.paramsSerializer={serialize:c}:Du.assertOptions(c,{encode:_n.function,serialize:_n.function},!0)),u.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?u.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:u.allowAbsoluteUrls=!0),Du.assertOptions(u,{baseUrl:_n.spelling("baseURL"),withXsrfToken:_n.spelling("withXSRFToken")},!0),u.method=(u.method||this.defaults.method||"get").toLowerCase();let h=d&&L.merge(d.common,d[u.method]);d&&L.forEach(["delete","get","head","post","put","patch","common"],S=>{delete d[S]}),u.headers=Lt.concat(h,d);const v=[];let g=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(u)===!1||(g=g&&C.synchronous,v.unshift(C.fulfilled,C.rejected))});const y=[];this.interceptors.response.forEach(function(C){y.push(C.fulfilled,C.rejected)});let m,E=0,w;if(!g){const S=[iv.bind(this),void 0];for(S.unshift(...v),S.push(...y),w=S.length,m=Promise.resolve(u);E{if(!s._listeners)return;let d=s._listeners.length;for(;d-- >0;)s._listeners[d](c);s._listeners=null}),this.promise.then=c=>{let d;const h=new Promise(v=>{s.subscribe(v),d=v}).then(c);return h.cancel=function(){s.unsubscribe(d)},h},l(function(d,h,v){s.reason||(s.reason=new Ja(d,h,v),u(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(l){if(this.reason){l(this.reason);return}this._listeners?this._listeners.push(l):this._listeners=[l]}unsubscribe(l){if(!this._listeners)return;const u=this._listeners.indexOf(l);u!==-1&&this._listeners.splice(u,1)}toAbortSignal(){const l=new AbortController,u=s=>{l.abort(s)};return this.subscribe(u),l.signal.unsubscribe=()=>this.unsubscribe(u),l.signal}static source(){let l;return{token:new Mg(function(c){l=c}),cancel:l}}};function P_(r){return function(u){return r.apply(null,u)}}function Y_(r){return L.isObject(r)&&r.isAxiosError===!0}const mf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(mf).forEach(([r,l])=>{mf[l]=r});function xg(r){const l=new na(r),u=ug(na.prototype.request,l);return L.extend(u,na.prototype,l,{allOwnKeys:!0}),L.extend(u,l,null,{allOwnKeys:!0}),u.create=function(c){return xg(la(r,c))},u}const tt=xg(si);tt.Axios=na;tt.CanceledError=Ja;tt.CancelToken=G_;tt.isCancel=Ag;tt.VERSION=Dg;tt.toFormData=Vu;tt.AxiosError=Ae;tt.Cancel=tt.CanceledError;tt.all=function(l){return Promise.all(l)};tt.spread=P_;tt.isAxiosError=Y_;tt.mergeConfig=la;tt.AxiosHeaders=Lt;tt.formToJSON=r=>Eg(L.isHTMLForm(r)?new FormData(r):r);tt.getAdapter=Rg.getAdapter;tt.HttpStatusCode=mf;tt.default=tt;const{Axios:o2,AxiosError:s2,CanceledError:c2,isCancel:f2,CancelToken:d2,VERSION:h2,all:p2,Cancel:y2,isAxiosError:m2,spread:v2,toFormData:g2,AxiosHeaders:S2,HttpStatusCode:b2,formToJSON:E2,getAdapter:A2,mergeConfig:T2}=tt;function vf(r,l){let u;return function(...s){clearTimeout(u),u=setTimeout(()=>r.apply(this,s),l)}}function yn(r,l){return document.dispatchEvent(new CustomEvent(`inertia:${r}`,l))}var ov=r=>yn("before",{cancelable:!0,detail:{visit:r}}),V_=r=>yn("error",{detail:{errors:r}}),X_=r=>yn("exception",{cancelable:!0,detail:{exception:r}}),Q_=r=>yn("finish",{detail:{visit:r}}),$_=r=>yn("invalid",{cancelable:!0,detail:{response:r}}),ni=r=>yn("navigate",{detail:{page:r}}),Z_=r=>yn("progress",{detail:{progress:r}}),K_=r=>yn("start",{detail:{visit:r}}),F_=r=>yn("success",{detail:{page:r}}),J_=(r,l)=>yn("prefetched",{detail:{fetchedAt:Date.now(),response:r.data,visit:l}}),k_=r=>yn("prefetching",{detail:{visit:r}}),Dt=class{static set(r,l){typeof window<"u"&&window.sessionStorage.setItem(r,JSON.stringify(l))}static get(r){if(typeof window<"u")return JSON.parse(window.sessionStorage.getItem(r)||"null")}static merge(r,l){const u=this.get(r);u===null?this.set(r,l):this.set(r,{...u,...l})}static remove(r){typeof window<"u"&&window.sessionStorage.removeItem(r)}static removeNested(r,l){const u=this.get(r);u!==null&&(delete u[l],this.set(r,u))}static exists(r){try{return this.get(r)!==null}catch{return!1}}static clear(){typeof window<"u"&&window.sessionStorage.clear()}};Dt.locationVisitKey="inertiaLocationVisit";var W_=async r=>{if(typeof window>"u")throw new Error("Unable to encrypt history");const l=Cg(),u=await Ug(),s=await aw(u);if(!s)throw new Error("Unable to encrypt history");return await ew(l,s,r)},$a={key:"historyKey",iv:"historyIv"},I_=async r=>{const l=Cg(),u=await Ug();if(!u)throw new Error("Unable to decrypt history");return await tw(l,u,r)},ew=async(r,l,u)=>{if(typeof window>"u")throw new Error("Unable to encrypt history");if(typeof window.crypto.subtle>"u")return console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve(u);const s=new TextEncoder,c=JSON.stringify(u),d=new Uint8Array(c.length*3),h=s.encodeInto(c,d);return window.crypto.subtle.encrypt({name:"AES-GCM",iv:r},l,d.subarray(0,h.written))},tw=async(r,l,u)=>{if(typeof window.crypto.subtle>"u")return console.warn("Decryption is not supported in this environment. SSL is required."),Promise.resolve(u);const s=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:r},l,u);return JSON.parse(new TextDecoder().decode(s))},Cg=()=>{const r=Dt.get($a.iv);if(r)return new Uint8Array(r);const l=window.crypto.getRandomValues(new Uint8Array(12));return Dt.set($a.iv,Array.from(l)),l},nw=async()=>typeof window.crypto.subtle>"u"?(console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve(null)):window.crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),rw=async r=>{if(typeof window.crypto.subtle>"u")return console.warn("Encryption is not supported in this environment. SSL is required."),Promise.resolve();const l=await window.crypto.subtle.exportKey("raw",r);Dt.set($a.key,Array.from(new Uint8Array(l)))},aw=async r=>{if(r)return r;const l=await nw();return l?(await rw(l),l):null},Ug=async()=>{const r=Dt.get($a.key);return r?await window.crypto.subtle.importKey("raw",new Uint8Array(r),{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]):null},hn=class{static save(){ze.saveScrollPositions(Array.from(this.regions()).map(r=>({top:r.scrollTop,left:r.scrollLeft})))}static regions(){return document.querySelectorAll("[scroll-region]")}static reset(){const r=typeof window<"u"?window.location.hash:null;r||window.scrollTo(0,0),this.regions().forEach(l=>{typeof l.scrollTo=="function"?l.scrollTo(0,0):(l.scrollTop=0,l.scrollLeft=0)}),this.save(),r&&setTimeout(()=>{const l=document.getElementById(r.slice(1));l?l.scrollIntoView():window.scrollTo(0,0)})}static restore(r){this.restoreDocument(),this.regions().forEach((l,u)=>{const s=r[u];s&&(typeof l.scrollTo=="function"?l.scrollTo(s.left,s.top):(l.scrollTop=s.top,l.scrollLeft=s.left))})}static restoreDocument(){const r=ze.getDocumentScrollPosition();typeof window<"u"&&window.scrollTo(r.left,r.top)}static onScroll(r){const l=r.target;typeof l.hasAttribute=="function"&&l.hasAttribute("scroll-region")&&this.save()}static onWindowScroll(){ze.saveDocumentScrollPosition({top:window.scrollY,left:window.scrollX})}};function gf(r){return r instanceof File||r instanceof Blob||r instanceof FileList&&r.length>0||r instanceof FormData&&Array.from(r.values()).some(l=>gf(l))||typeof r=="object"&&r!==null&&Object.values(r).some(l=>gf(l))}var Sf=r=>r instanceof FormData;function qg(r,l=new FormData,u=null){r=r||{};for(const s in r)Object.prototype.hasOwnProperty.call(r,s)&&zg(l,Ng(u,s),r[s]);return l}function Ng(r,l){return r?r+"["+l+"]":l}function zg(r,l,u){if(Array.isArray(u))return Array.from(u.keys()).forEach(s=>zg(r,Ng(l,s.toString()),u[s]));if(u instanceof Date)return r.append(l,u.toISOString());if(u instanceof File)return r.append(l,u,u.name);if(u instanceof Blob)return r.append(l,u);if(typeof u=="boolean")return r.append(l,u?"1":"0");if(typeof u=="string")return r.append(l,u);if(typeof u=="number")return r.append(l,`${u}`);if(u==null)return r.append(l,"");qg(u,r,l)}function Cr(r){return new URL(r.toString(),typeof window>"u"?void 0:window.location.toString())}var lw=(r,l,u,s,c)=>{let d=typeof r=="string"?Cr(r):r;if((gf(l)||s)&&!Sf(l)&&(l=qg(l)),Sf(l))return[d,l];const[h,v]=Gf(u,d,l,c);return[Cr(h),v]};function Gf(r,l,u,s="brackets"){const c=r==="get"&&!Sf(u)&&Object.keys(u).length>0,d=/^[a-z][a-z0-9+.-]*:\/\//i.test(l.toString()),h=d||l.toString().startsWith("/")||l.toString()==="",v=!h&&!l.toString().startsWith("#")&&!l.toString().startsWith("?"),g=/^[.]{1,2}([/]|$)/.test(l.toString()),y=l.toString().includes("?")||c,m=l.toString().includes("#"),E=new URL(l.toString(),typeof window>"u"?"http://localhost":window.location.toString());if(c){const w={ignoreQueryPrefix:!0,parseArrays:!1};E.search=Sm.stringify({...Sm.parse(E.search,w),...u},{encodeValuesOnly:!0,arrayFormat:s})}return[[d?`${E.protocol}//${E.host}`:"",h?E.pathname:"",v?E.pathname.substring(g?0:1):"",y?E.search:"",m?E.hash:""].join(""),c?{}:u]}function zu(r){return r=new URL(r.href),r.hash="",r}var sv=(r,l)=>{r.hash&&!l.hash&&zu(r).href===l.href&&(l.hash=r.hash)},bf=(r,l)=>zu(r).href===zu(l).href;function ra(r){return r!==null&&typeof r=="object"&&r!==void 0&&"url"in r&&"method"in r}var iw=class{constructor(){this.componentId={},this.listeners=[],this.isFirstPageLoad=!0,this.cleared=!1}init({initialPage:r,swapComponent:l,resolveComponent:u}){return this.page=r,this.swapComponent=l,this.resolveComponent=u,this}set(r,{replace:l=!1,preserveScroll:u=!1,preserveState:s=!1}={}){this.componentId={};const c=this.componentId;return r.clearHistory&&ze.clear(),this.resolve(r.component).then(d=>{if(c!==this.componentId)return;r.rememberedState??(r.rememberedState={});const h=typeof window<"u"?window.location:new URL(r.url);return l=l||bf(Cr(r.url),h),new Promise(v=>{l?ze.replaceState(r,()=>v(null)):ze.pushState(r,()=>v(null))}).then(()=>{const v=!this.isTheSame(r);return this.page=r,this.cleared=!1,v&&this.fireEventsFor("newComponent"),this.isFirstPageLoad&&this.fireEventsFor("firstLoad"),this.isFirstPageLoad=!1,this.swap({component:d,page:r,preserveState:s}).then(()=>{u||hn.reset(),ta.fireInternalEvent("loadDeferredProps"),l||ni(r)})})})}setQuietly(r,{preserveState:l=!1}={}){return this.resolve(r.component).then(u=>(this.page=r,this.cleared=!1,ze.setCurrent(r),this.swap({component:u,page:r,preserveState:l})))}clear(){this.cleared=!0}isCleared(){return this.cleared}get(){return this.page}merge(r){this.page={...this.page,...r}}setUrlHash(r){this.page.url.includes(r)||(this.page.url+=r)}remember(r){this.page.rememberedState=r}swap({component:r,page:l,preserveState:u}){return this.swapComponent({component:r,page:l,preserveState:u})}resolve(r){return Promise.resolve(this.resolveComponent(r))}isTheSame(r){return this.page.component===r.component}on(r,l){return this.listeners.push({event:r,callback:l}),()=>{this.listeners=this.listeners.filter(u=>u.event!==r&&u.callback!==l)}}fireEventsFor(r){this.listeners.filter(l=>l.event===r).forEach(l=>l.callback())}},me=new iw,Hg=class{constructor(){this.items=[],this.processingPromise=null}add(r){return this.items.push(r),this.process()}process(){return this.processingPromise??(this.processingPromise=this.processNext().finally(()=>{this.processingPromise=null})),this.processingPromise}processNext(){const r=this.items.shift();return r?Promise.resolve(r()).then(()=>this.processNext()):Promise.resolve()}},Il=typeof window>"u",Jl=new Hg,cv=!Il&&/CriOS/.test(window.navigator.userAgent),uw=class{constructor(){this.rememberedState="rememberedState",this.scrollRegions="scrollRegions",this.preserveUrl=!1,this.current={},this.initialState=null}remember(r,l){this.replaceState({...me.get(),rememberedState:{...me.get()?.rememberedState??{},[l]:r}})}restore(r){if(!Il)return this.current[this.rememberedState]?this.current[this.rememberedState]?.[r]:this.initialState?.[this.rememberedState]?.[r]}pushState(r,l=null){if(!Il){if(this.preserveUrl){l&&l();return}this.current=r,Jl.add(()=>this.getPageData(r).then(u=>{const s=()=>{this.doPushState({page:u},r.url),l&&l()};cv?setTimeout(s):s()}))}}getPageData(r){return new Promise(l=>r.encryptHistory?W_(r).then(l):l(r))}processQueue(){return Jl.process()}decrypt(r=null){if(Il)return Promise.resolve(r??me.get());const l=r??window.history.state?.page;return this.decryptPageData(l).then(u=>{if(!u)throw new Error("Unable to decrypt history");return this.initialState===null?this.initialState=u??void 0:this.current=u??{},u})}decryptPageData(r){return r instanceof ArrayBuffer?I_(r):Promise.resolve(r)}saveScrollPositions(r){Jl.add(()=>Promise.resolve().then(()=>{window.history.state?.page&&this.doReplaceState({page:window.history.state.page,scrollRegions:r})}))}saveDocumentScrollPosition(r){Jl.add(()=>Promise.resolve().then(()=>{window.history.state?.page&&this.doReplaceState({page:window.history.state.page,documentScrollPosition:r})}))}getScrollRegions(){return window.history.state?.scrollRegions||[]}getDocumentScrollPosition(){return window.history.state?.documentScrollPosition||{top:0,left:0}}replaceState(r,l=null){if(me.merge(r),!Il){if(this.preserveUrl){l&&l();return}this.current=r,Jl.add(()=>this.getPageData(r).then(u=>{const s=()=>{this.doReplaceState({page:u},r.url),l&&l()};cv?setTimeout(s):s()}))}}doReplaceState(r,l){window.history.replaceState({...r,scrollRegions:r.scrollRegions??window.history.state?.scrollRegions,documentScrollPosition:r.documentScrollPosition??window.history.state?.documentScrollPosition},"",l)}doPushState(r,l){window.history.pushState(r,"",l)}getState(r,l){return this.current?.[r]??l}deleteState(r){this.current[r]!==void 0&&(delete this.current[r],this.replaceState(this.current))}hasAnyState(){return!!this.getAllState()}clear(){Dt.remove($a.key),Dt.remove($a.iv)}setCurrent(r){this.current=r}isValidState(r){return!!r.page}getAllState(){return this.current}};typeof window<"u"&&window.history.scrollRestoration&&(window.history.scrollRestoration="manual");var ze=new uw,ow=class{constructor(){this.internalListeners=[]}init(){typeof window<"u"&&(window.addEventListener("popstate",this.handlePopstateEvent.bind(this)),window.addEventListener("scroll",vf(hn.onWindowScroll.bind(hn),100),!0)),typeof document<"u"&&document.addEventListener("scroll",vf(hn.onScroll.bind(hn),100),!0)}onGlobalEvent(r,l){const u=s=>{const c=l(s);s.cancelable&&!s.defaultPrevented&&c===!1&&s.preventDefault()};return this.registerListener(`inertia:${r}`,u)}on(r,l){return this.internalListeners.push({event:r,listener:l}),()=>{this.internalListeners=this.internalListeners.filter(u=>u.listener!==l)}}onMissingHistoryItem(){me.clear(),this.fireInternalEvent("missingHistoryItem")}fireInternalEvent(r){this.internalListeners.filter(l=>l.event===r).forEach(l=>l.listener())}registerListener(r,l){return document.addEventListener(r,l),()=>document.removeEventListener(r,l)}handlePopstateEvent(r){const l=r.state||null;if(l===null){const u=Cr(me.get().url);u.hash=window.location.hash,ze.replaceState({...me.get(),url:u.href}),hn.reset();return}if(!ze.isValidState(l))return this.onMissingHistoryItem();ze.decrypt(l.page).then(u=>{if(me.get().version!==u.version){this.onMissingHistoryItem();return}Ht.cancelAll(),me.setQuietly(u,{preserveState:!1}).then(()=>{window.requestAnimationFrame(()=>{hn.restore(ze.getScrollRegions())}),ni(me.get())})}).catch(()=>{this.onMissingHistoryItem()})}},ta=new ow,sw=class{constructor(){this.type=this.resolveType()}resolveType(){return typeof window>"u"?"navigate":window.performance&&window.performance.getEntriesByType&&window.performance.getEntriesByType("navigation").length>0?window.performance.getEntriesByType("navigation")[0].type:"navigate"}get(){return this.type}isBackForward(){return this.type==="back_forward"}isReload(){return this.type==="reload"}},Ic=new sw,cw=class{static handle(){this.clearRememberedStateOnReload(),[this.handleBackForward,this.handleLocation,this.handleDefault].find(l=>l.bind(this)())}static clearRememberedStateOnReload(){Ic.isReload()&&ze.deleteState(ze.rememberedState)}static handleBackForward(){if(!Ic.isBackForward()||!ze.hasAnyState())return!1;const r=ze.getScrollRegions();return ze.decrypt().then(l=>{me.set(l,{preserveScroll:!0,preserveState:!0}).then(()=>{hn.restore(r),ni(me.get())})}).catch(()=>{ta.onMissingHistoryItem()}),!0}static handleLocation(){if(!Dt.exists(Dt.locationVisitKey))return!1;const r=Dt.get(Dt.locationVisitKey)||{};return Dt.remove(Dt.locationVisitKey),typeof window<"u"&&me.setUrlHash(window.location.hash),ze.decrypt(me.get()).then(()=>{const l=ze.getState(ze.rememberedState,{}),u=ze.getScrollRegions();me.remember(l),me.set(me.get(),{preserveScroll:r.preserveScroll,preserveState:!0}).then(()=>{r.preserveScroll&&hn.restore(u),ni(me.get())})}).catch(()=>{ta.onMissingHistoryItem()}),!0}static handleDefault(){typeof window<"u"&&me.setUrlHash(window.location.hash),me.set(me.get(),{preserveScroll:!0,preserveState:!0}).then(()=>{Ic.isReload()&&hn.restore(ze.getScrollRegions()),ni(me.get())})}},fw=class{constructor(r,l,u){this.id=null,this.throttle=!1,this.keepAlive=!1,this.cbCount=0,this.keepAlive=u.keepAlive??!1,this.cb=l,this.interval=r,(u.autoStart??!0)&&this.start()}stop(){this.id&&clearInterval(this.id)}start(){typeof window>"u"||(this.stop(),this.id=window.setInterval(()=>{(!this.throttle||this.cbCount%10===0)&&this.cb(),this.throttle&&this.cbCount++},this.interval))}isInBackground(r){this.throttle=this.keepAlive?!1:r,this.throttle&&(this.cbCount=0)}},dw=class{constructor(){this.polls=[],this.setupVisibilityListener()}add(r,l,u){const s=new fw(r,l,u);return this.polls.push(s),{stop:()=>s.stop(),start:()=>s.start()}}clear(){this.polls.forEach(r=>r.stop()),this.polls=[]}setupVisibilityListener(){typeof document>"u"||document.addEventListener("visibilitychange",()=>{this.polls.forEach(r=>r.isInBackground(document.hidden))},!1)}},hw=new dw,Bg=(r,l,u)=>{if(r===l)return!0;for(const s in r)if(!u.includes(s)&&r[s]!==l[s]&&!pw(r[s],l[s]))return!1;return!0},pw=(r,l)=>{switch(typeof r){case"object":return Bg(r,l,[]);case"function":return r.toString()===l.toString();default:return r===l}},yw={ms:1,s:1e3,m:1e3*60,h:1e3*60*60,d:1e3*60*60*24},fv=r=>{if(typeof r=="number")return r;for(const[l,u]of Object.entries(yw))if(r.endsWith(l))return parseFloat(r)*u;return parseInt(r)},mw=class{constructor(){this.cached=[],this.inFlightRequests=[],this.removalTimers=[],this.currentUseId=null}add(r,l,{cacheFor:u,cacheTags:s}){if(this.findInFlight(r))return Promise.resolve();const d=this.findCached(r);if(!r.fresh&&d&&d.staleTimestamp>Date.now())return Promise.resolve();const[h,v]=this.extractStaleValues(u),g=new Promise((y,m)=>{l({...r,onCancel:()=>{this.remove(r),r.onCancel(),m()},onError:E=>{this.remove(r),r.onError(E),m()},onPrefetching(E){r.onPrefetching(E)},onPrefetched(E,w){r.onPrefetched(E,w)},onPrefetchResponse(E){y(E)},onPrefetchError(E){kn.removeFromInFlight(r),m(E)}})}).then(y=>(this.remove(r),this.cached.push({params:{...r},staleTimestamp:Date.now()+h,response:g,singleUse:v===0,timestamp:Date.now(),inFlight:!1,tags:Array.isArray(s)?s:[s]}),this.scheduleForRemoval(r,v),this.removeFromInFlight(r),y.handlePrefetch(),y));return this.inFlightRequests.push({params:{...r},response:g,staleTimestamp:null,inFlight:!0}),g}removeAll(){this.cached=[],this.removalTimers.forEach(r=>{clearTimeout(r.timer)}),this.removalTimers=[]}removeByTags(r){this.cached=this.cached.filter(l=>!l.tags.some(u=>r.includes(u)))}remove(r){this.cached=this.cached.filter(l=>!this.paramsAreEqual(l.params,r)),this.clearTimer(r)}removeFromInFlight(r){this.inFlightRequests=this.inFlightRequests.filter(l=>!this.paramsAreEqual(l.params,r))}extractStaleValues(r){const[l,u]=this.cacheForToStaleAndExpires(r);return[fv(l),fv(u)]}cacheForToStaleAndExpires(r){if(!Array.isArray(r))return[r,r];switch(r.length){case 0:return[0,0];case 1:return[r[0],r[0]];default:return[r[0],r[1]]}}clearTimer(r){const l=this.removalTimers.find(u=>this.paramsAreEqual(u.params,r));l&&(clearTimeout(l.timer),this.removalTimers=this.removalTimers.filter(u=>u!==l))}scheduleForRemoval(r,l){if(!(typeof window>"u")&&(this.clearTimer(r),l>0)){const u=window.setTimeout(()=>this.remove(r),l);this.removalTimers.push({params:r,timer:u})}}get(r){return this.findCached(r)||this.findInFlight(r)}use(r,l){const u=`${l.url.pathname}-${Date.now()}-${Math.random().toString(36).substring(7)}`;return this.currentUseId=u,r.response.then(s=>{if(this.currentUseId===u)return s.mergeParams({...l,onPrefetched:()=>{}}),this.removeSingleUseItems(l),s.handle()})}removeSingleUseItems(r){this.cached=this.cached.filter(l=>this.paramsAreEqual(l.params,r)?!l.singleUse:!0)}findCached(r){return this.cached.find(l=>this.paramsAreEqual(l.params,r))||null}findInFlight(r){return this.inFlightRequests.find(l=>this.paramsAreEqual(l.params,r))||null}withoutPurposePrefetchHeader(r){const l=Wl(r);return l.headers.Purpose==="prefetch"&&delete l.headers.Purpose,l}paramsAreEqual(r,l){return Bg(this.withoutPurposePrefetchHeader(r),this.withoutPurposePrefetchHeader(l),["showProgress","replace","prefetch","onBefore","onStart","onProgress","onFinish","onCancel","onSuccess","onError","onPrefetched","onCancelToken","onPrefetching","async"])}},kn=new mw,vw=class Lg{constructor(l){if(this.callbacks=[],!l.prefetch)this.params=l;else{const u={onBefore:this.wrapCallback(l,"onBefore"),onStart:this.wrapCallback(l,"onStart"),onProgress:this.wrapCallback(l,"onProgress"),onFinish:this.wrapCallback(l,"onFinish"),onCancel:this.wrapCallback(l,"onCancel"),onSuccess:this.wrapCallback(l,"onSuccess"),onError:this.wrapCallback(l,"onError"),onCancelToken:this.wrapCallback(l,"onCancelToken"),onPrefetched:this.wrapCallback(l,"onPrefetched"),onPrefetching:this.wrapCallback(l,"onPrefetching")};this.params={...l,...u,onPrefetchResponse:l.onPrefetchResponse||(()=>{}),onPrefetchError:l.onPrefetchError||(()=>{})}}}static create(l){return new Lg(l)}data(){return this.params.method==="get"?null:this.params.data}queryParams(){return this.params.method==="get"?this.params.data:{}}isPartial(){return this.params.only.length>0||this.params.except.length>0||this.params.reset.length>0}onCancelToken(l){this.params.onCancelToken({cancel:l})}markAsFinished(){this.params.completed=!0,this.params.cancelled=!1,this.params.interrupted=!1}markAsCancelled({cancelled:l=!0,interrupted:u=!1}){this.params.onCancel(),this.params.completed=!1,this.params.cancelled=l,this.params.interrupted=u}wasCancelledAtAll(){return this.params.cancelled||this.params.interrupted}onFinish(){this.params.onFinish(this.params)}onStart(){this.params.onStart(this.params)}onPrefetching(){this.params.onPrefetching(this.params)}onPrefetchResponse(l){this.params.onPrefetchResponse&&this.params.onPrefetchResponse(l)}onPrefetchError(l){this.params.onPrefetchError&&this.params.onPrefetchError(l)}all(){return this.params}headers(){const l={...this.params.headers};this.isPartial()&&(l["X-Inertia-Partial-Component"]=me.get().component);const u=this.params.only.concat(this.params.reset);return u.length>0&&(l["X-Inertia-Partial-Data"]=u.join(",")),this.params.except.length>0&&(l["X-Inertia-Partial-Except"]=this.params.except.join(",")),this.params.reset.length>0&&(l["X-Inertia-Reset"]=this.params.reset.join(",")),this.params.errorBag&&this.params.errorBag.length>0&&(l["X-Inertia-Error-Bag"]=this.params.errorBag),l}setPreserveOptions(l){this.params.preserveScroll=this.resolvePreserveOption(this.params.preserveScroll,l),this.params.preserveState=this.resolvePreserveOption(this.params.preserveState,l)}runCallbacks(){this.callbacks.forEach(({name:l,args:u})=>{this.params[l](...u)})}merge(l){this.params={...this.params,...l}}wrapCallback(l,u){return(...s)=>{this.recordCallback(u,s),l[u](...s)}}recordCallback(l,u){this.callbacks.push({name:l,args:u})}resolvePreserveOption(l,u){return typeof l=="function"?l(u):l==="errors"?Object.keys(u.props.errors||{}).length>0:l}},gw={modal:null,listener:null,show(r){typeof r=="object"&&(r=`All Inertia requests must receive a valid Inertia response, however a plain JSON response was received.
${JSON.stringify(r)}`);const l=document.createElement("html");l.innerHTML=r,l.querySelectorAll("a").forEach(s=>s.setAttribute("target","_top")),this.modal=document.createElement("div"),this.modal.style.position="fixed",this.modal.style.width="100vw",this.modal.style.height="100vh",this.modal.style.padding="50px",this.modal.style.boxSizing="border-box",this.modal.style.backgroundColor="rgba(0, 0, 0, .6)",this.modal.style.zIndex=2e5,this.modal.addEventListener("click",()=>this.hide());const u=document.createElement("iframe");if(u.style.backgroundColor="white",u.style.borderRadius="5px",u.style.width="100%",u.style.height="100%",this.modal.appendChild(u),document.body.prepend(this.modal),document.body.style.overflow="hidden",!u.contentWindow)throw new Error("iframe not yet ready.");u.contentWindow.document.open(),u.contentWindow.document.write(l.outerHTML),u.contentWindow.document.close(),this.listener=this.hideOnEscape.bind(this),document.addEventListener("keydown",this.listener)},hide(){this.modal.outerHTML="",this.modal=null,document.body.style.overflow="visible",document.removeEventListener("keydown",this.listener)},hideOnEscape(r){r.keyCode===27&&this.hide()}},Sw=new Hg,dv=class jg{constructor(l,u,s){this.requestParams=l,this.response=u,this.originatingPage=s}static create(l,u,s){return new jg(l,u,s)}async handlePrefetch(){bf(this.requestParams.all().url,window.location)&&this.handle()}async handle(){return Sw.add(()=>this.process())}async process(){if(this.requestParams.all().prefetch)return this.requestParams.all().prefetch=!1,this.requestParams.all().onPrefetched(this.response,this.requestParams.all()),J_(this.response,this.requestParams.all()),Promise.resolve();if(this.requestParams.runCallbacks(),!this.isInertiaResponse())return this.handleNonInertiaResponse();await ze.processQueue(),ze.preserveUrl=this.requestParams.all().preserveUrl,await this.setPage();const l=me.get().props.errors||{};if(Object.keys(l).length>0){const u=this.getScopedErrors(l);return V_(u),this.requestParams.all().onError(u)}Ht.flushByCacheTags(this.requestParams.all().invalidateCacheTags||[]),F_(me.get()),await this.requestParams.all().onSuccess(me.get()),ze.preserveUrl=!1}mergeParams(l){this.requestParams.merge(l)}async handleNonInertiaResponse(){if(this.isLocationVisit()){const u=Cr(this.getHeader("x-inertia-location"));return sv(this.requestParams.all().url,u),this.locationVisit(u)}const l={...this.response,data:this.getDataFromResponse(this.response.data)};if($_(l))return gw.show(l.data)}isInertiaResponse(){return this.hasHeader("x-inertia")}hasStatus(l){return this.response.status===l}getHeader(l){return this.response.headers[l]}hasHeader(l){return this.getHeader(l)!==void 0}isLocationVisit(){return this.hasStatus(409)&&this.hasHeader("x-inertia-location")}locationVisit(l){try{if(Dt.set(Dt.locationVisitKey,{preserveScroll:this.requestParams.all().preserveScroll===!0}),typeof window>"u")return;bf(window.location,l)?window.location.reload():window.location.href=l.href}catch{return!1}}async setPage(){const l=this.getDataFromResponse(this.response.data);return this.shouldSetPage(l)?(this.mergeProps(l),await this.setRememberedState(l),this.requestParams.setPreserveOptions(l),l.url=ze.preserveUrl?me.get().url:this.pageUrl(l),me.set(l,{replace:this.requestParams.all().replace,preserveScroll:this.requestParams.all().preserveScroll,preserveState:this.requestParams.all().preserveState})):Promise.resolve()}getDataFromResponse(l){if(typeof l!="string")return l;try{return JSON.parse(l)}catch{return l}}shouldSetPage(l){if(!this.requestParams.all().async||this.originatingPage.component!==l.component)return!0;if(this.originatingPage.component!==me.get().component)return!1;const u=Cr(this.originatingPage.url),s=Cr(me.get().url);return u.origin===s.origin&&u.pathname===s.pathname}pageUrl(l){const u=Cr(l.url);return sv(this.requestParams.all().url,u),u.pathname+u.search+u.hash}mergeProps(l){if(!this.requestParams.isPartial()||l.component!==me.get().component)return;const u=l.mergeProps||[],s=l.deepMergeProps||[],c=l.matchPropsOn||[];u.forEach(d=>{const h=l.props[d];Array.isArray(h)?l.props[d]=this.mergeOrMatchItems(me.get().props[d]||[],h,d,c):typeof h=="object"&&h!==null&&(l.props[d]={...me.get().props[d]||[],...h})}),s.forEach(d=>{const h=l.props[d],v=me.get().props[d],g=(y,m,E)=>Array.isArray(m)?this.mergeOrMatchItems(y,m,E,c):typeof m=="object"&&m!==null?Object.keys(m).reduce((w,O)=>(w[O]=g(y?y[O]:void 0,m[O],`${E}.${O}`),w),{...y}):m;l.props[d]=g(v,h,d)}),l.props={...me.get().props,...l.props}}mergeOrMatchItems(l,u,s,c){const d=c.find(y=>y.split(".").slice(0,-1).join(".")===s);if(!d)return[...Array.isArray(l)?l:[],...u];const h=d.split(".").pop()||"",v=Array.isArray(l)?l:[],g=new Map;return v.forEach(y=>{y&&typeof y=="object"&&h in y?g.set(y[h],y):g.set(Symbol(),y)}),u.forEach(y=>{y&&typeof y=="object"&&h in y?g.set(y[h],y):g.set(Symbol(),y)}),Array.from(g.values())}async setRememberedState(l){const u=await ze.getState(ze.rememberedState,{});this.requestParams.all().preserveState&&u&&l.component===me.get().component&&(l.rememberedState=u)}getScopedErrors(l){return this.requestParams.all().errorBag?l[this.requestParams.all().errorBag||""]||{}:l}},hv=class Gg{constructor(l,u){this.page=u,this.requestHasFinished=!1,this.requestParams=vw.create(l),this.cancelToken=new AbortController}static create(l,u){return new Gg(l,u)}async send(){this.requestParams.onCancelToken(()=>this.cancel({cancelled:!0})),K_(this.requestParams.all()),this.requestParams.onStart(),this.requestParams.all().prefetch&&(this.requestParams.onPrefetching(),k_(this.requestParams.all()));const l=this.requestParams.all().prefetch;return tt({method:this.requestParams.all().method,url:zu(this.requestParams.all().url).href,data:this.requestParams.data(),params:this.requestParams.queryParams(),signal:this.cancelToken.signal,headers:this.getHeaders(),onUploadProgress:this.onProgress.bind(this),responseType:"text"}).then(u=>(this.response=dv.create(this.requestParams,u,this.page),this.response.handle())).catch(u=>u?.response?(this.response=dv.create(this.requestParams,u.response,this.page),this.response.handle()):Promise.reject(u)).catch(u=>{if(!tt.isCancel(u)&&X_(u))return l&&this.requestParams.onPrefetchError(u),Promise.reject(u)}).finally(()=>{this.finish(),l&&this.response&&this.requestParams.onPrefetchResponse(this.response)})}finish(){this.requestParams.wasCancelledAtAll()||(this.requestParams.markAsFinished(),this.fireFinishEvents())}fireFinishEvents(){this.requestHasFinished||(this.requestHasFinished=!0,Q_(this.requestParams.all()),this.requestParams.onFinish())}cancel({cancelled:l=!1,interrupted:u=!1}){this.requestHasFinished||(this.cancelToken.abort(),this.requestParams.markAsCancelled({cancelled:l,interrupted:u}),this.fireFinishEvents())}onProgress(l){this.requestParams.data()instanceof FormData&&(l.percentage=l.progress?Math.round(l.progress*100):0,Z_(l),this.requestParams.all().onProgress(l))}getHeaders(){const l={...this.requestParams.headers(),Accept:"text/html, application/xhtml+xml","X-Requested-With":"XMLHttpRequest","X-Inertia":!0};return me.get().version&&(l["X-Inertia-Version"]=me.get().version),l}},pv=class{constructor({maxConcurrent:r,interruptible:l}){this.requests=[],this.maxConcurrent=r,this.interruptible=l}send(r){this.requests.push(r),r.send().then(()=>{this.requests=this.requests.filter(l=>l!==r)})}interruptInFlight(){this.cancel({interrupted:!0},!1)}cancelInFlight(){this.cancel({cancelled:!0},!0)}cancel({cancelled:r=!1,interrupted:l=!1}={},u){if(!this.shouldCancel(u))return;this.requests.shift()?.cancel({interrupted:l,cancelled:r})}shouldCancel(r){return r?!0:this.interruptible&&this.requests.length>=this.maxConcurrent}},bw=class{constructor(){this.syncRequestStream=new pv({maxConcurrent:1,interruptible:!0}),this.asyncRequestStream=new pv({maxConcurrent:1/0,interruptible:!1})}init({initialPage:r,resolveComponent:l,swapComponent:u}){me.init({initialPage:r,resolveComponent:l,swapComponent:u}),cw.handle(),ta.init(),ta.on("missingHistoryItem",()=>{typeof window<"u"&&this.visit(window.location.href,{preserveState:!0,preserveScroll:!0,replace:!0})}),ta.on("loadDeferredProps",()=>{this.loadDeferredProps()})}get(r,l={},u={}){return this.visit(r,{...u,method:"get",data:l})}post(r,l={},u={}){return this.visit(r,{preserveState:!0,...u,method:"post",data:l})}put(r,l={},u={}){return this.visit(r,{preserveState:!0,...u,method:"put",data:l})}patch(r,l={},u={}){return this.visit(r,{preserveState:!0,...u,method:"patch",data:l})}delete(r,l={}){return this.visit(r,{preserveState:!0,...l,method:"delete"})}reload(r={}){if(!(typeof window>"u"))return this.visit(window.location.href,{...r,preserveScroll:!0,preserveState:!0,async:!0,headers:{...r.headers||{},"Cache-Control":"no-cache"}})}remember(r,l="default"){ze.remember(r,l)}restore(r="default"){return ze.restore(r)}on(r,l){return typeof window>"u"?()=>{}:ta.onGlobalEvent(r,l)}cancel(){this.syncRequestStream.cancelInFlight()}cancelAll(){this.asyncRequestStream.cancelInFlight(),this.syncRequestStream.cancelInFlight()}poll(r,l={},u={}){return hw.add(r,()=>this.reload(l),{autoStart:u.autoStart??!0,keepAlive:u.keepAlive??!1})}visit(r,l={}){const u=this.getPendingVisit(r,{...l,showProgress:l.showProgress??!l.async}),s=this.getVisitEvents(l);if(s.onBefore(u)===!1||!ov(u))return;const c=u.async?this.asyncRequestStream:this.syncRequestStream;c.interruptInFlight(),!me.isCleared()&&!u.preserveUrl&&hn.save();const d={...u,...s},h=kn.get(d);h?(vv(h.inFlight),kn.use(h,d)):(vv(!0),c.send(hv.create(d,me.get())))}getCached(r,l={}){return kn.findCached(this.getPrefetchParams(r,l))}flush(r,l={}){kn.remove(this.getPrefetchParams(r,l))}flushAll(){kn.removeAll()}flushByCacheTags(r){kn.removeByTags(Array.isArray(r)?r:[r])}getPrefetching(r,l={}){return kn.findInFlight(this.getPrefetchParams(r,l))}prefetch(r,l={},u={}){if((l.method??(ra(r)?r.method:"get"))!=="get")throw new Error("Prefetch requests must use the GET method");const c=this.getPendingVisit(r,{...l,async:!0,showProgress:!1,prefetch:!0}),d=c.url.origin+c.url.pathname+c.url.search,h=window.location.origin+window.location.pathname+window.location.search;if(d===h)return;const v=this.getVisitEvents(l);if(v.onBefore(c)===!1||!ov(c))return;Zg(),this.asyncRequestStream.interruptInFlight();const g={...c,...v};new Promise(m=>{const E=()=>{me.get()?m():setTimeout(E,50)};E()}).then(()=>{kn.add(g,m=>{this.asyncRequestStream.send(hv.create(m,me.get()))},{cacheFor:3e4,cacheTags:[],...u})})}clearHistory(){ze.clear()}decryptHistory(){return ze.decrypt()}resolveComponent(r){return me.resolve(r)}replace(r){this.clientVisit(r,{replace:!0})}push(r){this.clientVisit(r)}clientVisit(r,{replace:l=!1}={}){const u=me.get(),s=typeof r.props=="function"?r.props(u.props):r.props??u.props,{onError:c,onFinish:d,onSuccess:h,...v}=r;me.set({...u,...v,props:s},{replace:l,preserveScroll:r.preserveScroll,preserveState:r.preserveState}).then(()=>{const g=me.get().props.errors||{};if(Object.keys(g).length===0)return h?.(me.get());const y=r.errorBag?g[r.errorBag||""]||{}:g;return c?.(y)}).finally(()=>d?.(r))}getPrefetchParams(r,l){return{...this.getPendingVisit(r,{...l,async:!0,showProgress:!1,prefetch:!0}),...this.getVisitEvents(l)}}getPendingVisit(r,l,u={}){if(ra(r)){const v=r;r=v.url,l.method=l.method??v.method}const s={method:"get",data:{},replace:!1,preserveScroll:!1,preserveState:!1,only:[],except:[],headers:{},errorBag:"",forceFormData:!1,queryStringArrayFormat:"brackets",async:!1,showProgress:!0,fresh:!1,reset:[],preserveUrl:!1,prefetch:!1,invalidateCacheTags:[],...l},[c,d]=lw(r,s.data,s.method,s.forceFormData,s.queryStringArrayFormat),h={cancelled:!1,completed:!1,interrupted:!1,...s,...u,url:c,data:d};return h.prefetch&&(h.headers.Purpose="prefetch"),h}getVisitEvents(r){return{onCancelToken:r.onCancelToken||(()=>{}),onBefore:r.onBefore||(()=>{}),onStart:r.onStart||(()=>{}),onProgress:r.onProgress||(()=>{}),onFinish:r.onFinish||(()=>{}),onCancel:r.onCancel||(()=>{}),onSuccess:r.onSuccess||(()=>{}),onError:r.onError||(()=>{}),onPrefetched:r.onPrefetched||(()=>{}),onPrefetching:r.onPrefetching||(()=>{})}}loadDeferredProps(){const r=me.get()?.deferredProps;r&&Object.entries(r).forEach(([l,u])=>{this.reload({only:u})})}};function Ew(r){if(!r.includes("."))return r;const l=u=>u.startsWith("[")&&u.endsWith("]")?u:u.split(".").reduce((s,c,d)=>d===0?c:`${s}[${c}]`);return r.replace(/\\\./g,"__ESCAPED_DOT__").split(/(\[[^\]]*\])/).filter(Boolean).map(l).join("").replace(/__ESCAPED_DOT__/g,".")}function Aw(r){const l=[],u=/([^\[\]]+)|\[(\d*)\]/g;let s;for(;(s=u.exec(r))!==null;)s[1]!==void 0?l.push(s[1]):s[2]!==void 0&&l.push(s[2]===""?"":Number(s[2]));return l}function yv(r){const l={};for(const[u,s]of r.entries()){if(s instanceof File&&s.size===0&&s.name==="")continue;const c=Aw(Ew(u));if(c[c.length-1]===""){const d=c.slice(0,-1),h=Wv(l,d);Array.isArray(h)?h.push(s):ti(l,d,[s]);continue}ti(l,c,s)}return l}var Tw={buildDOMElement(r){const l=document.createElement("template");l.innerHTML=r;const u=l.content.firstChild;if(!r.startsWith("