@gfed-medusa/sf-lib-common 1.1.0 → 2.0.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 (254) hide show
  1. package/dist/components/breadcrumbs/index.d.ts +4 -6
  2. package/dist/components/breadcrumbs/index.d.ts.map +1 -1
  3. package/dist/components/breadcrumbs/index.js.map +1 -1
  4. package/dist/components/cart-button/index.d.ts +2 -2
  5. package/dist/components/cart-button/index.d.ts.map +1 -1
  6. package/dist/components/cart-button/index.js +11 -17
  7. package/dist/components/cart-button/index.js.map +1 -0
  8. package/dist/components/cart-dropdown/index.d.ts +3 -3
  9. package/dist/components/cart-dropdown/index.d.ts.map +1 -1
  10. package/dist/components/cart-dropdown/index.js +193 -16
  11. package/dist/components/cart-dropdown/index.js.map +1 -0
  12. package/dist/components/cart-mismatch-banner/index.d.ts +3 -3
  13. package/dist/components/cart-mismatch-banner/index.d.ts.map +1 -1
  14. package/dist/components/cart-mismatch-banner/index.js +1 -8
  15. package/dist/components/cart-mismatch-banner/index.js.map +1 -1
  16. package/dist/components/country-select/index.d.ts +1 -1
  17. package/dist/components/delete-button/index.d.ts +2 -2
  18. package/dist/components/delete-button/index.js +27 -11
  19. package/dist/components/delete-button/index.js.map +1 -0
  20. package/dist/components/error-message/index.d.ts +2 -2
  21. package/dist/components/error-message/index.d.ts.map +1 -1
  22. package/dist/components/footer/index.d.ts +2 -2
  23. package/dist/components/footer/index.d.ts.map +1 -1
  24. package/dist/components/footer/index.js +5 -10
  25. package/dist/components/footer/index.js.map +1 -1
  26. package/dist/components/free-shipping-price-nudge/index.d.ts +3 -3
  27. package/dist/components/free-shipping-price-nudge/index.d.ts.map +1 -1
  28. package/dist/components/free-shipping-price-nudge/index.js +2 -2
  29. package/dist/components/interactive-link/index.d.ts +2 -2
  30. package/dist/components/interactive-link/index.js +1 -1
  31. package/dist/components/layout-country-select/index.d.ts +4 -4
  32. package/dist/components/layout-country-select/index.js +89 -11
  33. package/dist/components/layout-country-select/index.js.map +1 -0
  34. package/dist/components/line-item-options/index.d.ts +3 -3
  35. package/dist/components/line-item-options/index.js +15 -2
  36. package/dist/components/line-item-options/index.js.map +1 -0
  37. package/dist/components/line-item-price/index.d.ts +3 -3
  38. package/dist/components/line-item-price/index.d.ts.map +1 -1
  39. package/dist/components/line-item-price/index.js +46 -2
  40. package/dist/components/line-item-price/index.js.map +1 -0
  41. package/dist/components/localized-client-link/index.d.ts +5 -12
  42. package/dist/components/localized-client-link/index.d.ts.map +1 -1
  43. package/dist/components/localized-client-link/index.js +19 -2
  44. package/dist/components/localized-client-link/index.js.map +1 -0
  45. package/dist/components/modal/index.d.ts +2 -2
  46. package/dist/components/modal/index.js +101 -3
  47. package/dist/components/modal/index.js.map +1 -0
  48. package/dist/components/nav/index.d.ts +2 -2
  49. package/dist/components/nav/index.js +6 -25
  50. package/dist/components/nav/index.js.map +1 -1
  51. package/dist/components/portable-text/index.d.ts +3 -3
  52. package/dist/components/portable-text/index.js +329 -2
  53. package/dist/components/portable-text/index.js.map +1 -0
  54. package/dist/components/preview-price/index.d.ts +1 -1
  55. package/dist/components/preview-price/index.js +19 -2
  56. package/dist/components/preview-price/index.js.map +1 -0
  57. package/dist/components/product-card/index.d.ts +2 -2
  58. package/dist/components/product-card/index.d.ts.map +1 -1
  59. package/dist/components/product-card/index.js +3 -4
  60. package/dist/components/product-card/index.js.map +1 -1
  61. package/dist/components/product-preview/index.d.ts +3 -3
  62. package/dist/components/product-preview/index.d.ts.map +1 -1
  63. package/dist/components/product-preview/index.js +4 -4
  64. package/dist/components/search-modal/index.d.ts +2 -2
  65. package/dist/components/search-modal/index.d.ts.map +1 -1
  66. package/dist/components/search-modal/index.js +135 -9
  67. package/dist/components/search-modal/index.js.map +1 -0
  68. package/dist/components/side-menu/index.d.ts +3 -3
  69. package/dist/components/side-menu/index.js +96 -13
  70. package/dist/components/side-menu/index.js.map +1 -0
  71. package/dist/components/thumbnail/index.js +43 -2
  72. package/dist/components/thumbnail/index.js.map +1 -0
  73. package/dist/lib/config/medusa.js +11 -2
  74. package/dist/lib/config/medusa.js.map +1 -0
  75. package/dist/lib/context/apollo-context.js +1 -2
  76. package/dist/lib/context/apollo-context.js.map +1 -1
  77. package/dist/lib/context/modal-context.d.ts +2 -2
  78. package/dist/lib/context/modal-context.js +19 -2
  79. package/dist/lib/context/modal-context.js.map +1 -0
  80. package/dist/lib/data/cart.d.ts +1 -1
  81. package/dist/lib/data/cart.d.ts.map +1 -1
  82. package/dist/lib/data/cart.js +102 -10
  83. package/dist/lib/data/cart.js.map +1 -0
  84. package/dist/lib/data/categories.d.ts +1 -1
  85. package/dist/lib/data/categories.js +15 -5
  86. package/dist/lib/data/categories.js.map +1 -0
  87. package/dist/lib/data/collections.d.ts +1 -1
  88. package/dist/lib/data/collections.js +21 -5
  89. package/dist/lib/data/collections.js.map +1 -0
  90. package/dist/lib/data/cookies.d.ts +2 -1
  91. package/dist/lib/data/cookies.d.ts.map +1 -1
  92. package/dist/lib/data/cookies.js +45 -2
  93. package/dist/lib/data/cookies.js.map +1 -0
  94. package/dist/lib/data/customer.d.ts +1 -1
  95. package/dist/lib/data/customer.d.ts.map +1 -1
  96. package/dist/lib/data/customer.js +39 -9
  97. package/dist/lib/data/customer.js.map +1 -0
  98. package/dist/lib/data/footer.js +15 -4
  99. package/dist/lib/data/footer.js.map +1 -0
  100. package/dist/lib/data/orders.d.ts +1 -1
  101. package/dist/lib/data/orders.js +4 -4
  102. package/dist/lib/data/regions.d.ts +1 -1
  103. package/dist/lib/data/regions.js +33 -4
  104. package/dist/lib/data/regions.js.map +1 -0
  105. package/dist/lib/data/search.d.ts +1 -1
  106. package/dist/lib/data/search.js +20 -5
  107. package/dist/lib/data/search.js.map +1 -0
  108. package/dist/lib/gql/apollo-client.js +66 -2
  109. package/dist/lib/gql/apollo-client.js.map +1 -0
  110. package/dist/lib/gql/fragments/cart.d.ts +9 -9
  111. package/dist/lib/gql/fragments/cart.d.ts.map +1 -1
  112. package/dist/lib/gql/fragments/cart.js +141 -3
  113. package/dist/{cart-BNoIGQmw.js.map → lib/gql/fragments/cart.js.map} +1 -1
  114. package/dist/lib/gql/fragments/customer.d.ts +3 -3
  115. package/dist/lib/gql/fragments/customer.js +41 -2
  116. package/dist/{customer-CgN4zI00.js.map → lib/gql/fragments/customer.js.map} +1 -1
  117. package/dist/lib/gql/fragments/product.d.ts +8 -8
  118. package/dist/lib/gql/fragments/product.js +89 -2
  119. package/dist/{product-COu5D1mS.js.map → lib/gql/fragments/product.js.map} +1 -1
  120. package/dist/lib/gql/mutations/cart.d.ts +4 -4
  121. package/dist/lib/gql/mutations/cart.d.ts.map +1 -1
  122. package/dist/lib/gql/mutations/cart.js +41 -4
  123. package/dist/{cart-IHaLnQC4.js.map → lib/gql/mutations/cart.js.map} +1 -1
  124. package/dist/lib/gql/mutations/customer.js +0 -1
  125. package/dist/lib/gql/queries/cart.d.ts +2 -2
  126. package/dist/lib/gql/queries/cart.d.ts.map +1 -1
  127. package/dist/lib/gql/queries/cart.js +15 -4
  128. package/dist/{cart-DH8urwwT.js.map → lib/gql/queries/cart.js.map} +1 -1
  129. package/dist/lib/gql/queries/collections.d.ts +2 -2
  130. package/dist/lib/gql/queries/collections.d.ts.map +1 -1
  131. package/dist/lib/gql/queries/collections.js +19 -3
  132. package/dist/{collections-DMv3UYgC.js.map → lib/gql/queries/collections.js.map} +1 -1
  133. package/dist/lib/gql/queries/customer.d.ts +2 -2
  134. package/dist/lib/gql/queries/customer.d.ts.map +1 -1
  135. package/dist/lib/gql/queries/customer.js +15 -3
  136. package/dist/{customer-DIJz6m7L.js.map → lib/gql/queries/customer.js.map} +1 -1
  137. package/dist/lib/gql/queries/footer.d.ts +2 -2
  138. package/dist/lib/gql/queries/footer.d.ts.map +1 -1
  139. package/dist/lib/gql/queries/footer.js +21 -2
  140. package/dist/lib/gql/queries/footer.js.map +1 -0
  141. package/dist/lib/gql/queries/product.d.ts +3 -3
  142. package/dist/lib/gql/queries/product.d.ts.map +1 -1
  143. package/dist/lib/gql/queries/product.js +46 -3
  144. package/dist/{product-C3HQUIgX.js.map → lib/gql/queries/product.js.map} +1 -1
  145. package/dist/lib/hooks/use-apollo.d.ts +2 -2
  146. package/dist/lib/hooks/use-apollo.js +10 -3
  147. package/dist/lib/hooks/use-apollo.js.map +1 -0
  148. package/dist/lib/hooks/use-search.d.ts +1 -1
  149. package/dist/lib/hooks/use-search.js +66 -6
  150. package/dist/lib/hooks/use-search.js.map +1 -0
  151. package/dist/lib/hooks/use-toggle-state.d.ts +23 -2
  152. package/dist/lib/hooks/use-toggle-state.d.ts.map +1 -0
  153. package/dist/lib/utils/data-types.js +9 -2
  154. package/dist/lib/utils/data-types.js.map +1 -0
  155. package/dist/lib/utils/env.js +1 -1
  156. package/dist/lib/utils/env.js.map +1 -1
  157. package/dist/lib/utils/get-percentage-diff.js +7 -2
  158. package/dist/lib/utils/get-percentage-diff.js.map +1 -0
  159. package/dist/lib/utils/get-product-price.d.ts +1 -1
  160. package/dist/lib/utils/get-product-price.js +46 -2
  161. package/dist/lib/utils/get-product-price.js.map +1 -0
  162. package/dist/lib/utils/medusa-error.js +16 -2
  163. package/dist/lib/utils/medusa-error.js.map +1 -0
  164. package/dist/lib/utils/money.js +14 -2
  165. package/dist/lib/utils/money.js.map +1 -0
  166. package/dist/lib/utils/normalize-functions.d.ts +1 -1
  167. package/dist/lib/utils/normalize-functions.js +69 -2
  168. package/dist/lib/utils/normalize-functions.js.map +1 -0
  169. package/dist/types/graphql.d.ts +1368 -2
  170. package/dist/types/graphql.d.ts.map +1 -0
  171. package/dist/types/prices.d.ts +20 -2
  172. package/dist/types/prices.d.ts.map +1 -0
  173. package/dist/types/prices.js +0 -1
  174. package/package.json +12 -12
  175. package/dist/apollo-client-Bw50r80c.js +0 -66
  176. package/dist/apollo-client-Bw50r80c.js.map +0 -1
  177. package/dist/cart-BNoIGQmw.js +0 -142
  178. package/dist/cart-DH8urwwT.js +0 -16
  179. package/dist/cart-IHaLnQC4.js +0 -42
  180. package/dist/cart-button-Dj_zRxop.js +0 -12
  181. package/dist/cart-button-Dj_zRxop.js.map +0 -1
  182. package/dist/cart-dropdown-D_PUJarp.js +0 -195
  183. package/dist/cart-dropdown-D_PUJarp.js.map +0 -1
  184. package/dist/cart-xkcyWLfU.js +0 -103
  185. package/dist/cart-xkcyWLfU.js.map +0 -1
  186. package/dist/categories-B-RYCIZ3.js +0 -16
  187. package/dist/categories-B-RYCIZ3.js.map +0 -1
  188. package/dist/collections-BgyvhW2p.js +0 -22
  189. package/dist/collections-BgyvhW2p.js.map +0 -1
  190. package/dist/collections-DMv3UYgC.js +0 -20
  191. package/dist/cookies-lksVIe4_.js +0 -38
  192. package/dist/cookies-lksVIe4_.js.map +0 -1
  193. package/dist/customer-CgN4zI00.js +0 -42
  194. package/dist/customer-ClewjBBr.js +0 -38
  195. package/dist/customer-ClewjBBr.js.map +0 -1
  196. package/dist/customer-DIJz6m7L.js +0 -16
  197. package/dist/data-types-CTPJXmJH.js +0 -10
  198. package/dist/data-types-CTPJXmJH.js.map +0 -1
  199. package/dist/delete-button-Bnm5bof2.js +0 -28
  200. package/dist/delete-button-Bnm5bof2.js.map +0 -1
  201. package/dist/footer-BvNV-R9D.js +0 -16
  202. package/dist/footer-BvNV-R9D.js.map +0 -1
  203. package/dist/footer-DCtgtjKS.js +0 -76
  204. package/dist/footer-DCtgtjKS.js.map +0 -1
  205. package/dist/get-percentage-diff-B_UVOFgE.js +0 -8
  206. package/dist/get-percentage-diff-B_UVOFgE.js.map +0 -1
  207. package/dist/get-product-price-DKWc76ev.js +0 -47
  208. package/dist/get-product-price-DKWc76ev.js.map +0 -1
  209. package/dist/graphql-CdTGi4Pp.d.ts +0 -1368
  210. package/dist/graphql-CdTGi4Pp.d.ts.map +0 -1
  211. package/dist/layout-country-select-C7Ra-opl.js +0 -90
  212. package/dist/layout-country-select-C7Ra-opl.js.map +0 -1
  213. package/dist/line-item-options-l_eRZIIq.js +0 -16
  214. package/dist/line-item-options-l_eRZIIq.js.map +0 -1
  215. package/dist/line-item-price-BlTwskFC.js +0 -47
  216. package/dist/line-item-price-BlTwskFC.js.map +0 -1
  217. package/dist/localized-client-link-CthmRcvb.js +0 -22
  218. package/dist/localized-client-link-CthmRcvb.js.map +0 -1
  219. package/dist/medusa-TumrpCF2.js +0 -12
  220. package/dist/medusa-TumrpCF2.js.map +0 -1
  221. package/dist/medusa-error-DDhA6RGC.js +0 -17
  222. package/dist/medusa-error-DDhA6RGC.js.map +0 -1
  223. package/dist/modal-BASYY-YM.js +0 -102
  224. package/dist/modal-BASYY-YM.js.map +0 -1
  225. package/dist/modal-context-02cA-7jy.js +0 -20
  226. package/dist/modal-context-02cA-7jy.js.map +0 -1
  227. package/dist/money-DVQGzXns.js +0 -15
  228. package/dist/money-DVQGzXns.js.map +0 -1
  229. package/dist/normalize-functions-Bqr-JkYn.js +0 -70
  230. package/dist/normalize-functions-Bqr-JkYn.js.map +0 -1
  231. package/dist/portable-text-CuI022GH.js +0 -330
  232. package/dist/portable-text-CuI022GH.js.map +0 -1
  233. package/dist/preview-price-_4sxkXQs.js +0 -20
  234. package/dist/preview-price-_4sxkXQs.js.map +0 -1
  235. package/dist/prices-eO1YBciD.d.ts +0 -20
  236. package/dist/prices-eO1YBciD.d.ts.map +0 -1
  237. package/dist/product-C3HQUIgX.js +0 -47
  238. package/dist/product-COu5D1mS.js +0 -90
  239. package/dist/regions-r1AvxfT8.js +0 -34
  240. package/dist/regions-r1AvxfT8.js.map +0 -1
  241. package/dist/search-D7Gw7jAk.js +0 -21
  242. package/dist/search-D7Gw7jAk.js.map +0 -1
  243. package/dist/search-modal-DaXadYWM.js +0 -137
  244. package/dist/search-modal-DaXadYWM.js.map +0 -1
  245. package/dist/side-menu-B6IjTd5M.js +0 -97
  246. package/dist/side-menu-B6IjTd5M.js.map +0 -1
  247. package/dist/thumbnail-C0TU3rh-.js +0 -44
  248. package/dist/thumbnail-C0TU3rh-.js.map +0 -1
  249. package/dist/use-apollo-BxAFd1Y5.js +0 -11
  250. package/dist/use-apollo-BxAFd1Y5.js.map +0 -1
  251. package/dist/use-search-VX-u8o1D.js +0 -67
  252. package/dist/use-search-VX-u8o1D.js.map +0 -1
  253. package/dist/use-toggle-state-DI4Gwlfj.d.ts +0 -23
  254. package/dist/use-toggle-state-DI4Gwlfj.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime19 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime15 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/interactive-link/index.d.ts
