@gfed-medusa/sf-lib-common 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/components/breadcrumbs/index.d.ts.map +1 -1
  2. package/dist/components/breadcrumbs/index.js.map +1 -1
  3. package/dist/components/cart-mismatch-banner/index.d.ts +2 -2
  4. package/dist/components/cart-mismatch-banner/index.js +1 -1
  5. package/dist/components/delete-button/index.d.ts +2 -2
  6. package/dist/components/delete-button/index.js +1 -1
  7. package/dist/components/error-message/index.d.ts +2 -2
  8. package/dist/components/error-message/index.d.ts.map +1 -1
  9. package/dist/components/free-shipping-price-nudge/index.d.ts +2 -2
  10. package/dist/components/free-shipping-price-nudge/index.d.ts.map +1 -1
  11. package/dist/components/free-shipping-price-nudge/index.js +2 -2
  12. package/dist/components/free-shipping-price-nudge/index.js.map +1 -1
  13. package/dist/components/interactive-link/index.d.ts +2 -2
  14. package/dist/components/interactive-link/index.d.ts.map +1 -1
  15. package/dist/components/interactive-link/index.js +1 -1
  16. package/dist/components/line-item-options/index.d.ts +2 -2
  17. package/dist/components/line-item-price/index.d.ts +2 -2
  18. package/dist/components/localized-client-link/index.d.ts +2 -2
  19. package/dist/components/localized-client-link/index.d.ts.map +1 -1
  20. package/dist/components/localized-client-link/index.js +1 -5
  21. package/dist/components/localized-client-link/index.js.map +1 -1
  22. package/dist/components/modal/index.d.ts +2 -2
  23. package/dist/components/modal/index.d.ts.map +1 -1
  24. package/dist/components/modal/index.js +1 -1
  25. package/dist/components/preview-price/index.d.ts +2 -2
  26. package/dist/components/preview-price/index.d.ts.map +1 -1
  27. package/dist/components/product-card/index.d.ts +2 -2
  28. package/dist/components/product-card/index.d.ts.map +1 -1
  29. package/dist/components/product-card/index.js +2 -2
  30. package/dist/components/product-card/index.js.map +1 -1
  31. package/dist/components/product-preview/index.d.ts +2 -2
  32. package/dist/components/product-preview/index.js +1 -1
  33. package/dist/components/submit-button/index.d.ts +2 -2
  34. package/dist/components/submit-button/index.d.ts.map +1 -1
  35. package/dist/lib/context/apollo-context.d.ts +2 -2
  36. package/dist/lib/context/apollo-context.d.ts.map +1 -1
  37. package/dist/lib/context/modal-context.d.ts +2 -2
  38. package/dist/lib/context/modal-context.d.ts.map +1 -1
  39. package/dist/lib/data/cart.d.ts +7 -17
  40. package/dist/lib/data/cart.d.ts.map +1 -1
  41. package/dist/lib/data/cart.js +23 -46
  42. package/dist/lib/data/cart.js.map +1 -1
  43. package/dist/lib/data/context.d.ts +27 -0
  44. package/dist/lib/data/context.d.ts.map +1 -0
  45. package/dist/lib/data/context.js +18 -0
  46. package/dist/lib/data/context.js.map +1 -0
  47. package/dist/lib/data/cookies.d.ts +12 -10
  48. package/dist/lib/data/cookies.d.ts.map +1 -1
  49. package/dist/lib/data/cookies.js +25 -35
  50. package/dist/lib/data/cookies.js.map +1 -1
  51. package/dist/lib/data/customer.d.ts +3 -2
  52. package/dist/lib/data/customer.d.ts.map +1 -1
  53. package/dist/lib/data/customer.js +11 -10
  54. package/dist/lib/data/customer.js.map +1 -1
  55. package/dist/lib/data/next-context.d.ts +8 -0
  56. package/dist/lib/data/next-context.d.ts.map +1 -0
  57. package/dist/lib/data/next-context.js +65 -0
  58. package/dist/lib/data/next-context.js.map +1 -0
  59. package/dist/lib/data/orders.js +1 -1
  60. package/dist/lib/data/regions.d.ts +3 -2
  61. package/dist/lib/data/regions.d.ts.map +1 -1
  62. package/dist/lib/data/regions.js +5 -5
  63. package/dist/lib/data/regions.js.map +1 -1
  64. package/dist/lib/gql/fragments/customer.d.ts +3 -3
  65. package/dist/lib/gql/fragments/customer.d.ts.map +1 -1
  66. package/dist/lib/gql/fragments/product.d.ts +8 -8
  67. package/dist/lib/gql/mutations/cart.d.ts +4 -4
  68. package/dist/lib/gql/queries/cart.d.ts +2 -2
  69. package/dist/lib/gql/queries/collections.d.ts +2 -2
  70. package/dist/lib/gql/queries/customer.d.ts +2 -2
  71. package/dist/lib/gql/queries/footer.d.ts +2 -2
  72. package/dist/lib/gql/queries/product.d.ts +3 -3
  73. package/dist/lib/gql/queries/product.d.ts.map +1 -1
  74. package/dist/lib/utils/env.js +1 -1
  75. package/dist/lib/utils/env.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/components/cart-button/index.d.ts +0 -7
  78. package/dist/components/cart-button/index.d.ts.map +0 -1
  79. package/dist/components/cart-button/index.js +0 -12
  80. package/dist/components/cart-button/index.js.map +0 -1
  81. package/dist/components/cart-dropdown/index.d.ts +0 -12
  82. package/dist/components/cart-dropdown/index.d.ts.map +0 -1
  83. package/dist/components/cart-dropdown/index.js +0 -196
  84. package/dist/components/cart-dropdown/index.js.map +0 -1
  85. package/dist/components/footer/index.d.ts +0 -7
  86. package/dist/components/footer/index.d.ts.map +0 -1
  87. package/dist/components/footer/index.js +0 -110
  88. package/dist/components/footer/index.js.map +0 -1
  89. package/dist/components/layout-country-select/index.d.ts +0 -16
  90. package/dist/components/layout-country-select/index.d.ts.map +0 -1
  91. package/dist/components/layout-country-select/index.js +0 -92
  92. package/dist/components/layout-country-select/index.js.map +0 -1
  93. package/dist/components/nav/index.d.ts +0 -7
  94. package/dist/components/nav/index.d.ts.map +0 -1
  95. package/dist/components/nav/index.js +0 -66
  96. package/dist/components/nav/index.js.map +0 -1
  97. package/dist/components/portable-text/index.d.ts +0 -13
  98. package/dist/components/portable-text/index.d.ts.map +0 -1
  99. package/dist/components/portable-text/index.js +0 -330
  100. package/dist/components/portable-text/index.js.map +0 -1
  101. package/dist/components/search-modal/index.d.ts +0 -12
  102. package/dist/components/search-modal/index.d.ts.map +0 -1
  103. package/dist/components/search-modal/index.js +0 -138
  104. package/dist/components/search-modal/index.js.map +0 -1
  105. package/dist/components/side-menu/index.d.ts +0 -12
  106. package/dist/components/side-menu/index.d.ts.map +0 -1
  107. package/dist/components/side-menu/index.js +0 -99
  108. package/dist/components/side-menu/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/search-modal/index.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport Image from 'next/image';\nimport { usePathname } from 'next/navigation';\n\nimport DOMPurify from 'isomorphic-dompurify';\n\nimport { PlaceholderImage } from '@gfed-medusa/sf-lib-ui/icons/placeholder-image';\nimport { cn } from '@gfed-medusa/sf-lib-ui/lib/utils';\nimport { Button } from '@medusajs/ui';\n\nimport { useSearch } from '@/lib/hooks/use-search';\nimport { ProductHit } from '@/types/graphql';\n\nimport { Modal } from '../modal';\n\ntype SearchModalProps = {\n buttonClassName?: string;\n};\n\nfunction SearchModal({ buttonClassName }: SearchModalProps) {\n const [isOpen, setIsOpen] = useState(false);\n const pathname = usePathname();\n\n const { query, setQuery, results, loading, error, isTyping } = useSearch();\n\n useEffect(() => {\n setIsOpen(false);\n }, [pathname]);\n\n useEffect(() => {\n if (!isOpen) {\n setQuery('');\n }\n }, [isOpen, setQuery]);\n\n return (\n <>\n <div\n className={cn(\n 'small:flex hidden h-full items-center gap-x-6',\n buttonClassName\n )}\n >\n <Button\n onClick={() => setIsOpen(true)}\n variant=\"transparent\"\n className=\"text-small-regular hover:text-ui-fg-base px-0 hover:bg-transparent focus:!bg-transparent\"\n data-testid=\"search-button\"\n >\n Search\n </Button>\n </div>\n <Modal\n isOpen={isOpen}\n close={() => setIsOpen(false)}\n aria-label=\"Search modal\"\n >\n <div className=\"flex h-full max-h-[75vh] min-h-0 flex-col\">\n <div className=\"shrink-0\">\n <SearchBox query={query} setQuery={setQuery} loading={loading} />\n </div>\n <div className=\"mt-4 min-h-0 flex-1 overflow-y-auto\">\n <SearchResults\n results={results}\n loading={loading}\n error={error}\n query={query}\n isTyping={isTyping}\n />\n </div>\n </div>\n </Modal>\n </>\n );\n}\n\nconst SearchBox = ({\n query,\n setQuery,\n loading,\n}: {\n query: string;\n setQuery: (query: string) => void;\n loading: boolean;\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n }, [loading]);\n\n return (\n <div className=\"relative w-full\">\n <input\n ref={inputRef}\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Search products...\"\n className=\"w-full rounded-md border border-gray-300 px-4 py-2 focus:outline-none focus-visible:outline-2 focus-visible:outline-blue-500\"\n disabled={loading}\n autoFocus\n data-testid=\"search-input\"\n />\n </div>\n );\n};\n\nconst SearchResults = ({\n results,\n loading,\n error,\n query,\n isTyping,\n}: {\n results: { items: ProductHit[] } | null;\n loading: boolean;\n error: string | null;\n query: string;\n isTyping: boolean;\n}) => {\n if (loading) {\n return (\n <div className=\"flex min-h-full items-center justify-center\">\n <div className=\"text-center\">\n <div className=\"mx-auto h-8 w-8 animate-spin rounded-full border-b-2 border-blue-500\"></div>\n <p className=\"mt-2 text-sm text-gray-500\">Searching...</p>\n </div>\n </div>\n );\n }\n\n if (error) {\n return (\n <div className=\"flex min-h-full items-center justify-center text-rose-600\">\n <p>Error: {error}</p>\n </div>\n );\n }\n\n if (\n query.trim() &&\n !isTyping &&\n !loading &&\n (!results || !results.items || results.items.length === 0)\n ) {\n return (\n <div className=\"flex min-h-full items-center justify-center text-gray-500\">\n <p>No products found</p>\n </div>\n );\n }\n\n if (!query.trim()) {\n return null;\n }\n\n return (\n <div>\n {results?.items?.map((hit: ProductHit) => (\n <Hit key={hit.id} hit={hit} />\n ))}\n </div>\n );\n};\n\nconst Hit = ({ hit }: { hit: ProductHit }) => {\n return (\n <div\n className=\"relative mt-4 flex flex-row gap-x-2\"\n data-testid=\"search-hit\"\n >\n <div className=\"relative h-[100px] w-[100px] shrink-0 overflow-hidden border border-gray-200\">\n {hit.thumbnail ? (\n <Image\n src={hit.thumbnail}\n alt={hit.title ?? 'Product Image'}\n width={100}\n height={100}\n className=\"aspect-square object-cover\"\n />\n ) : (\n <div className=\"border-grey-400 flex h-[125px] w-[100px] items-center justify-center self-start border\">\n <PlaceholderImage size={40} />\n </div>\n )}\n </div>\n <div className=\"flex flex-col gap-y-1\">\n <h3>{hit.title}</h3>\n <p\n className=\"text-sm text-gray-500\"\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(hit.description ?? ''),\n }}\n />\n </div>\n <a\n href={`/products/${hit.handle}`}\n className=\"absolute top-0 right-0 h-full w-full\"\n aria-label={`View Product: ${hit.title}`}\n />\n </div>\n );\n};\n\nexport { SearchModal };\n"],"mappings":";;;;;;;;;;;;;;AAsBA,SAAS,YAAY,EAAE,mBAAqC;CAC1D,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAM,WAAW,aAAa;CAE9B,MAAM,EAAE,OAAO,UAAU,SAAS,SAAS,OAAO,aAAa,WAAW;AAE1E,iBAAgB;AACd,YAAU,MAAM;IACf,CAAC,SAAS,CAAC;AAEd,iBAAgB;AACd,MAAI,CAAC,OACH,UAAS,GAAG;IAEb,CAAC,QAAQ,SAAS,CAAC;AAEtB,QACE,8CACE,oBAAC;EACC,WAAW,GACT,iDACA,gBACD;YAED,oBAAC;GACC,eAAe,UAAU,KAAK;GAC9B,SAAQ;GACR,WAAU;GACV,eAAY;aACb;IAEQ;GACL,EACN,oBAAC;EACS;EACR,aAAa,UAAU,MAAM;EAC7B,cAAW;YAEX,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAI,WAAU;cACb,oBAAC;KAAiB;KAAiB;KAAmB;MAAW;KAC7D,EACN,oBAAC;IAAI,WAAU;cACb,oBAAC;KACU;KACA;KACF;KACA;KACG;MACV;KACE;IACF;GACA,IACP;;AAIP,MAAM,aAAa,EACjB,OACA,UACA,cAKI;CACJ,MAAM,WAAW,OAAyB,KAAK;AAE/C,iBAAgB;AACd,MAAI,SAAS,WAAW,SAAS,kBAAkB,SAAS,QAC1D,UAAS,QAAQ,OAAO;IAEzB,CAAC,QAAQ,CAAC;AAEb,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GACC,KAAK;GACL,MAAK;GACL,OAAO;GACP,WAAW,MAAM,SAAS,EAAE,OAAO,MAAM;GACzC,aAAY;GACZ,WAAU;GACV,UAAU;GACV;GACA,eAAY;IACZ;GACE;;AAIV,MAAM,iBAAiB,EACrB,SACA,SACA,OACA,OACA,eAOI;AACJ,KAAI,QACF,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC;GAAI,WAAU;cACb,oBAAC,SAAI,WAAU,yEAA6E,EAC5F,oBAAC;IAAE,WAAU;cAA6B;KAAgB;IACtD;GACF;AAIV,KAAI,MACF,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC,kBAAE,WAAQ,SAAU;GACjB;AAIV,KACE,MAAM,MAAM,IACZ,CAAC,YACD,CAAC,YACA,CAAC,WAAW,CAAC,QAAQ,SAAS,QAAQ,MAAM,WAAW,GAExD,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC,iBAAE,sBAAqB;GACpB;AAIV,KAAI,CAAC,MAAM,MAAM,CACf,QAAO;AAGT,QACE,oBAAC,mBACE,SAAS,OAAO,KAAK,QACpB,oBAAC,OAAsB,OAAb,IAAI,GAAgB,CAC9B,GACE;;AAIV,MAAM,OAAO,EAAE,UAA+B;AAC5C,QACE,qBAAC;EACC,WAAU;EACV,eAAY;;GAEZ,oBAAC;IAAI,WAAU;cACZ,IAAI,YACH,oBAAC;KACC,KAAK,IAAI;KACT,KAAK,IAAI,SAAS;KAClB,OAAO;KACP,QAAQ;KACR,WAAU;MACV,GAEF,oBAAC;KAAI,WAAU;eACb,oBAAC,oBAAiB,MAAM,KAAM;MAC1B;KAEJ;GACN,qBAAC;IAAI,WAAU;eACb,oBAAC,kBAAI,IAAI,QAAW,EACpB,oBAAC;KACC,WAAU;KACV,yBAAyB,EACvB,QAAQ,UAAU,SAAS,IAAI,eAAe,GAAG,EAClD;MACD;KACE;GACN,oBAAC;IACC,MAAM,aAAa,IAAI;IACvB,WAAU;IACV,cAAY,iBAAiB,IAAI;KACjC;;GACE"}
