1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/components/home/ExploreProducts.tsx");import __vite__cjsImport0_react_jsxDevRuntime from "/@fs/home/runner/workspace/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=9ce4103e"; const jsxDEV = __vite__cjsImport0_react_jsxDevRuntime["jsxDEV"]; 2import RefreshRuntime from "/@react-refresh"; 3const inWebWorker = typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope; 4let prevRefreshReg; 5let prevRefreshSig; 6if (import.meta.hot && !inWebWorker) { 7 if (!window.__vite_plugin_react_preamble_installed__) { 8 throw new Error("@vitejs/plugin-react can't detect preamble. Something is wrong. See https://github.com/vitejs/vite-plugin-react/pull/11#discussion_r430879201"); 9 } 10 prevRefreshReg = window.$RefreshReg$; 11 prevRefreshSig = window.$RefreshSig$; 12 window.$RefreshReg$ = (type, id) => { 13 RefreshRuntime.register(type, "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx " + id); 14 }; 15 window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform; 16} 17var _s = $RefreshSig$(); 18import { Link } from "/@fs/home/runner/workspace/node_modules/.vite/deps/wouter.js?v=9ce4103e"; 19import { useLanguage } from "/src/lib/LanguageContext.tsx"; 20import faceImage from "/src/assets/stock_images/kyn_face_serum.png?import"; 21import bodyImage from "/src/assets/stock_images/kyn_body_cream.png?import"; 22import lipsImage from "/src/assets/stock_images/kyn_lip_gloss_new.png?import"; 23const ExploreProducts = () => { 24 _s(); 25 const { t } = useLanguage(); 26 const categories = [ 27 { 28 id: "face", 29 name: "FACE", 30 image: faceImage, 31 filter: "face" 32 }, 33 { 34 id: "body", 35 name: "BODY", 36 image: bodyImage, 37 filter: "body" 38 }, 39 { 40 id: "lips", 41 name: "LIPS", 42 image: lipsImage, 43 filter: "lips" 44 } 45 ]; 46 return /* @__PURE__ */ jsxDEV("section", { className: "pt-16 pb-20 bg-white", children: /* @__PURE__ */ jsxDEV("div", { className: "w-full max-w-[1440px] mx-auto px-4 md:px-8 lg:px-12", children: [ 47 /* @__PURE__ */ jsxDEV("div", { className: "max-w-3xl mx-auto text-center mb-16", children: [
48 /* @__PURE__ */ jsxDEV("h2", { className: "text-base uppercase tracking-[2px] mb-5 font-light", "data-i18n": "exploreProductsTitle", children: t("exploreProductsTitle") }, void 0, false, { 49 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 50 lineNumber: 36, 51 columnNumber: 11 52 }, this), 53 /* @__PURE__ */ jsxDEV("p", { className: "text-sm md:text-[14px] max-w-lg mx-auto px-6 font-light leading-relaxed", "data-i18n": "exploreProductsText", children: t("exploreProductsText") }, void 0, false, { 54 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 55 lineNumber: 40, 56 columnNumber: 11 57 }, this) 58 ] }, void 0, true, { 59 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 60 lineNumber: 35, 61 columnNumber: 9 62 }, this), 63 /* @__PURE__ */ jsxDEV("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-8 lg:gap-12", children: categories.map( 64 (category) => /* @__PURE__ */ jsxDEV( 65 Link, 66 { 67 href: `/store?category=${category.filter}`, 68 className: "group cursor-pointer", 69 "data-testid": `category-card-${category.id}`, 70 children: /* @__PURE__ */ jsxDEV("div", { className: "relative aspect-[3/4] overflow-hidden bg-gray-100 rounded-sm zoom-container", children: [
71 /* @__PURE__ */ jsxDEV( 72 "img", 73 { 74 src: category.image, 75 alt: `KYN Skincare ${category.name} products`, 76 loading: "lazy", 77 decoding: "async", 78 className: "w-full h-full object-cover zoom-image" 79 }, 80 void 0, 81 false, 82 { 83 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 84 lineNumber: 55, 85 columnNumber: 17 86 }, 87 this 88 ), 89 /* @__PURE__ */ jsxDEV("div", { className: "absolute inset-0 bg-white bg-opacity-10 group-hover:bg-opacity-20 transition-all duration-500" }, void 0, false, { 90 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 91 lineNumber: 63, 92 columnNumber: 17 93 }, this), 94 /* @__PURE__ */ jsxDEV("div", { className: "absolute bottom-6 right-6", children: /* @__PURE__ */ jsxDEV( 95 "h3", 96 { 97 className: "text-sm md:text-base font-light tracking-[2px] uppercase", 98 style: { color: "#1a1a1a" }, 99 children: category.name 100 }, 101 void 0, 102 false, 103 { 104 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 105 lineNumber: 67, 106 columnNumber: 19 107 }, 108 this 109 ) }, void 0, false, { 110 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 111 lineNumber: 66, 112 columnNumber: 17 113 }, this) 114 ] }, void 0, true, { 115 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 116 lineNumber: 54, 117 columnNumber: 15 118 }, this) 119 }, 120 category.id, 121 false, 122 { 123 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 124 lineNumber: 48, 125 columnNumber: 11 126 }, 127 this 128 ) 129 ) }, void 0, false, { 130 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 131 lineNumber: 46, 132 columnNumber: 9 133 }, this) 134 ] }, void 0, true, { 135 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 136 lineNumber: 34, 137 columnNumber: 7 138 }, this) }, void 0, false, { 139 fileName: "/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", 140 lineNumber: 33, 141 columnNumber: 5 142 }, this); 143}; 144_s(ExploreProducts, "ot2YhC7pP10gRrIouBKIa40vomw=", false, function() { 145 return [useLanguage]; 146}); 147_c = ExploreProducts; 148export default ExploreProducts; 149var _c; 150$RefreshReg$(_c, "ExploreProducts"); 151if (import.meta.hot && !inWebWorker) { 152 window.$RefreshReg$ = prevRefreshReg; 153 window.$RefreshSig$ = prevRefreshSig; 154} 155if (import.meta.hot && !inWebWorker) { 156 RefreshRuntime.__hmr_import(import.meta.url).then((currentExports) => { 157 RefreshRuntime.registerExportsForReactRefresh("/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", currentExports); 158 import.meta.hot.accept((nextExports) => { 159 if (!nextExports) return; 160 const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/home/runner/workspace/client/src/components/home/ExploreProducts.tsx", currentExports, nextExports); 161 if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage); 162 }); 163 }); 164} 165 166//# sourceMappingURL=data:application/json;base64,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BQUFBO0FBQUEsTUF5QkE7QUFBQSxJQUNELEtBNUJIO0FBQUE7QUFBQTtBQUFBO0FBQUEsV0E2QkE7QUFBQSxPQXpDRjtBQUFBO0FBQUE7QUFBQTtBQUFBLFNBMENBLEtBM0NGO0FBQUE7QUFBQTtBQUFBO0FBQUEsU0E0Q0E7QUFFSjtBQUFFSCxHQXZFSUQsaUJBQXlCO0FBQUEsVUFDZkosV0FBVztBQUFBO0FBQUFlLEtBRHJCWDtBQXlFTixlQUFlQTtBQUFnQixJQUFBVztBQUFBQyxhQUFBRCxJQUFBIiwibmFtZXMiOlsiTGluayIsInVzZUxhbmd1YWdlIiwiZmFjZUltYWdlIiwiYm9keUltYWdlIiwibGlwc0ltYWdlIiwiRXhwbG9yZVByb2R1Y3RzIiwiX3MiLCJ0IiwiY2F0ZWdvcmllcyIsImlkIiwibmFtZSIsImltYWdlIiwiZmlsdGVyIiwibWFwIiwiY2F0ZWdvcnkiLCJjb2xvciIsIl9jIiwiJFJlZnJlc2hSZWckIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VzIjpbIkV4cGxvcmVQcm9kdWN0cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICd3b3V0ZXInO1xuaW1wb3J0IHsgdXNlTGFuZ3VhZ2UgfSBmcm9tICdAL2xpYi9MYW5ndWFnZUNvbnRleHQnO1xuaW1wb3J0IGZhY2VJbWFnZSBmcm9tICcuLi8uLi9hc3NldHMvc3RvY2tfaW1hZ2VzL2t5bl9mYWNlX3NlcnVtLnBuZyc7XG5pbXBvcnQgYm9keUltYWdlIGZyb20gJy4uLy4uL2Fzc2V0cy9zdG9ja19pbWFnZXMva3luX2JvZHlfY3JlYW0ucG5nJztcbmltcG9ydCBsaXBzSW1hZ2UgZnJvbSAnLi4vLi4vYXNzZXRzL3N0b2NrX2ltYWdlcy9reW5fbGlwX2dsb3NzX25ldy5wbmcnO1xuXG5jb25zdCBFeHBsb3JlUHJvZHVjdHM6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZUxhbmd1YWdlKCk7XG4gIFxuICBjb25zdCBjYXRlZ29yaWVzID0gW1xuICAgIHtcbiAgICAgIGlkOiAnZmFjZScsXG4gICAgICBuYW1lOiAnRkFDRScsXG4gICAgICBpbWFnZTogZmFjZUltYWdlLFxuICAgICAgZmlsdGVyOiAnZmFjZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnYm9keScsXG4gICAgICBuYW1lOiAnQk9EWScsXG4gICAgICBpbWFnZTogYm9keUltYWdlLFxuICAgICAgZmlsdGVyOiAnYm9keSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnbGlwcycsXG4gICAgICBuYW1lOiAnTElQUycsXG4gICAgICBpbWFnZTogbGlwc0ltYWdlLFxuICAgICAgZmlsdGVyOiAnbGlwcydcbiAgICB9XG4gIF07XG4gIFxuICByZXR1cm4gKFxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInB0LTE2IHBiLTIwIGJnLXdoaXRlXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBtYXgtdy1bMTQ0MHB4XSBteC1hdXRvIHB4LTQgbWQ6cHgtOCBsZzpweC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTN4bCBteC1hdXRvIHRleHQtY2VudGVyIG1iLTE2XCI+XG4gICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtYmFzZSB1cHBlcmNhc2UgdHJhY2tpbmctWzJweF0gbWItNSBmb250LWxpZ2h0XCIgZGF0YS1pMThuPVwiZXhwbG9yZVByb2R1Y3RzVGl0bGVcIj5cbiAgICAgICAgICAgIHt0KCdleHBsb3JlUHJvZHVjdHNUaXRsZScpfVxuICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSBtZDp0ZXh0LVsxNHB4XSBtYXgtdy1sZyBteC1hdXRvIHB4LTYgZm9udC1saWdodCBsZWFkaW5nLXJlbGF4ZWRcIiBkYXRhLWkxOG49XCJleHBsb3JlUHJvZHVjdHNUZXh0XCI+XG4gICAgICAgICAgICB7dCgnZXhwbG9yZVByb2R1Y3RzVGV4dCcpfVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICB7LyogQ2F0ZWdvcnkgY2FyZHMgY29udGFpbmVyICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTggbGc6Z2FwLTEyXCI+XG4gICAgICAgICAge2NhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gKFxuICAgICAgICAgICAgPExpbmsgXG4gICAgICAgICAgICAgIGtleT17Y2F0ZWdvcnkuaWR9IFxuICAgICAgICAgICAgICBocmVmPXtgL3N0b3JlP2NhdGVnb3J5PSR7Y2F0ZWdvcnkuZmlsdGVyfWB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImdyb3VwIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9e2BjYXRlZ29yeS1jYXJkLSR7Y2F0ZWdvcnkuaWR9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBhc3BlY3QtWzMvNF0gb3ZlcmZsb3ctaGlkZGVuIGJnLWdyYXktMTAwIHJvdW5kZWQtc20gem9vbS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8aW1nIFxuICAgICAgICAgICAgICAgICAgc3JjPXtjYXRlZ29yeS5pbWFnZX1cbiAgICAgICAgICAgICAgICAgIGFsdD17YEtZTiBTa2luY2FyZSAke2NhdGVnb3J5Lm5hbWV9IHByb2R1Y3RzYH1cbiAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcbiAgICAgICAgICAgICAgICAgIGRlY29kaW5nPVwiYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGgtZnVsbCBvYmplY3QtY292ZXIgem9vbS1pbWFnZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7LyogTGlnaHQgb3ZlcmxheSBmb3IgYmV0dGVyIHRleHQgdmlzaWJpbGl0eSAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctd2hpdGUgYmctb3BhY2l0eS0xMCBncm91cC1ob3ZlcjpiZy1vcGFjaXR5LTIwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTUwMFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgI
166HsvKiBDYXRlZ29yeSBuYW1lIGF0IGJvdHRvbS1yaWdodCAqL31cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGJvdHRvbS02IHJpZ2h0LTZcIj5cbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXNtIG1kOnRleHQtYmFzZSBmb250LWxpZ2h0IHRyYWNraW5nLVsycHhdIHVwcGVyY2FzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICcjMWExYTFhJyB9fT5cbiAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBFeHBsb3JlUHJvZHVjdHM7Il0sImZpbGUiOiIvaG9tZS9ydW5uZXIvd29ya3NwYWNlL2NsaWVudC9zcmMvY29tcG9uZW50cy9ob21lL0V4cGxvcmVQcm9kdWN0cy50c3gifQ==
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.