4
4
  type InteractiveLinkProps = {
@@ -11,7 +11,7 @@ declare const InteractiveLink: ({
11
11
  children,
12
12
  onClick,
13
13
  ...props
14
- }: InteractiveLinkProps) => react_jsx_runtime19.JSX.Element;
14
+ }: InteractiveLinkProps) => react_jsx_runtime15.JSX.Element;
15
15
  //#endregion
16
16
  export { InteractiveLink };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { t as LocalizedClientLink } from "../../localized-client-link-CthmRcvb.js";
1
+ import { LocalizedClientLink } from "../localized-client-link/index.js";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { Text } from "@medusajs/ui";
4
4
  import { ArrowUpRightMini } from "@medusajs/icons";
@@ -1,6 +1,6 @@
1
- import { tr as Region } from "../../graphql-CdTGi4Pp.js";
2
- import { t as StateType } from "../../use-toggle-state-DI4Gwlfj.js";
3
- import * as react_jsx_runtime20 from "react/jsx-runtime";
1
+ import { Region } from "../../types/graphql.js";
2
+ import { StateType } from "../../lib/hooks/use-toggle-state.js";
3
+ import * as react_jsx_runtime19 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/layout-country-select/index.d.ts
6
6
  type CountrySelectProps = {
@@ -10,7 +10,7 @@ type CountrySelectProps = {
10
10
  declare const LayoutCountrySelect: ({
11
11
  toggleState,
12
12
  regions
13
- }: CountrySelectProps) => react_jsx_runtime20.JSX.Element;
13
+ }: CountrySelectProps) => react_jsx_runtime19.JSX.Element;
14
14
  //#endregion