@@ -1,12 +0,0 @@
1
- import { Region } from "../../types/graphql.js";
2
- import * as react_jsx_runtime12 from "react/jsx-runtime";
3
-
4
- //#region src/components/side-menu/index.d.ts
5
- declare const SideMenu: ({
6
- regions
7
- }: {
8
- regions: Region[] | null;
9
- }) => react_jsx_runtime12.JSX.Element;
10
- //#endregion
11
- export { SideMenu };
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/side-menu/index.tsx"],"sourcesContent":[],"mappings":";;;;cAoBM;;;WAAoC;MAAiB,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,99 +0,0 @@
1
- 'use client';
2
-
3
- import { LocalizedClientLink } from "../localized-client-link/index.js";
4
- import { LayoutCountrySelect } from "../layout-country-select/index.js";
5
- import { Fragment } from "react";
6
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
7
- import { Popover, PopoverPanel, Transition } from "@headlessui/react";
8
- import { Text, clx, useToggleState } from "@medusajs/ui";
9
- import { ArrowRightMini, XMark } from "@medusajs/icons";
10
-
11
- //#region src/components/side-menu/index.tsx
12
- const SideMenuItems = {
13
- Home: "/",
14
- Store: "/store",
15
- Account: "/account",
16
- Cart: "/cart"
17
- };
18
- const SideMenu = ({ regions }) => {
19
- const toggleState = useToggleState();
20
- return /* @__PURE__ */ jsx("div", {
21
- className: "h-full",
22
- children: /* @__PURE__ */ jsx("div", {
23
- className: "flex h-full items-center",
24
- children: /* @__PURE__ */ jsx(Popover, {
25
- className: "flex h-full",
26
- children: ({ open, close }) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
27
- className: "relative flex h-full",
28
- children: /* @__PURE__ */ jsx(Popover.Button, {
29
- "data-testid": "nav-menu-button",
30
- className: "hover:text-ui-fg-base relative flex h-full items-center transition-all duration-200 ease-out focus:outline-none",
31
- children: "Menu"
32
- })
33
- }), /* @__PURE__ */ jsx(Transition, {
34
- show: open,
35
- as: Fragment,
36
- enter: "transition ease-out duration-150",
37
- enterFrom: "opacity-0",
38
- enterTo: "opacity-100 backdrop-blur-2xl",
39
- leave: "transition ease-in duration-150",
40
- leaveFrom: "opacity-100 backdrop-blur-2xl",
41
- leaveTo: "opacity-0",
42
- children: /* @__PURE__ */ jsx(PopoverPanel, {
43
- className: "text-ui-fg-on-color absolute inset-x-0 z-30 m-2 flex h-[calc(100vh-1rem)] w-full flex-col pr-4 text-sm backdrop-blur-2xl sm:w-1/3 sm:min-w-min sm:pr-0 2xl:w-1/4",
44
- children: /* @__PURE__ */ jsxs("div", {
45
- "data-testid": "nav-menu-popup",
46
- className: "rounded-rounded flex h-full flex-col justify-between bg-[rgba(3,7,18,0.5)] p-6",
47
- children: [
48
- /* @__PURE__ */ jsx("div", {
49
- className: "flex justify-end",
50
- id: "xmark",
51
- children: /* @__PURE__ */ jsx("button", {
52
- "data-testid": "close-menu-button",
53
- onClick: close,
54
- children: /* @__PURE__ */ jsx(XMark, {})
55
- })
56
- }),
57
- /* @__PURE__ */ jsx("ul", {
58
- className: "flex flex-col items-start justify-start gap-6",
59
- children: Object.entries(SideMenuItems).map(([name, href]) => {
60
- return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(LocalizedClientLink, {
61
- href,
62
- className: "hover:text-ui-fg-disabled text-3xl leading-10",
63
- onClick: close,
64
- "data-testid": `${name.toLowerCase()}-link`,
65
- children: name
66
- }) }, name);
67
- })
68
- }),
69
- /* @__PURE__ */ jsxs("div", {
70
- className: "flex flex-col gap-y-6",
71
- children: [/* @__PURE__ */ jsxs("div", {
72
- className: "flex justify-between",
73
- onMouseEnter: toggleState.open,
74
- onMouseLeave: toggleState.close,
75
- children: [regions && /* @__PURE__ */ jsx(LayoutCountrySelect, {
76
- toggleState,
77
- regions
78
- }), /* @__PURE__ */ jsx(ArrowRightMini, { className: clx("transition-transform duration-150", toggleState.state ? "-rotate-90" : "") })]
79
- }), /* @__PURE__ */ jsxs(Text, {
80
- className: "txt-compact-small flex justify-between",
81
- children: [
82
- "© ",
83
- (/* @__PURE__ */ new Date()).getFullYear(),
84
- " Medusa Store. All rights reserved."
85
- ]
86
- })]
87
- })
88
- ]
89
- })
90
- })
91
- })] })
92
- })
93
- })
94
- });
95
- };
96
-
97
- //#endregion
98
- export { SideMenu };
99
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/side-menu/index.tsx"],"sourcesContent":["'use client';\n\nimport { Fragment } from 'react';\n\nimport { Popover, PopoverPanel, Transition } from '@headlessui/react';\nimport { ArrowRightMini, XMark } from '@medusajs/icons';\nimport { Text, clx, useToggleState } from '@medusajs/ui';\n\nimport { Region } from '@/types/graphql';\n\nimport { LayoutCountrySelect } from '../layout-country-select';\nimport { LocalizedClientLink } from '../localized-client-link';\n\nconst SideMenuItems = {\n Home: '/',\n Store: '/store',\n Account: '/account',\n Cart: '/cart',\n};\n\nconst SideMenu = ({ regions }: { regions: Region[] | null }) => {\n const toggleState = useToggleState();\n\n return (\n <div className=\"h-full\">\n <div className=\"flex h-full items-center\">\n <Popover className=\"flex h-full\">\n {({ open, close }) => (\n <>\n <div className=\"relative flex h-full\">\n <Popover.Button\n data-testid=\"nav-menu-button\"\n className=\"hover:text-ui-fg-base relative flex h-full items-center transition-all duration-200 ease-out focus:outline-none\"\n >\n Menu\n </Popover.Button>\n </div>\n\n <Transition\n show={open}\n as={Fragment}\n enter=\"transition ease-out duration-150\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100 backdrop-blur-2xl\"\n leave=\"transition ease-in duration-150\"\n leaveFrom=\"opacity-100 backdrop-blur-2xl\"\n leaveTo=\"opacity-0\"\n >\n <PopoverPanel className=\"text-ui-fg-on-color absolute inset-x-0 z-30 m-2 flex h-[calc(100vh-1rem)] w-full flex-col pr-4 text-sm backdrop-blur-2xl sm:w-1/3 sm:min-w-min sm:pr-0 2xl:w-1/4\">\n <div\n data-testid=\"nav-menu-popup\"\n className=\"rounded-rounded flex h-full flex-col justify-between bg-[rgba(3,7,18,0.5)] p-6\"\n >\n <div className=\"flex justify-end\" id=\"xmark\">\n <button data-testid=\"close-menu-button\" onClick={close}>\n <XMark />\n </button>\n </div>\n <ul className=\"flex flex-col items-start justify-start gap-6\">\n {Object.entries(SideMenuItems).map(([name, href]) => {\n return (\n <li key={name}>\n <LocalizedClientLink\n href={href}\n className=\"hover:text-ui-fg-disabled text-3xl leading-10\"\n onClick={close}\n data-testid={`${name.toLowerCase()}-link`}\n >\n {name}\n </LocalizedClientLink>\n </li>\n );\n })}\n </ul>\n <div className=\"flex flex-col gap-y-6\">\n <div\n className=\"flex justify-between\"\n onMouseEnter={toggleState.open}\n onMouseLeave={toggleState.close}\n >\n {regions && (\n <LayoutCountrySelect\n toggleState={toggleState}\n regions={regions}\n />\n )}\n <ArrowRightMini\n className={clx(\n 'transition-transform duration-150',\n toggleState.state ? '-rotate-90' : ''\n )}\n />\n </div>\n <Text className=\"txt-compact-small flex justify-between\">\n © {new Date().getFullYear()} Medusa Store. All rights\n reserved.\n </Text>\n </div>\n </div>\n </PopoverPanel>\n </Transition>\n </>\n )}\n </Popover>\n </div>\n </div>\n );\n};\n\nexport { SideMenu };\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,gBAAgB;CACpB,MAAM;CACN,OAAO;CACP,SAAS;CACT,MAAM;CACP;AAED,MAAM,YAAY,EAAE,cAA4C;CAC9D,MAAM,cAAc,gBAAgB;AAEpC,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAI,WAAU;aACb,oBAAC;IAAQ,WAAU;eACf,EAAE,MAAM,YACR,8CACE,oBAAC;KAAI,WAAU;eACb,oBAAC,QAAQ;MACP,eAAY;MACZ,WAAU;gBACX;OAEgB;MACb,EAEN,oBAAC;KACC,MAAM;KACN,IAAI;KACJ,OAAM;KACN,WAAU;KACV,SAAQ;KACR,OAAM;KACN,WAAU;KACV,SAAQ;eAER,oBAAC;MAAa,WAAU;gBACtB,qBAAC;OACC,eAAY;OACZ,WAAU;;QAEV,oBAAC;SAAI,WAAU;SAAmB,IAAG;mBACnC,oBAAC;UAAO,eAAY;UAAoB,SAAS;oBAC/C,oBAAC,UAAQ;WACF;UACL;QACN,oBAAC;SAAG,WAAU;mBACX,OAAO,QAAQ,cAAc,CAAC,KAAK,CAAC,MAAM,UAAU;AACnD,iBACE,oBAAC,kBACC,oBAAC;WACO;WACN,WAAU;WACV,SAAS;WACT,eAAa,GAAG,KAAK,aAAa,CAAC;qBAElC;YACmB,IARf,KASJ;WAEP;UACC;QACL,qBAAC;SAAI,WAAU;oBACb,qBAAC;UACC,WAAU;UACV,cAAc,YAAY;UAC1B,cAAc,YAAY;qBAEzB,WACC,oBAAC;WACc;WACJ;YACT,EAEJ,oBAAC,kBACC,WAAW,IACT,qCACA,YAAY,QAAQ,eAAe,GACpC,GACD;WACE,EACN,qBAAC;UAAK,WAAU;;WAAyC;4BACpD,IAAI,MAAM,EAAC,aAAa;WAAC;;WAEvB;UACH;;QACF;OACO;MACJ,IACZ;KAEG;IACN;GACF"}