15
15
  export { LayoutCountrySelect };
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1,14 +1,92 @@
1
1
  'use client';
2
2
 
3
- import "../../medusa-TumrpCF2.js";
4
- import "../../apollo-client-Bw50r80c.js";
5
- import "../../product-COu5D1mS.js";
6
- import "../../cart-BNoIGQmw.js";
7
- import "../../cart-IHaLnQC4.js";
8
- import "../../cart-DH8urwwT.js";
9
- import "../../cookies-lksVIe4_.js";
10
- import "../../regions-r1AvxfT8.js";
11
- import "../../cart-xkcyWLfU.js";
12
- import { t as LayoutCountrySelect } from "../../layout-country-select-C7Ra-opl.js";
3
+ import { updateRegion } from "../../lib/data/cart.js";
4
+ import { Fragment, useEffect, useMemo, useState } from "react";
5
+ import { useParams, usePathname } from "next/navigation";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { Listbox, ListboxButton, ListboxOption, ListboxOptions, Transition } from "@headlessui/react";
8
+ import ReactCountryFlag from "react-country-flag";
13
9
 
14
- export { LayoutCountrySelect };
10
+ //#region src/components/layout-country-select/index.tsx
11
+ const LayoutCountrySelect = ({ toggleState, regions }) => {
12
+ const [current, setCurrent] = useState(void 0);
13
+ const { countryCode } = useParams();
14
+ const currentPath = usePathname().split(`/${countryCode}`)[1] ?? "gb";
15
+ const { state, close } = toggleState;
16
+ const options = useMemo(() => {
17
+ return regions.map((r) => {
18
+ return r.countries?.map((c) => ({
19
+ country: c?.iso2 ?? void 0,
20
+ region: r.id,
21
+ label: c?.name ?? void 0
22
+ }));
23
+ }).flat().sort((a, b) => (a?.label ?? "").localeCompare(b?.label ?? ""));
24
+ }, [regions]);
25
+ useEffect(() => {
26
+ if (countryCode) {
27
+ const option = options?.find((o) => o?.country === countryCode);
28
+ setCurrent(option);
29
+ }
30
+ }, [options, countryCode]);
31
+ const handleChange = (option) => {
32
+ updateRegion(option.country, currentPath);
33
+ close();
34
+ };
35
+ return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs(Listbox, {
36
+ as: "span",
37
+ onChange: handleChange,
38
+ defaultValue: countryCode ? options?.find((o) => o?.country === countryCode) : void 0,
39
+ children: [/* @__PURE__ */ jsx(ListboxButton, {
40
+ className: "w-full py-1",
41
+ children: /* @__PURE__ */ jsxs("div", {
42
+ className: "txt-compact-small flex items-start gap-x-2",
43
+ children: [/* @__PURE__ */ jsx("span", { children: "Shipping to:" }), current && /* @__PURE__ */ jsxs("span", {
44
+ className: "txt-compact-small flex items-center gap-x-2",
45
+ children: [/* @__PURE__ */ jsx(ReactCountryFlag, {
46
+ svg: true,
47
+ style: {
48
+ width: "16px",
49
+ height: "16px"
50
+ },
51
+ countryCode: current.country ?? ""
52
+ }), current.label]
53
+ })]
54
+ })
55
+ }), /* @__PURE__ */ jsx("div", {
56
+ className: "relative flex w-full min-w-[320px]",
57
+ children: /* @__PURE__ */ jsx(Transition, {
58
+ show: state,
59
+ as: Fragment,
60
+ leave: "transition ease-in duration-150",
61
+ leaveFrom: "opacity-100",
62
+ leaveTo: "opacity-0",
63
+ children: /* @__PURE__ */ jsx(ListboxOptions, {
64
+ className: "text-small-regular no-scrollbar rounded-rounded xsmall:left-auto xsmall:right-0 absolute -bottom-[calc(100%-36px)] left-0 z-[900] max-h-[442px] w-full overflow-y-scroll bg-white text-black uppercase drop-shadow-md",
65
+ static: true,
66
+ children: options?.map((o, index) => {
67
+ return /* @__PURE__ */ jsxs(ListboxOption, {
68
+ value: o,
69
+ className: "flex cursor-pointer items-center gap-x-2 px-3 py-2 hover:bg-gray-200",
70
+ children: [
71
+ /* @__PURE__ */ jsx(ReactCountryFlag, {
72
+ svg: true,
73
+ style: {
74
+ width: "16px",
75
+ height: "16px"
76
+ },
77
+ countryCode: o?.country ?? ""
78
+ }),
79
+ " ",
80
+ o?.label
81
+ ]
82
+ }, index);
83
+ })
84
+ })
85
+ })
86
+ })]
87
+ }) });
88
+ };
89
+
90
+ //#endregion
91
+ export { LayoutCountrySelect };
92
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/layout-country-select/index.tsx"],"sourcesContent":["'use client';\n\nimport { Fragment, useEffect, useMemo, useState } from 'react';\n\nimport { useParams, usePathname } from 'next/navigation';\n\nimport ReactCountryFlag from 'react-country-flag';\n\nimport {\n Listbox,\n ListboxButton,\n ListboxOption,\n ListboxOptions,\n Transition,\n} from '@headlessui/react';\n\nimport { updateRegion } from '@/lib/data/cart';\nimport { StateType } from '@/lib/hooks/use-toggle-state';\nimport { Region } from '@/types/graphql';\n\ntype CountryOption = {\n country: string;\n region: string;\n label: string;\n};\n\ntype CountrySelectProps = {\n toggleState: StateType;\n regions: Region[];\n};\n\nconst LayoutCountrySelect = ({ toggleState, regions }: CountrySelectProps) => {\n const [current, setCurrent] = useState<\n | { country: string | undefined; region: string; label: string | undefined }\n | undefined\n >(undefined);\n\n const { countryCode } = useParams();\n const currentPath = usePathname().split(`/${countryCode}`)[1] ?? 'gb';\n\n const { state, close } = toggleState;\n\n const options = useMemo(() => {\n return regions\n .map((r) => {\n return r.countries?.map((c) => ({\n country: c?.iso2 ?? undefined,\n region: r.id,\n label: c?.name ?? undefined,\n }));\n })\n .flat()\n .sort((a, b) => (a?.label ?? '').localeCompare(b?.label ?? ''));\n }, [regions]);\n\n useEffect(() => {\n if (countryCode) {\n const option = options?.find((o) => o?.country === countryCode);\n setCurrent(option);\n }\n }, [options, countryCode]);\n\n const handleChange = (option: CountryOption) => {\n updateRegion(option.country, currentPath);\n close();\n };\n\n return (\n <div>\n <Listbox\n as=\"span\"\n onChange={handleChange}\n defaultValue={\n countryCode\n ? options?.find(\n (o): o is CountryOption => o?.country === countryCode\n )\n : undefined\n }\n >\n <ListboxButton className=\"w-full py-1\">\n <div className=\"txt-compact-small flex items-start gap-x-2\">\n <span>Shipping to:</span>\n {current && (\n <span className=\"txt-compact-small flex items-center gap-x-2\">\n {/* @ts-ignore */}\n <ReactCountryFlag\n svg\n style={{\n width: '16px',\n height: '16px',\n }}\n countryCode={current.country ?? ''}\n />\n {current.label}\n </span>\n )}\n </div>\n </ListboxButton>\n <div className=\"relative flex w-full min-w-[320px]\">\n <Transition\n show={state}\n as={Fragment}\n leave=\"transition ease-in duration-150\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <ListboxOptions\n className=\"text-small-regular no-scrollbar rounded-rounded xsmall:left-auto xsmall:right-0 absolute -bottom-[calc(100%-36px)] left-0 z-[900] max-h-[442px] w-full overflow-y-scroll bg-white text-black uppercase drop-shadow-md\"\n static\n >\n {options?.map((o, index) => {\n return (\n <ListboxOption\n key={index}\n value={o}\n className=\"flex cursor-pointer items-center gap-x-2 px-3 py-2 hover:bg-gray-200\"\n >\n {/* @ts-ignore */}\n <ReactCountryFlag\n svg\n style={{\n width: '16px',\n height: '16px',\n }}\n countryCode={o?.country ?? ''}\n />{' '}\n {o?.label}\n </ListboxOption>\n );\n })}\n </ListboxOptions>\n </Transition>\n </div>\n </Listbox>\n </div>\n );\n};\n\nexport { LayoutCountrySelect };\n"],"mappings":";;;;;;;;;;AA+BA,MAAM,uBAAuB,EAAE,aAAa,cAAkC;CAC5E,MAAM,CAAC,SAAS,cAAc,SAG5B,OAAU;CAEZ,MAAM,EAAE,gBAAgB,WAAW;CACnC,MAAM,cAAc,aAAa,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM;CAEjE,MAAM,EAAE,OAAO,UAAU;CAEzB,MAAM,UAAU,cAAc;AAC5B,SAAO,QACJ,KAAK,MAAM;AACV,UAAO,EAAE,WAAW,KAAK,OAAO;IAC9B,SAAS,GAAG,QAAQ;IACpB,QAAQ,EAAE;IACV,OAAO,GAAG,QAAQ;IACnB,EAAE;IACH,CACD,MAAM,CACN,MAAM,GAAG,OAAO,GAAG,SAAS,IAAI,cAAc,GAAG,SAAS,GAAG,CAAC;IAChE,CAAC,QAAQ,CAAC;AAEb,iBAAgB;AACd,MAAI,aAAa;GACf,MAAM,SAAS,SAAS,MAAM,MAAM,GAAG,YAAY,YAAY;AAC/D,cAAW,OAAO;;IAEnB,CAAC,SAAS,YAAY,CAAC;CAE1B,MAAM,gBAAgB,WAA0B;AAC9C,eAAa,OAAO,SAAS,YAAY;AACzC,SAAO;;AAGT,QACE,oBAAC,mBACC,qBAAC;EACC,IAAG;EACH,UAAU;EACV,cACE,cACI,SAAS,MACN,MAA0B,GAAG,YAAY,YAC3C,GACD;aAGN,oBAAC;GAAc,WAAU;aACvB,qBAAC;IAAI,WAAU;eACb,oBAAC,oBAAK,iBAAmB,EACxB,WACC,qBAAC;KAAK,WAAU;gBAEd,oBAAC;MACC;MACA,OAAO;OACL,OAAO;OACP,QAAQ;OACT;MACD,aAAa,QAAQ,WAAW;OAChC,EACD,QAAQ;MACJ;KAEL;IACQ,EAChB,oBAAC;GAAI,WAAU;aACb,oBAAC;IACC,MAAM;IACN,IAAI;IACJ,OAAM;IACN,WAAU;IACV,SAAQ;cAER,oBAAC;KACC,WAAU;KACV;eAEC,SAAS,KAAK,GAAG,UAAU;AAC1B,aACE,qBAAC;OAEC,OAAO;OACP,WAAU;;QAGV,oBAAC;SACC;SACA,OAAO;UACL,OAAO;UACP,QAAQ;UACT;SACD,aAAa,GAAG,WAAW;UAC3B;QAAC;QACF,GAAG;;SAbC,MAcS;OAElB;MACa;KACN;IACT;GACE,GACN"}
@@ -1,5 +1,5 @@
1
- import { Kt as Maybe, zn as ProductVariant } from "../../graphql-CdTGi4Pp.js";
2
- import * as react_jsx_runtime10 from "react/jsx-runtime";
1
+ import { Maybe, ProductVariant } from "../../types/graphql.js";
2
+ import * as react_jsx_runtime18 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/line-item-options/index.d.ts
5
5
  type LineItemOptionsProps = {
@@ -11,7 +11,7 @@ declare const LineItemOptions: ({
11
11
  variant,
12
12
  "data-testid": dataTestid,
13
13
  "data-value": dataValue
14
- }: LineItemOptionsProps) => react_jsx_runtime10.JSX.Element;
14
+ }: LineItemOptionsProps) => react_jsx_runtime18.JSX.Element;
15
15
  //#endregion
16
16
  export { LineItemOptions };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,16 @@
1
- import { t as LineItemOptions } from "../../line-item-options-l_eRZIIq.js";
1
+ import { jsxs } from "react/jsx-runtime";
2
+ import { Text } from "@medusajs/ui";
2
3
 
3
- export { LineItemOptions };
4
+ //#region src/components/line-item-options/index.tsx
5
+ const LineItemOptions = ({ variant, "data-testid": dataTestid, "data-value": dataValue }) => {
6
+ return /* @__PURE__ */ jsxs(Text, {
7
+ "data-testid": dataTestid,
8
+ "data-value": dataValue,
9
+ className: "txt-medium text-ui-fg-subtle inline-block w-full overflow-hidden text-ellipsis",
10
+ children: ["Variant: ", variant?.title]
11
+ });
12
+ };
13
+
14
+ //#endregion
15
+ export { LineItemOptions };
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/line-item-options/index.tsx"],"sourcesContent":["import { Text } from '@medusajs/ui';\n\nimport { Maybe, ProductVariant } from '@/types/graphql';\n\ntype LineItemOptionsProps = {\n variant?: Maybe<ProductVariant>;\n 'data-testid'?: string;\n 'data-value'?: Maybe<ProductVariant>;\n};\n\nconst LineItemOptions = ({\n variant,\n 'data-testid': dataTestid,\n 'data-value': dataValue,\n}: LineItemOptionsProps) => {\n return (\n <Text\n data-testid={dataTestid}\n data-value={dataValue}\n className=\"txt-medium text-ui-fg-subtle inline-block w-full overflow-hidden text-ellipsis\"\n >\n Variant: {variant?.title}\n </Text>\n );\n};\n\nexport { LineItemOptions };\n"],"mappings":";;;;AAUA,MAAM,mBAAmB,EACvB,SACA,eAAe,YACf,cAAc,gBACY;AAC1B,QACE,qBAAC;EACC,eAAa;EACb,cAAY;EACZ,WAAU;aACX,aACW,SAAS;GACd"}
@@ -1,5 +1,5 @@
1
- import { Nt as LineItem } from "../../graphql-CdTGi4Pp.js";
2
- import * as react_jsx_runtime8 from "react/jsx-runtime";
1
+ import { LineItem } from "../../types/graphql.js";
2
+ import * as react_jsx_runtime20 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/line-item-price/index.d.ts
5
5
  type LineItemPriceProps = {
@@ -11,7 +11,7 @@ declare const LineItemPrice: ({
11
11
  item,
12
12
  style,
13
13
  currencyCode
14
- }: LineItemPriceProps) => react_jsx_runtime8.JSX.Element;
14
+ }: LineItemPriceProps) => react_jsx_runtime20.JSX.Element;
15
15
  //#endregion
16
16
  export { LineItemPrice };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/line-item-price/index.tsx"],"sourcesContent":[],"mappings":";;;;KAMK,kBAAA;QACG;;EADH,YAAA,EAAA,MAAA;AACW,CAAA;cAKV,aAAiB,EAAA,CAAA;EAAA,IAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAIpB,kBAJoB,EAAA,GAIF,kBAAA,CAAA,GAAA,CAAA,OAJE"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/line-item-price/index.tsx"],"sourcesContent":[],"mappings":";;;;KAMK,kBAAA;QACG;;EADH,YAAA,EAAA,MAAA;AACW,CAAA;cAKV,aAAiB,EAAA,CAAA;EAAA,IAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAIpB,kBAJoB,EAAA,GAIF,mBAAA,CAAA,GAAA,CAAA,OAJE"}
@@ -1,3 +1,47 @@
1
- import { t as LineItemPrice } from "../../line-item-price-BlTwskFC.js";
1
+ import { convertToLocale } from "../../lib/utils/money.js";
2
+ import { getPercentageDiff } from "../../lib/utils/get-percentage-diff.js";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ import { clx } from "@medusajs/ui";
2
5
 
3
- export { LineItemPrice };
6
+ //#region src/components/line-item-price/index.tsx
7
+ const LineItemPrice = ({ item, style = "default", currencyCode }) => {
8
+ const { total, originalTotal } = item;
9
+ const originalPrice = originalTotal;
10
+ const currentPrice = total;
11
+ const hasReducedPrice = currentPrice && originalPrice && currentPrice < originalPrice;
12
+ return /* @__PURE__ */ jsx("div", {
13
+ className: "text-ui-fg-subtle flex flex-col items-end gap-x-2",
14
+ children: /* @__PURE__ */ jsxs("div", {
15
+ className: "text-left",
16
+ children: [hasReducedPrice && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("p", { children: [style === "default" && /* @__PURE__ */ jsx("span", {
17
+ className: "text-ui-fg-subtle",
18
+ children: "Original: "
19
+ }), /* @__PURE__ */ jsx("span", {
20
+ className: "text-ui-fg-muted line-through",
21
+ "data-testid": "product-original-price",
22
+ children: convertToLocale({
23
+ amount: originalPrice,
24
+ currency_code: currencyCode
25
+ })
26
+ })] }), style === "default" && /* @__PURE__ */ jsxs("span", {
27
+ className: "text-ui-fg-interactive",
28
+ children: [
29
+ "-",
30
+ getPercentageDiff(originalPrice, currentPrice || 0),
31
+ "%"
32
+ ]
33
+ })] }), /* @__PURE__ */ jsx("span", {
34
+ className: clx("text-base-regular", { "text-ui-fg-interactive": hasReducedPrice }),
35
+ "data-testid": "product-price",
36
+ children: convertToLocale({
37
+ amount: currentPrice ?? 0,
38
+ currency_code: currencyCode
39
+ })
40
+ })]
41
+ })
42
+ });
43
+ };
44
+
45
+ //#endregion
46
+ export { LineItemPrice };
47
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/line-item-price/index.tsx"],"sourcesContent":["import { clx } from '@medusajs/ui';\n\nimport { getPercentageDiff } from '@/lib/utils/get-percentage-diff';\nimport { convertToLocale } from '@/lib/utils/money';\nimport { LineItem } from '@/types/graphql';\n\ntype LineItemPriceProps = {\n item: LineItem;\n style?: 'default' | 'tight';\n currencyCode: string;\n};\n\nconst LineItemPrice = ({\n item,\n style = 'default',\n currencyCode,\n}: LineItemPriceProps) => {\n const { total, originalTotal } = item;\n const originalPrice = originalTotal;\n const currentPrice = total;\n const hasReducedPrice =\n currentPrice && originalPrice && currentPrice < originalPrice;\n\n return (\n <div className=\"text-ui-fg-subtle flex flex-col items-end gap-x-2\">\n <div className=\"text-left\">\n {hasReducedPrice && (\n <>\n <p>\n {style === 'default' && (\n <span className=\"text-ui-fg-subtle\">Original: </span>\n )}\n <span\n className=\"text-ui-fg-muted line-through\"\n data-testid=\"product-original-price\"\n >\n {convertToLocale({\n amount: originalPrice,\n currency_code: currencyCode,\n })}\n </span>\n </p>\n {style === 'default' && (\n <span className=\"text-ui-fg-interactive\">\n -{getPercentageDiff(originalPrice, currentPrice || 0)}%\n </span>\n )}\n </>\n )}\n <span\n className={clx('text-base-regular', {\n 'text-ui-fg-interactive': hasReducedPrice,\n })}\n data-testid=\"product-price\"\n >\n {convertToLocale({\n amount: currentPrice ?? 0,\n currency_code: currencyCode,\n })}\n </span>\n </div>\n </div>\n );\n};\n\nexport { LineItemPrice };\n"],"mappings":";;;;;;AAYA,MAAM,iBAAiB,EACrB,MACA,QAAQ,WACR,mBACwB;CACxB,MAAM,EAAE,OAAO,kBAAkB;CACjC,MAAM,gBAAgB;CACtB,MAAM,eAAe;CACrB,MAAM,kBACJ,gBAAgB,iBAAiB,eAAe;AAElD,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC;GAAI,WAAU;cACZ,mBACC,4CACE,qBAAC,kBACE,UAAU,aACT,oBAAC;IAAK,WAAU;cAAoB;KAAiB,EAEvD,oBAAC;IACC,WAAU;IACV,eAAY;cAEX,gBAAgB;KACf,QAAQ;KACR,eAAe;KAChB,CAAC;KACG,IACL,EACH,UAAU,aACT,qBAAC;IAAK,WAAU;;KAAyB;KACrC,kBAAkB,eAAe,gBAAgB,EAAE;KAAC;;KACjD,IAER,EAEL,oBAAC;IACC,WAAW,IAAI,qBAAqB,EAClC,0BAA0B,iBAC3B,CAAC;IACF,eAAY;cAEX,gBAAgB;KACf,QAAQ,gBAAgB;KACxB,eAAe;KAChB,CAAC;KACG;IACH;GACF"}
@@ -1,24 +1,17 @@
1
- import React from "react";
2
- import * as react_jsx_runtime21 from "react/jsx-runtime";
1
+ import { AnchorHTMLAttributes, DetailedHTMLProps } from "react";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/localized-client-link/index.d.ts
5
-
5
+ type LocalizedClientLinkProps = DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>;
6
6
  /**
7
- * Use this component to create a Next.js `<Link />` that persists the current country code in the url,
7
+ * Use this component to create an anchor link that persists the current country code in the url,
8
8
  * without having to explicitly pass it as a prop.
9
9
  */
10
10
  declare const LocalizedClientLink: ({
11
11
  children,
12
12
  href,
13
13
  ...props
14
- }: {
15
- children?: React.ReactNode;
16
- href: string;
17
- className?: string;
18
- onClick?: () => void;
19
- passHref?: true;
20
- [x: string]: any;
21
- }) => react_jsx_runtime21.JSX.Element;
14
+ }: LocalizedClientLinkProps) => react_jsx_runtime0.JSX.Element;
22
15
  //#endregion
23
16
  export { LocalizedClientLink };
24
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/localized-client-link/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAE0B;cASpB,mBAAuB,EAAA,CAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;CAAA,EAAA;EAAA,QAAA,CAAA,EAKhB,KAAA,CAAM,SALU;EAKhB,IAAM,EAAA,MAAA;EAMlB,SAAA,CAAA,EAAA,MAAA;EAQA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;;MARA,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/localized-client-link/index.tsx"],"sourcesContent":[],"mappings":";;;;KAMK,wBAAA,GAA2B,kBAC9B,qBAAqB,oBACrB;;;AAN8D;;cAa1D,mBARJ,EAAA,CAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAYC,wBAZD,EAAA,GAYyB,kBAAA,CAAA,GAAA,CAAA,OAZzB"}
@@ -1,5 +1,22 @@
1
1
  'use client';
2
2
 
3
- import { t as LocalizedClientLink } from "../../localized-client-link-CthmRcvb.js";
3
+ import { useParams } from "next/navigation";
4
+ import { jsx } from "react/jsx-runtime";
4
5
 
5
- export { LocalizedClientLink };
6
+ //#region src/components/localized-client-link/index.tsx
7
+ /**
8
+ * Use this component to create an anchor link that persists the current country code in the url,
9
+ * without having to explicitly pass it as a prop.
10
+ */
11
+ const LocalizedClientLink = ({ children, href, ...props }) => {
12
+ const { countryCode } = useParams();
13
+ return /* @__PURE__ */ jsx("a", {
14
+ href: `/${countryCode}${href}`,
15
+ ...props,
16
+ children
17
+ });
18
+ };
19
+
20
+ //#endregion
21
+ export { LocalizedClientLink };
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/localized-client-link/index.tsx"],"sourcesContent":["'use client';\n\nimport { AnchorHTMLAttributes, DetailedHTMLProps } from 'react';\n\nimport { useParams } from 'next/navigation';\n\ntype LocalizedClientLinkProps = DetailedHTMLProps<\n AnchorHTMLAttributes<HTMLAnchorElement>,\n HTMLAnchorElement\n>;\n\n/**\n * Use this component to create an anchor link that persists the current country code in the url,\n * without having to explicitly pass it as a prop.\n */\nconst LocalizedClientLink = ({\n children,\n href,\n ...props\n}: LocalizedClientLinkProps) => {\n const { countryCode } = useParams();\n\n return (\n <a href={`/${countryCode}${href}`} {...props}>\n {children}\n </a>\n );\n};\n\nexport { LocalizedClientLink };\n"],"mappings":";;;;;;;;;;AAeA,MAAM,uBAAuB,EAC3B,UACA,MACA,GAAG,YAC2B;CAC9B,MAAM,EAAE,gBAAgB,WAAW;AAEnC,QACE,oBAAC;EAAE,MAAM,IAAI,cAAc;EAAQ,GAAI;EACpC;GACC"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import * as react_jsx_runtime7 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/modal/index.d.ts
5
5
  type ModalProps = {
@@ -20,7 +20,7 @@ declare const Modal: {
20
20
  children,
21
21
  "data-testid": dataTestId,
22
22
  "aria-label": ariaLabel
23
- }: ModalProps): react_jsx_runtime7.JSX.Element;
23
+ }: ModalProps): react_jsx_runtime5.JSX.Element;
24
24
  Title: React.FC<{
25
25
  children: React.ReactNode;
26
26
  }>;
@@ -1,4 +1,102 @@
1
- import "../../modal-context-02cA-7jy.js";
2
- import { t as Modal } from "../../modal-BASYY-YM.js";
1
+ import { ModalProvider, useModal } from "../../lib/context/modal-context.js";
2
+ import React, { Fragment } from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Dialog, Transition } from "@headlessui/react";
5
+ import { clx } from "@medusajs/ui";
6
+ import { X } from "@gfed-medusa/sf-lib-ui/icons/x";
3
7
 
4
- export { Modal };
8
+ //#region src/components/modal/index.tsx
9
+ const Modal = ({ isOpen, close, size = "medium", search = false, children, "data-testid": dataTestId, "aria-label": ariaLabel }) => {
10
+ return /* @__PURE__ */ jsx(Transition, {
11
+ appear: true,
12
+ show: isOpen,
13
+ as: Fragment,
14
+ children: /* @__PURE__ */ jsxs(Dialog, {
15
+ as: "div",
16
+ className: "relative z-[75]",
17
+ onClose: close,
18
+ "aria-label": ariaLabel,
19
+ children: [/* @__PURE__ */ jsx(Transition.Child, {
20
+ as: Fragment,
21
+ enter: "ease-out duration-300",
22
+ enterFrom: "opacity-0",
23
+ enterTo: "opacity-100",
24
+ leave: "ease-in duration-200",
25
+ leaveFrom: "opacity-100",
26
+ leaveTo: "opacity-0",
27
+ children: /* @__PURE__ */ jsx("div", { className: "fixed inset-0 h-screen bg-opacity-75 backdrop-blur-md" })
28
+ }), /* @__PURE__ */ jsx("div", {
29
+ className: "fixed inset-0 overflow-y-hidden",
30
+ children: /* @__PURE__ */ jsx("div", {
31
+ className: clx("flex h-full min-h-full justify-center p-4 text-center", {
32
+ "items-center": !search,
33
+ "items-start": search
34
+ }),
35
+ children: /* @__PURE__ */ jsx(Transition.Child, {
36
+ as: Fragment,
37
+ enter: "ease-out duration-300",
38
+ enterFrom: "opacity-0 scale-95",
39
+ enterTo: "opacity-100 scale-100",
40
+ leave: "ease-in duration-200",
41
+ leaveFrom: "opacity-100 scale-100",
42
+ leaveTo: "opacity-0 scale-95",
43
+ children: /* @__PURE__ */ jsx(Dialog.Panel, {
44
+ "data-testid": dataTestId,
45
+ className: clx("flex h-fit max-h-[75vh] w-full transform flex-col justify-start p-5 text-left align-middle transition-all", {
46
+ "max-w-md": size === "small",
47
+ "max-w-xl": size === "medium",
48
+ "max-w-3xl": size === "large",
49
+ "bg-transparent shadow-none": search,
50
+ "rounded-rounded border bg-white shadow-xl": !search
51
+ }),
52
+ children: /* @__PURE__ */ jsx(ModalProvider, {
53
+ close,
54
+ children
55
+ })
56
+ })
57
+ })
58
+ })
59
+ })]
60
+ })
61
+ });
62
+ };
63
+ const Title = ({ children }) => {
64
+ const { close } = useModal();
65
+ return /* @__PURE__ */ jsxs(Dialog.Title, {
66
+ className: "flex items-center justify-between",
67
+ children: [/* @__PURE__ */ jsx("div", {
68
+ className: "text-large-semi",
69
+ children
70
+ }), /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("button", {
71
+ onClick: close,
72
+ "data-testid": "close-modal-button",
73
+ children: /* @__PURE__ */ jsx(X, { size: 20 })
74
+ }) })]
75
+ });
76
+ };
77
+ const Description = ({ children }) => {
78
+ return /* @__PURE__ */ jsx(Dialog.Description, {
79
+ className: "text-small-regular text-ui-fg-base flex h-full items-center justify-center pb-4 pt-2",
80
+ children
81
+ });
82
+ };
83
+ const Body = ({ children }) => {
84
+ return /* @__PURE__ */ jsx("div", {
85
+ className: "flex justify-center",
86
+ children
87
+ });
88
+ };
89
+ const Footer = ({ children }) => {
90
+ return /* @__PURE__ */ jsx("div", {
91
+ className: "flex items-center justify-end gap-x-4",
92
+ children
93
+ });
94
+ };
95
+ Modal.Title = Title;
96
+ Modal.Description = Description;
97
+ Modal.Body = Body;
98
+ Modal.Footer = Footer;
99
+
100
+ //#endregion
101
+ export { Modal };
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Title: React.FC<{ children: React.ReactNode }>","Description: React.FC<{ children: React.ReactNode }>","Body: React.FC<{ children: React.ReactNode }>","Footer: React.FC<{ children: React.ReactNode }>"],"sources":["../../../src/components/modal/index.tsx"],"sourcesContent":["import React, { Fragment } from 'react';\n\nimport { X } from '@gfed-medusa/sf-lib-ui/icons/x';\nimport { Dialog, Transition } from '@headlessui/react';\nimport { clx } from '@medusajs/ui';\n\nimport { ModalProvider, useModal } from '@/lib/context/modal-context';\n\ntype ModalProps = {\n isOpen: boolean;\n close: () => void;\n size?: 'small' | 'medium' | 'large';\n search?: boolean;\n children: React.ReactNode;\n 'data-testid'?: string;\n 'aria-label'?: string;\n};\n\nconst Modal = ({\n isOpen,\n close,\n size = 'medium',\n search = false,\n children,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n}: ModalProps) => {\n return (\n <Transition appear show={isOpen} as={Fragment}>\n <Dialog\n as=\"div\"\n className=\"relative z-[75]\"\n onClose={close}\n aria-label={ariaLabel}\n >\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div className=\"fixed inset-0 h-screen bg-opacity-75 backdrop-blur-md\" />\n </Transition.Child>\n\n <div className=\"fixed inset-0 overflow-y-hidden\">\n <div\n className={clx(\n 'flex h-full min-h-full justify-center p-4 text-center',\n {\n 'items-center': !search,\n 'items-start': search,\n }\n )}\n >\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0 scale-95\"\n enterTo=\"opacity-100 scale-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100 scale-100\"\n leaveTo=\"opacity-0 scale-95\"\n >\n <Dialog.Panel\n data-testid={dataTestId}\n className={clx(\n 'flex h-fit max-h-[75vh] w-full transform flex-col justify-start p-5 text-left align-middle transition-all',\n {\n 'max-w-md': size === 'small',\n 'max-w-xl': size === 'medium',\n 'max-w-3xl': size === 'large',\n 'bg-transparent shadow-none': search,\n 'rounded-rounded border bg-white shadow-xl': !search,\n }\n )}\n >\n <ModalProvider close={close}>{children}</ModalProvider>\n </Dialog.Panel>\n </Transition.Child>\n </div>\n </div>\n </Dialog>\n </Transition>\n );\n};\n\nconst Title: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const { close } = useModal();\n\n return (\n <Dialog.Title className=\"flex items-center justify-between\">\n <div className=\"text-large-semi\">{children}</div>\n <div>\n <button onClick={close} data-testid=\"close-modal-button\">\n <X size={20} />\n </button>\n </div>\n </Dialog.Title>\n );\n};\n\nconst Description: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n return (\n <Dialog.Description className=\"text-small-regular text-ui-fg-base flex h-full items-center justify-center pb-4 pt-2\">\n {children}\n </Dialog.Description>\n );\n};\n\nconst Body: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n return <div className=\"flex justify-center\">{children}</div>;\n};\n\nconst Footer: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n return (\n <div className=\"flex items-center justify-end gap-x-4\">{children}</div>\n );\n};\n\nModal.Title = Title;\nModal.Description = Description;\nModal.Body = Body;\nModal.Footer = Footer;\n\nexport { Modal };\n"],"mappings":";;;;;;;;AAkBA,MAAM,SAAS,EACb,QACA,OACA,OAAO,UACP,SAAS,OACT,UACA,eAAe,YACf,cAAc,gBACE;AAChB,QACE,oBAAC;EAAW;EAAO,MAAM;EAAQ,IAAI;YACnC,qBAAC;GACC,IAAG;GACH,WAAU;GACV,SAAS;GACT,cAAY;cAEZ,oBAAC,WAAW;IACV,IAAI;IACJ,OAAM;IACN,WAAU;IACV,SAAQ;IACR,OAAM;IACN,WAAU;IACV,SAAQ;cAER,oBAAC,SAAI,WAAU,0DAA0D;KACxD,EAEnB,oBAAC;IAAI,WAAU;cACb,oBAAC;KACC,WAAW,IACT,yDACA;MACE,gBAAgB,CAAC;MACjB,eAAe;MAChB,CACF;eAED,oBAAC,WAAW;MACV,IAAI;MACJ,OAAM;MACN,WAAU;MACV,SAAQ;MACR,OAAM;MACN,WAAU;MACV,SAAQ;gBAER,oBAAC,OAAO;OACN,eAAa;OACb,WAAW,IACT,6GACA;QACE,YAAY,SAAS;QACrB,YAAY,SAAS;QACrB,aAAa,SAAS;QACtB,8BAA8B;QAC9B,6CAA6C,CAAC;QAC/C,CACF;iBAED,oBAAC;QAAqB;QAAQ;SAAyB;QAC1C;OACE;MACf;KACF;IACC;GACE;;AAIjB,MAAMA,SAAkD,EAAE,eAAe;CACvE,MAAM,EAAE,UAAU,UAAU;AAE5B,QACE,qBAAC,OAAO;EAAM,WAAU;aACtB,oBAAC;GAAI,WAAU;GAAmB;IAAe,EACjD,oBAAC,mBACC,oBAAC;GAAO,SAAS;GAAO,eAAY;aAClC,oBAAC,KAAE,MAAM,KAAM;IACR,GACL;GACO;;AAInB,MAAMC,eAAwD,EAAE,eAAe;AAC7E,QACE,oBAAC,OAAO;EAAY,WAAU;EAC3B;GACkB;;AAIzB,MAAMC,QAAiD,EAAE,eAAe;AACtE,QAAO,oBAAC;EAAI,WAAU;EAAuB;GAAe;;AAG9D,MAAMC,UAAmD,EAAE,eAAe;AACxE,QACE,oBAAC;EAAI,WAAU;EAAyC;GAAe;;AAI3E,MAAM,QAAQ;AACd,MAAM,cAAc;AACpB,MAAM,OAAO;AACb,MAAM,SAAS"}
@@ -1,7 +1,7 @@
1
- import * as react_jsx_runtime5 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/nav/index.d.ts
4
- declare function Nav(): Promise<react_jsx_runtime5.JSX.Element>;
4
+ declare function Nav(): Promise<react_jsx_runtime6.JSX.Element>;
5
5
  //#endregion
6
6
  export { Nav };
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1,27 +1,8 @@
1
- import "../../medusa-TumrpCF2.js";
2
- import "../../apollo-client-Bw50r80c.js";
3
- import "../../product-COu5D1mS.js";
4
- import "../../cart-BNoIGQmw.js";
5
- import "../../cart-IHaLnQC4.js";
6
- import "../../cart-DH8urwwT.js";
7
- import "../../cookies-lksVIe4_.js";
8
- import { n as listRegions } from "../../regions-r1AvxfT8.js";
9
- import "../../cart-xkcyWLfU.js";
10
- import "../../delete-button-Bnm5bof2.js";
11
- import "../../line-item-options-l_eRZIIq.js";
12
- import "../../line-item-price-BlTwskFC.js";
13
- import { t as LocalizedClientLink } from "../../localized-client-link-CthmRcvb.js";
14
- import "../../thumbnail-C0TU3rh-.js";
15
- import "../../cart-dropdown-D_PUJarp.js";
16
- import { t as CartButton } from "../../cart-button-Dj_zRxop.js";
17
- import "../../product-C3HQUIgX.js";
18
- import "../../layout-country-select-C7Ra-opl.js";
19
- import "../../modal-context-02cA-7jy.js";
20
- import "../../modal-BASYY-YM.js";
21
- import "../../search-D7Gw7jAk.js";
22
- import "../../use-search-VX-u8o1D.js";
23
- import { t as SearchModal } from "../../search-modal-DaXadYWM.js";
24
- import { t as SideMenu } from "../../side-menu-B6IjTd5M.js";
1
+ import { listRegions } from "../../lib/data/regions.js";
2
+ import { LocalizedClientLink } from "../localized-client-link/index.js";
3
+ import { CartButton } from "../cart-button/index.js";
4
+ import { SearchModal } from "../search-modal/index.js";
5
+ import { SideMenu } from "../side-menu/index.js";
25
6
  import { Suspense } from "react";
26
7
  import { jsx, jsxs } from "react/jsx-runtime";
27
8
 
@@ -38,7 +19,7 @@ async function Nav() {
38
19
  className: "flex h-full flex-1 basis-0 items-center",
39
20
  children: /* @__PURE__ */ jsx("div", {
40
21
  className: "h-full",
41
- children: /* @__PURE__ */ jsx(SideMenu, { regions: await listRegions().then((regions) => regions) })
22
+ children: /* @__PURE__ */ jsx(SideMenu, { regions: await listRegions().then((regions) => regions).catch(() => null) })
42
23
  })
43
24
  }),
44
25
  /* @__PURE__ */ jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/nav/index.tsx"],"sourcesContent":["import { Suspense } from 'react';\n\nimport { listRegions } from '@/lib/data/regions';\nimport { Region } from '@/types/graphql';\n\nimport { CartButton } from '../cart-button';\nimport { LocalizedClientLink } from '../localized-client-link';\nimport { SearchModal } from '../search-modal';\nimport { SideMenu } from '../side-menu';\n\nasync function Nav() {\n const regions = await listRegions().then((regions: Region[]) => regions);\n\n return (\n <div className=\"group sticky inset-x-0 top-0 z-50\">\n <header className=\"border-ui-border-base relative mx-auto h-16 border-b bg-white duration-200\">\n <nav className=\"content-container text-small-regular txt-xsmall-plus text-ui-fg-subtle flex h-full w-full items-center justify-between\">\n <div className=\"flex h-full flex-1 basis-0 items-center\">\n <div className=\"h-full\">\n <SideMenu regions={regions} />\n </div>\n </div>\n\n <div className=\"flex h-full items-center\">\n <LocalizedClientLink\n href=\"/\"\n className=\"txt-compact-xlarge-plus hover:text-ui-fg-base uppercase\"\n data-testid=\"nav-store-link\"\n >\n Medusa Store\n </LocalizedClientLink>\n </div>\n\n <div className=\"flex h-full flex-1 basis-0 items-center justify-end gap-x-6\">\n <SearchModal />\n <div className=\"small:flex hidden h-full items-center gap-x-6\">\n <LocalizedClientLink\n className=\"hover:text-ui-fg-base\"\n href=\"/account\"\n data-testid=\"nav-account-link\"\n >\n Account\n </LocalizedClientLink>\n </div>\n <Suspense\n fallback={\n <LocalizedClientLink\n className=\"hover:text-ui-fg-base flex gap-2\"\n href=\"/cart\"\n data-testid=\"nav-cart-link\"\n >\n Cart (0)\n </LocalizedClientLink>\n }\n >\n <CartButton />\n </Suspense>\n </div>\n </nav>\n </header>\n </div>\n );\n}\n\nexport { Nav };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,eAAe,MAAM;AAGnB,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAO,WAAU;aAChB,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAI,WAAU;gBACb,oBAAC;OAAI,WAAU;iBACb,oBAAC,YAAS,SARN,MAAM,aAAa,CAAC,MAAM,YAAsB,QAAQ,GAQ9B;QAC1B;OACF;KAEN,oBAAC;MAAI,WAAU;gBACb,oBAAC;OACC,MAAK;OACL,WAAU;OACV,eAAY;iBACb;QAEqB;OAClB;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC,gBAAc;OACf,oBAAC;QAAI,WAAU;kBACb,oBAAC;SACC,WAAU;SACV,MAAK;SACL,eAAY;mBACb;UAEqB;SAClB;OACN,oBAAC;QACC,UACE,oBAAC;SACC,WAAU;SACV,MAAK;SACL,eAAY;mBACb;UAEqB;kBAGxB,oBAAC,eAAa;SACL;;OACP;;KACF;IACC;GACL"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/nav/index.tsx"],"sourcesContent":["import { Suspense } from 'react';\n\nimport { listRegions } from '@/lib/data/regions';\nimport { Region } from '@/types/graphql';\n\nimport { CartButton } from '../cart-button';\nimport { LocalizedClientLink } from '../localized-client-link';\nimport { SearchModal } from '../search-modal';\nimport { SideMenu } from '../side-menu';\n\nasync function Nav() {\n const regions = await listRegions()\n .then((regions: Region[]) => regions)\n .catch(() => null);\n\n return (\n <div className=\"group sticky inset-x-0 top-0 z-50\">\n <header className=\"border-ui-border-base relative mx-auto h-16 border-b bg-white duration-200\">\n <nav className=\"content-container text-small-regular txt-xsmall-plus text-ui-fg-subtle flex h-full w-full items-center justify-between\">\n <div className=\"flex h-full flex-1 basis-0 items-center\">\n <div className=\"h-full\">\n <SideMenu regions={regions} />\n </div>\n </div>\n\n <div className=\"flex h-full items-center\">\n <LocalizedClientLink\n href=\"/\"\n className=\"txt-compact-xlarge-plus hover:text-ui-fg-base uppercase\"\n data-testid=\"nav-store-link\"\n >\n Medusa Store\n </LocalizedClientLink>\n </div>\n\n <div className=\"flex h-full flex-1 basis-0 items-center justify-end gap-x-6\">\n <SearchModal />\n <div className=\"small:flex hidden h-full items-center gap-x-6\">\n <LocalizedClientLink\n className=\"hover:text-ui-fg-base\"\n href=\"/account\"\n data-testid=\"nav-account-link\"\n >\n Account\n </LocalizedClientLink>\n </div>\n <Suspense\n fallback={\n <LocalizedClientLink\n className=\"hover:text-ui-fg-base flex gap-2\"\n href=\"/cart\"\n data-testid=\"nav-cart-link\"\n >\n Cart (0)\n </LocalizedClientLink>\n }\n >\n <CartButton />\n </Suspense>\n </div>\n </nav>\n </header>\n </div>\n );\n}\n\nexport { Nav };\n"],"mappings":";;;;;;;;;AAUA,eAAe,MAAM;AAKnB,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAO,WAAU;aAChB,qBAAC;IAAI,WAAU;;KACb,oBAAC;MAAI,WAAU;gBACb,oBAAC;OAAI,WAAU;iBACb,oBAAC,YAAS,SAVN,MAAM,aAAa,CAChC,MAAM,YAAsB,QAAQ,CACpC,YAAY,KAAK,GAQsB;QAC1B;OACF;KAEN,oBAAC;MAAI,WAAU;gBACb,oBAAC;OACC,MAAK;OACL,WAAU;OACV,eAAY;iBACb;QAEqB;OAClB;KAEN,qBAAC;MAAI,WAAU;;OACb,oBAAC,gBAAc;OACf,oBAAC;QAAI,WAAU;kBACb,oBAAC;SACC,WAAU;SACV,MAAK;SACL,eAAY;mBACb;UAEqB;SAClB;OACN,oBAAC;QACC,UACE,oBAAC;SACC,WAAU;SACV,MAAK;SACL,eAAY;mBACb;UAEqB;kBAGxB,oBAAC,eAAa;SACL;;OACP;;KACF;IACC;GACL"}
@@ -1,5 +1,5 @@
1
- import { ar as RichTextBlock } from "../../graphql-CdTGi4Pp.js";
2
- import * as react_jsx_runtime6 from "react/jsx-runtime";
1
+ import { RichTextBlock } from "../../types/graphql.js";
2
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/portable-text/index.d.ts
5
5
  type PortableTextProps = {
@@ -7,7 +7,7 @@ type PortableTextProps = {
7
7
  };
8
8
  declare const PortableText: ({
9
9
  value
10
- }: PortableTextProps) => react_jsx_runtime6.JSX.Element | null;
10
+ }: PortableTextProps) => react_jsx_runtime8.JSX.Element | null;
11
11
  //#endregion
12
12
  export { PortableText };
13
13
  //# sourceMappingURL=index.d.ts.map