diff --git a/plugins/carhop-blocks/blocks/narrative-card/build/index.asset.php b/plugins/carhop-blocks/blocks/narrative-card/build/index.asset.php
index c7a75c2..9c8c3b5 100644
--- a/plugins/carhop-blocks/blocks/narrative-card/build/index.asset.php
+++ b/plugins/carhop-blocks/blocks/narrative-card/build/index.asset.php
@@ -1 +1 @@
- array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n', 'wp-primitives'), 'version' => '2721f0bd0927b41830cc');
+ array('react-jsx-runtime', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-i18n', 'wp-primitives'), 'version' => '87a2a00fa1123fa69557');
diff --git a/plugins/carhop-blocks/blocks/narrative-card/build/index.js b/plugins/carhop-blocks/blocks/narrative-card/build/index.js
index 66a0598..0da6d52 100644
--- a/plugins/carhop-blocks/blocks/narrative-card/build/index.js
+++ b/plugins/carhop-blocks/blocks/narrative-card/build/index.js
@@ -212,7 +212,20 @@ function Edit({
...(0,_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_1__.useBlockProps)({
className: `narrative-card ${hasCover ? `narrative-card--has-cover narrative-card--has-cover--${coverPosition} ${blackWhiteCoverFilter ? "narrative-card--black-white-cover-filter" : ""}` : ""}`
}),
- children: [shouldShowCoverLeft && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Cover__WEBPACK_IMPORTED_MODULE_4__["default"], {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("svg", {
+ viewBox: "0 0 1216 407",
+ fill: "none",
+ xmlns: "http://www.w3.org/2000/svg",
+ preserveAspectRatio: "none",
+ className: "narrative-card__background",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("path", {
+ d: "M1 11V406H1205L1215 1L1 11Z",
+ fill: "white",
+ stroke: "#136F63",
+ strokeWidth: "2",
+ vectorEffect: "non-scaling-stroke"
+ })
+ }), shouldShowCoverLeft && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Cover__WEBPACK_IMPORTED_MODULE_4__["default"], {
coverUrl: coverUrl,
coverAlt: coverAlt,
onSelect: setCoverAttributes
@@ -318,7 +331,20 @@ function save({
..._wordpress_block_editor__WEBPACK_IMPORTED_MODULE_0__.useBlockProps.save({
className: `narrative-card ${hasCover ? `narrative-card--has-cover narrative-card--has-cover--${coverPosition} ${blackWhiteCoverFilter ? "narrative-card--black-white-cover-filter" : ""}` : ""}`
}),
- children: [hasCover && coverPosition === "left" && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
+ children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("svg", {
+ viewBox: "0 0 1216 407",
+ fill: "none",
+ xmlns: "http://www.w3.org/2000/svg",
+ preserveAspectRatio: "none",
+ className: "narrative-card__background",
+ children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("path", {
+ d: "M1 11V406H1205L1215 1L1 11Z",
+ fill: "white",
+ stroke: "#136F63",
+ strokeWidth: "2",
+ vectorEffect: "non-scaling-stroke"
+ })
+ }), hasCover && coverPosition === "left" && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
className: "narrative-card__cover",
children: hasCover && coverUrl && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("img", {
src: coverUrl,
diff --git a/plugins/carhop-blocks/blocks/narrative-card/build/index.js.map b/plugins/carhop-blocks/blocks/narrative-card/build/index.js.map
index 5781c49..5572063 100644
--- a/plugins/carhop-blocks/blocks/narrative-card/build/index.js.map
+++ b/plugins/carhop-blocks/blocks/narrative-card/build/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","mappings":"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,QAAQ,IAAID,aAAa,KAAK,OAAO,iBACrCxC,sDAAA;MAAKO,SAAS,EAAC,uBAAuB;MAAAC,QAAA,EACpCiC,QAAQ,IAAIrC,QAAQ,iBAAIJ,sDAAA;QAAKS,GAAG,EAAEL,QAAS;QAACM,GAAG,EAAEL;MAAS,CAAE;IAAC,CAC1D,CACL;EAAA,CACG,CAAC;AAER;;;;;;;;;;;ACpCA;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEjDA;UACA;UACA;UACA;UACA","sources":["webpack://cta/./node_modules/@wordpress/icons/build-module/library/trash.js","webpack://cta/./src/Cover.jsx","webpack://cta/./src/edit.js","webpack://cta/./src/editor.scss?0339","webpack://cta/./src/index.js","webpack://cta/./src/save.js","webpack://cta/./src/style.scss?75bd","webpack://cta/external window [\"wp\",\"blockEditor\"]","webpack://cta/external window [\"wp\",\"blocks\"]","webpack://cta/external window [\"wp\",\"components\"]","webpack://cta/external window [\"wp\",\"i18n\"]","webpack://cta/external window [\"wp\",\"primitives\"]","webpack://cta/external window \"ReactJSXRuntime\"","webpack://cta/webpack/bootstrap","webpack://cta/webpack/runtime/chunk loaded","webpack://cta/webpack/runtime/compat get default export","webpack://cta/webpack/runtime/define property getters","webpack://cta/webpack/runtime/hasOwnProperty shorthand","webpack://cta/webpack/runtime/make namespace object","webpack://cta/webpack/runtime/jsonp chunk loading","webpack://cta/webpack/before-startup","webpack://cta/webpack/startup","webpack://cta/webpack/after-startup"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst trash = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 5.5A2.25 2.25 0 0 0 9.878 7h4.244A2.251 2.251 0 0 0 12 5.5ZM12 4a3.751 3.751 0 0 0-3.675 3H5v1.5h1.27l.818 8.997a2.75 2.75 0 0 0 2.739 2.501h4.347a2.75 2.75 0 0 0 2.738-2.5L17.73 8.5H19V7h-3.325A3.751 3.751 0 0 0 12 4Zm4.224 4.5H7.776l.806 8.861a1.25 1.25 0 0 0 1.245 1.137h4.347a1.25 1.25 0 0 0 1.245-1.137l.805-8.861Z\"\n })\n});\nexport default trash;\n//# sourceMappingURL=trash.js.map","import { MediaPlaceholder } from \"@wordpress/block-editor\";\r\n\r\nexport default function Cover({ coverUrl, coverAlt, onSelect }) {\r\n\treturn (\r\n\t\t
\r\n\t\t\t{coverUrl &&

}\r\n\t\t\t{!coverUrl && (\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n}\r\n","import { __ } from \"@wordpress/i18n\";\nimport {\n\tuseBlockProps,\n\tRichText,\n\tMediaReplaceFlow,\n\tInspectorControls,\n\t__experimentalLinkControl as LinkControl,\n\tuseSetting,\n\tInnerBlocks,\n\tMediaPlaceholder,\n} from \"@wordpress/block-editor\";\nimport {\n\tPanelBody,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tCheckboxControl,\n} from \"@wordpress/components\";\nimport \"./editor.scss\";\nimport { lock, trash } from \"@wordpress/icons\";\nimport CoverImage from \"./Cover\";\n\nexport default function Edit({ attributes, setAttributes }) {\n\tconst {\n\t\tcoverId,\n\t\tcoverUrl,\n\t\tcoverAlt,\n\t\tcoverPosition,\n\t\thasCover,\n\t\tblackWhiteCoverFilter,\n\t} = attributes;\n\tconst colors = useSetting(\"color.palette.theme\");\n\n\tfunction setCoverAttributes(cover) {\n\t\tsetAttributes({\n\t\t\tcoverId: cover.id,\n\t\t\tcoverAlt: cover.alt,\n\t\t\tcoverUrl: cover.url,\n\t\t});\n\t}\n\tfunction removeCoverAttributes() {\n\t\tsetAttributes({\n\t\t\tcoverId: null,\n\t\t\tcoverAlt: null,\n\t\t\tcoverUrl: null,\n\t\t});\n\t}\n\n\t// Déterminer l'ordre des éléments basé sur la position\n\tconst shouldShowCoverLeft = hasCover && coverPosition === \"left\";\n\tconst shouldShowCoverRight = hasCover && coverPosition === \"right\";\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setAttributes({ hasCover: value })}\n\t\t\t\t\t/>\n\t\t\t\t\t{coverUrl &&
}\n\n\t\t\t\t\t{hasCover && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{coverUrl && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t setAttributes({ coverPosition: value })}\n\t\t\t\t\t\t\t\tvalue={coverPosition}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetAttributes({ blackWhiteCoverFilter: value === \"true\" });\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={blackWhiteCoverFilter ? \"true\" : \"false\"}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{shouldShowCoverLeft && (\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{shouldShowCoverRight && (\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t>\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport {};","import { registerBlockType } from \"@wordpress/blocks\";\nimport \"./style.scss\";\n\nimport Edit from \"./edit\";\nimport save from \"./save\";\nimport metadata from \"./block.json\";\n\nregisterBlockType(metadata.name, {\n\ticon: {\n\t\tsrc: (\n\t\t\t\n\t\t),\n\t\tforeground: \"#136f63\",\n\t},\n\tedit: Edit,\n\tsave,\n});\n","import { useBlockProps } from \"@wordpress/block-editor\";\nimport { InnerBlocks } from \"@wordpress/block-editor\";\n\nexport default function save({ attributes }) {\n\tconst { hasCover, coverUrl, coverAlt, coverPosition, blackWhiteCoverFilter } =\n\t\tattributes;\n\n\treturn (\n\t\t\n\t\t\t{hasCover && coverPosition === \"left\" && (\n\t\t\t\t
\n\t\t\t\t\t{hasCover && coverUrl &&

}\n\t\t\t\t
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t{hasCover && coverPosition === \"right\" && (\n\t\t\t\t
\n\t\t\t\t\t{hasCover && coverUrl &&

}\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","module.exports = window[\"ReactJSXRuntime\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"index\": 0,\n\t\"./style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkcta\"] = globalThis[\"webpackChunkcta\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"./style-index\"], () => (__webpack_require__(\"./src/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["MediaPlaceholder","jsx","_jsx","jsxs","_jsxs","Cover","coverUrl","coverAlt","onSelect","className","children","src","alt","accept","allowedTypes","multiple","handleUpload","__","useBlockProps","RichText","MediaReplaceFlow","InspectorControls","__experimentalLinkControl","LinkControl","useSetting","InnerBlocks","PanelBody","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","CheckboxControl","lock","trash","CoverImage","Fragment","_Fragment","Edit","attributes","setAttributes","coverId","coverPosition","hasCover","blackWhiteCoverFilter","colors","setCoverAttributes","cover","id","url","removeCoverAttributes","shouldShowCoverLeft","shouldShowCoverRight","title","label","checked","onChange","value","mediaId","mediaUrl","name","variant","icon","onClick","isBlock","allowedBlocks","template","content","registerBlockType","save","metadata","xmlns","viewBox","d","foreground","edit","Content"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"index.js","mappings":"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","sources":["webpack://cta/./node_modules/@wordpress/icons/build-module/library/trash.js","webpack://cta/./src/Cover.jsx","webpack://cta/./src/edit.js","webpack://cta/./src/editor.scss","webpack://cta/./src/index.js","webpack://cta/./src/save.js","webpack://cta/./src/style.scss","webpack://cta/external window [\"wp\",\"blockEditor\"]","webpack://cta/external window [\"wp\",\"blocks\"]","webpack://cta/external window [\"wp\",\"components\"]","webpack://cta/external window [\"wp\",\"i18n\"]","webpack://cta/external window [\"wp\",\"primitives\"]","webpack://cta/external window \"ReactJSXRuntime\"","webpack://cta/webpack/bootstrap","webpack://cta/webpack/runtime/chunk loaded","webpack://cta/webpack/runtime/compat get default export","webpack://cta/webpack/runtime/define property getters","webpack://cta/webpack/runtime/hasOwnProperty shorthand","webpack://cta/webpack/runtime/make namespace object","webpack://cta/webpack/runtime/jsonp chunk loading","webpack://cta/webpack/before-startup","webpack://cta/webpack/startup","webpack://cta/webpack/after-startup"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst trash = /*#__PURE__*/_jsx(SVG, {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/_jsx(Path, {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 5.5A2.25 2.25 0 0 0 9.878 7h4.244A2.251 2.251 0 0 0 12 5.5ZM12 4a3.751 3.751 0 0 0-3.675 3H5v1.5h1.27l.818 8.997a2.75 2.75 0 0 0 2.739 2.501h4.347a2.75 2.75 0 0 0 2.738-2.5L17.73 8.5H19V7h-3.325A3.751 3.751 0 0 0 12 4Zm4.224 4.5H7.776l.806 8.861a1.25 1.25 0 0 0 1.245 1.137h4.347a1.25 1.25 0 0 0 1.245-1.137l.805-8.861Z\"\n })\n});\nexport default trash;\n//# sourceMappingURL=trash.js.map","import { MediaPlaceholder } from \"@wordpress/block-editor\";\r\n\r\nexport default function Cover({ coverUrl, coverAlt, onSelect }) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{coverUrl &&

}\r\n\t\t\t{!coverUrl && (\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n}\r\n","import { __ } from \"@wordpress/i18n\";\nimport {\n\tuseBlockProps,\n\tRichText,\n\tMediaReplaceFlow,\n\tInspectorControls,\n\t__experimentalLinkControl as LinkControl,\n\tuseSetting,\n\tInnerBlocks,\n\tMediaPlaceholder,\n} from \"@wordpress/block-editor\";\nimport {\n\tPanelBody,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\tButton,\n\tCheckboxControl,\n} from \"@wordpress/components\";\nimport \"./editor.scss\";\nimport { lock, trash } from \"@wordpress/icons\";\nimport CoverImage from \"./Cover\";\n\nexport default function Edit({ attributes, setAttributes }) {\n\tconst {\n\t\tcoverId,\n\t\tcoverUrl,\n\t\tcoverAlt,\n\t\tcoverPosition,\n\t\thasCover,\n\t\tblackWhiteCoverFilter,\n\t} = attributes;\n\tconst colors = useSetting(\"color.palette.theme\");\n\n\tfunction setCoverAttributes(cover) {\n\t\tsetAttributes({\n\t\t\tcoverId: cover.id,\n\t\t\tcoverAlt: cover.alt,\n\t\t\tcoverUrl: cover.url,\n\t\t});\n\t}\n\tfunction removeCoverAttributes() {\n\t\tsetAttributes({\n\t\t\tcoverId: null,\n\t\t\tcoverAlt: null,\n\t\t\tcoverUrl: null,\n\t\t});\n\t}\n\n\t// Déterminer l'ordre des éléments basé sur la position\n\tconst shouldShowCoverLeft = hasCover && coverPosition === \"left\";\n\tconst shouldShowCoverRight = hasCover && coverPosition === \"right\";\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t setAttributes({ hasCover: value })}\n\t\t\t\t\t/>\n\t\t\t\t\t{coverUrl &&
}\n\n\t\t\t\t\t{hasCover && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{coverUrl && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t setAttributes({ coverPosition: value })}\n\t\t\t\t\t\t\t\tvalue={coverPosition}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetAttributes({ blackWhiteCoverFilter: value === \"true\" });\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tvalue={blackWhiteCoverFilter ? \"true\" : \"false\"}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{shouldShowCoverLeft && (\n\t\t\t\t\t
\n\t\t\t\t)}\n\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\n\t\t\t\t{shouldShowCoverRight && (\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t
\n\t\t>\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport {};","import { registerBlockType } from \"@wordpress/blocks\";\nimport \"./style.scss\";\n\nimport Edit from \"./edit\";\nimport save from \"./save\";\nimport metadata from \"./block.json\";\n\nregisterBlockType(metadata.name, {\n\ticon: {\n\t\tsrc: (\n\t\t\t\n\t\t),\n\t\tforeground: \"#136f63\",\n\t},\n\tedit: Edit,\n\tsave,\n});\n","import { useBlockProps } from \"@wordpress/block-editor\";\nimport { InnerBlocks } from \"@wordpress/block-editor\";\n\nexport default function save({ attributes }) {\n\tconst { hasCover, coverUrl, coverAlt, coverPosition, blackWhiteCoverFilter } =\n\t\tattributes;\n\n\treturn (\n\t\t\n\t\t\t
\n\n\t\t\t{hasCover && coverPosition === \"left\" && (\n\t\t\t\t
\n\t\t\t\t\t{hasCover && coverUrl &&

}\n\t\t\t\t
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t{hasCover && coverPosition === \"right\" && (\n\t\t\t\t
\n\t\t\t\t\t{hasCover && coverUrl &&

}\n\t\t\t\t
\n\t\t\t)}\n\t\t
\n\t);\n}\n","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"i18n\"];","module.exports = window[\"wp\"][\"primitives\"];","module.exports = window[\"ReactJSXRuntime\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"index\": 0,\n\t\"./style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkcta\"] = globalThis[\"webpackChunkcta\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"./style-index\"], () => (__webpack_require__(\"./src/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["MediaPlaceholder","jsx","_jsx","jsxs","_jsxs","Cover","coverUrl","coverAlt","onSelect","className","children","src","alt","accept","allowedTypes","multiple","handleUpload","__","useBlockProps","RichText","MediaReplaceFlow","InspectorControls","__experimentalLinkControl","LinkControl","useSetting","InnerBlocks","PanelBody","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","Button","CheckboxControl","lock","trash","CoverImage","Fragment","_Fragment","Edit","attributes","setAttributes","coverId","coverPosition","hasCover","blackWhiteCoverFilter","colors","setCoverAttributes","cover","id","url","removeCoverAttributes","shouldShowCoverLeft","shouldShowCoverRight","title","label","checked","onChange","value","mediaId","mediaUrl","name","variant","icon","onClick","isBlock","viewBox","fill","xmlns","preserveAspectRatio","d","stroke","strokeWidth","vectorEffect","allowedBlocks","template","content","registerBlockType","save","metadata","foreground","edit","Content"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/carhop-blocks/blocks/narrative-card/src/edit.js b/plugins/carhop-blocks/blocks/narrative-card/src/edit.js
index 910b9f0..d25fcba 100644
--- a/plugins/carhop-blocks/blocks/narrative-card/src/edit.js
+++ b/plugins/carhop-blocks/blocks/narrative-card/src/edit.js
@@ -130,6 +130,22 @@ export default function Edit({ attributes, setAttributes }) {
}`,
})}
>
+
+
{shouldShowCoverLeft && (
+
+
diff --git a/plugins/carhop-blocks/blocks/narrative-card/src/save.js b/plugins/carhop-blocks/blocks/narrative-card/src/save.js
index 558260d..34c9f02 100644
--- a/plugins/carhop-blocks/blocks/narrative-card/src/save.js
+++ b/plugins/carhop-blocks/blocks/narrative-card/src/save.js
@@ -19,6 +19,22 @@ export default function save({ attributes }) {
}`,
})}
>
+
+
{hasCover && coverPosition === "left" && (
{hasCover && coverUrl &&

}
diff --git a/plugins/carhop-blocks/blocks/scroll-story-block/build/view.asset.php b/plugins/carhop-blocks/blocks/scroll-story-block/build/view.asset.php
index cd12b22..cb24c78 100644
--- a/plugins/carhop-blocks/blocks/scroll-story-block/build/view.asset.php
+++ b/plugins/carhop-blocks/blocks/scroll-story-block/build/view.asset.php
@@ -1 +1 @@
- array(), 'version' => '21d21202ac10eacbe2b5');
+ array(), 'version' => '1b701c330e8d0efc09fe');
diff --git a/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js b/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js
index 8fcefc9..b406124 100644
--- a/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js
+++ b/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js
@@ -12,32 +12,85 @@ cards.forEach((card, index) => {
card.classList.add("narrative-card--odd");
}
});
+
+// Définir le breakpoint pour mobile/desktop (vous pouvez l'ajuster selon vos besoins)
+const MOBILE_BREAKPOINT = 768;
+let scrollTriggers = [];
let stickDistance = 0;
-let firstCardST = ScrollTrigger.create({
- trigger: cards[0],
- start: "top 10%"
-});
-let lastCardST = ScrollTrigger.create({
- trigger: cards[cards.length - 1],
- start: "top 10%"
-});
-cards.forEach((card, index) => {
- var scale = 1 - (cards.length - index) * 0.025;
- let scaleDown = gsap.to(card, {
- scale: scale,
- "transform-origin": '"50% ' + (lastCardST.start + stickDistance) + '"'
+
+// Fonction pour initialiser les ScrollTriggers (desktop)
+function initScrollTriggers() {
+ // Nettoyer d'abord les ScrollTriggers existants
+ killScrollTriggers();
+ if (cards.length === 0) return;
+ let firstCardST = ScrollTrigger.create({
+ trigger: cards[0],
+ start: "top 10%"
});
- ScrollTrigger.create({
- trigger: card,
- start: "top 10%",
- end: () => lastCardST.start + stickDistance,
- pin: true,
- // markers: true,
- pinSpacing: false,
- ease: "none",
- animation: scaleDown,
- toggleActions: "restart none none reverse"
+ scrollTriggers.push(firstCardST);
+ let lastCardST = ScrollTrigger.create({
+ trigger: cards[cards.length - 1],
+ start: "top 10%"
});
+ scrollTriggers.push(lastCardST);
+ cards.forEach((card, index) => {
+ var scale = 1 - (cards.length - index) * 0.025;
+ let scaleDown = gsap.to(card, {
+ scale: scale,
+ "transform-origin": '"50% ' + (lastCardST.start + stickDistance) + '"'
+ });
+ let cardST = ScrollTrigger.create({
+ trigger: card,
+ start: "top 10%",
+ end: () => lastCardST.start + stickDistance,
+ pin: true,
+ // markers: true,
+ pinSpacing: false,
+ ease: "none",
+ animation: scaleDown,
+ toggleActions: "restart none none reverse"
+ });
+ scrollTriggers.push(cardST);
+ });
+}
+
+// Fonction pour détruire tous les ScrollTriggers
+function killScrollTriggers() {
+ scrollTriggers.forEach(st => st.kill());
+ scrollTriggers = [];
+
+ // Réinitialiser les styles inline des cartes
+ cards.forEach(card => {
+ gsap.set(card, {
+ clearProps: "all"
+ });
+ });
+}
+
+// Fonction pour gérer le responsive
+function handleResize() {
+ const isMobile = window.innerWidth < MOBILE_BREAKPOINT;
+ if (isMobile) {
+ // Sur mobile : détruire les ScrollTriggers
+ killScrollTriggers();
+ } else {
+ // Sur desktop : créer les ScrollTriggers s'ils n'existent pas
+ if (scrollTriggers.length === 0) {
+ initScrollTriggers();
+ }
+ }
+}
+
+// Initialisation au chargement
+handleResize();
+
+// Écouter les événements de resize avec debounce pour optimiser les performances
+let resizeTimer;
+window.addEventListener("resize", () => {
+ clearTimeout(resizeTimer);
+ resizeTimer = setTimeout(() => {
+ handleResize();
+ }, 250);
});
/******/ })()
;
diff --git a/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js.map b/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js.map
index 0b4f798..e0482d9 100644
--- a/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js.map
+++ b/plugins/carhop-blocks/blocks/scroll-story-block/build/view.js.map
@@ -1 +1 @@
-{"version":3,"file":"view.js","mappings":";;;;AAAA,MAAMA,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,qCAAqC,CAAC;;AAEvE;AACAH,KAAK,CAACI,OAAO,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;EAC9B,IAAIA,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;IACpBD,IAAI,CAACE,SAAS,CAACC,GAAG,CAAC,sBAAsB,CAAC;EAC3C,CAAC,MAAM;IACNH,IAAI,CAACE,SAAS,CAACC,GAAG,CAAC,qBAAqB,CAAC;EAC1C;AACD,CAAC,CAAC;AAEF,IAAIC,aAAa,GAAG,CAAC;AAErB,IAAIC,WAAW,GAAGC,aAAa,CAACC,MAAM,CAAC;EACtCC,OAAO,EAAEb,KAAK,CAAC,CAAC,CAAC;EACjBc,KAAK,EAAE;AACR,CAAC,CAAC;AAEF,IAAIC,UAAU,GAAGJ,aAAa,CAACC,MAAM,CAAC;EACrCC,OAAO,EAAEb,KAAK,CAACA,KAAK,CAACgB,MAAM,GAAG,CAAC,CAAC;EAChCF,KAAK,EAAE;AACR,CAAC,CAAC;AAEFd,KAAK,CAACI,OAAO,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;EAC9B,IAAIW,KAAK,GAAG,CAAC,GAAG,CAACjB,KAAK,CAACgB,MAAM,GAAGV,KAAK,IAAI,KAAK;EAC9C,IAAIY,SAAS,GAAGjB,IAAI,CAACkB,EAAE,CAACd,IAAI,EAAE;IAC7BY,KAAK,EAAEA,KAAK;IACZ,kBAAkB,EAAE,OAAO,IAAIF,UAAU,CAACD,KAAK,GAAGL,aAAa,CAAC,GAAG;EACpE,CAAC,CAAC;EAEFE,aAAa,CAACC,MAAM,CAAC;IACpBC,OAAO,EAAER,IAAI;IACbS,KAAK,EAAE,SAAS;IAChBM,GAAG,EAAEA,CAAA,KAAML,UAAU,CAACD,KAAK,GAAGL,aAAa;IAC3CY,GAAG,EAAE,IAAI;IACT;IACAC,UAAU,EAAE,KAAK;IACjBC,IAAI,EAAE,MAAM;IACZC,SAAS,EAAEN,SAAS;IACpBO,aAAa,EAAE;EAChB,CAAC,CAAC;AACH,CAAC,CAAC,C","sources":["webpack://cta/./src/view.js"],"sourcesContent":["const cards = gsap.utils.toArray(\".scroll-story-block .narrative-card\");\r\n\r\n// Ajouter des classes alternées pour le styling\r\ncards.forEach((card, index) => {\r\n\tif (index % 2 === 0) {\r\n\t\tcard.classList.add(\"narrative-card--even\");\r\n\t} else {\r\n\t\tcard.classList.add(\"narrative-card--odd\");\r\n\t}\r\n});\r\n\r\nlet stickDistance = 0;\r\n\r\nlet firstCardST = ScrollTrigger.create({\r\n\ttrigger: cards[0],\r\n\tstart: \"top 10%\",\r\n});\r\n\r\nlet lastCardST = ScrollTrigger.create({\r\n\ttrigger: cards[cards.length - 1],\r\n\tstart: \"top 10%\",\r\n});\r\n\r\ncards.forEach((card, index) => {\r\n\tvar scale = 1 - (cards.length - index) * 0.025;\r\n\tlet scaleDown = gsap.to(card, {\r\n\t\tscale: scale,\r\n\t\t\"transform-origin\": '\"50% ' + (lastCardST.start + stickDistance) + '\"',\r\n\t});\r\n\r\n\tScrollTrigger.create({\r\n\t\ttrigger: card,\r\n\t\tstart: \"top 10%\",\r\n\t\tend: () => lastCardST.start + stickDistance,\r\n\t\tpin: true,\r\n\t\t// markers: true,\r\n\t\tpinSpacing: false,\r\n\t\tease: \"none\",\r\n\t\tanimation: scaleDown,\r\n\t\ttoggleActions: \"restart none none reverse\",\r\n\t});\r\n});\r\n"],"names":["cards","gsap","utils","toArray","forEach","card","index","classList","add","stickDistance","firstCardST","ScrollTrigger","create","trigger","start","lastCardST","length","scale","scaleDown","to","end","pin","pinSpacing","ease","animation","toggleActions"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"view.js","mappings":";;;;AAAA,MAAMA,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,qCAAqC,CAAC;;AAEvE;AACAH,KAAK,CAACI,OAAO,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;EAC9B,IAAIA,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;IACpBD,IAAI,CAACE,SAAS,CAACC,GAAG,CAAC,sBAAsB,CAAC;EAC3C,CAAC,MAAM;IACNH,IAAI,CAACE,SAAS,CAACC,GAAG,CAAC,qBAAqB,CAAC;EAC1C;AACD,CAAC,CAAC;;AAEF;AACA,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,IAAIC,cAAc,GAAG,EAAE;AACvB,IAAIC,aAAa,GAAG,CAAC;;AAErB;AACA,SAASC,kBAAkBA,CAAA,EAAG;EAC7B;EACAC,kBAAkB,CAAC,CAAC;EAEpB,IAAIb,KAAK,CAACc,MAAM,KAAK,CAAC,EAAE;EAExB,IAAIC,WAAW,GAAGC,aAAa,CAACC,MAAM,CAAC;IACtCC,OAAO,EAAElB,KAAK,CAAC,CAAC,CAAC;IACjBmB,KAAK,EAAE;EACR,CAAC,CAAC;EACFT,cAAc,CAACU,IAAI,CAACL,WAAW,CAAC;EAEhC,IAAIM,UAAU,GAAGL,aAAa,CAACC,MAAM,CAAC;IACrCC,OAAO,EAAElB,KAAK,CAACA,KAAK,CAACc,MAAM,GAAG,CAAC,CAAC;IAChCK,KAAK,EAAE;EACR,CAAC,CAAC;EACFT,cAAc,CAACU,IAAI,CAACC,UAAU,CAAC;EAE/BrB,KAAK,CAACI,OAAO,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;IAC9B,IAAIgB,KAAK,GAAG,CAAC,GAAG,CAACtB,KAAK,CAACc,MAAM,GAAGR,KAAK,IAAI,KAAK;IAC9C,IAAIiB,SAAS,GAAGtB,IAAI,CAACuB,EAAE,CAACnB,IAAI,EAAE;MAC7BiB,KAAK,EAAEA,KAAK;MACZ,kBAAkB,EAAE,OAAO,IAAID,UAAU,CAACF,KAAK,GAAGR,aAAa,CAAC,GAAG;IACpE,CAAC,CAAC;IAEF,IAAIc,MAAM,GAAGT,aAAa,CAACC,MAAM,CAAC;MACjCC,OAAO,EAAEb,IAAI;MACbc,KAAK,EAAE,SAAS;MAChBO,GAAG,EAAEA,CAAA,KAAML,UAAU,CAACF,KAAK,GAAGR,aAAa;MAC3CgB,GAAG,EAAE,IAAI;MACT;MACAC,UAAU,EAAE,KAAK;MACjBC,IAAI,EAAE,MAAM;MACZC,SAAS,EAAEP,SAAS;MACpBQ,aAAa,EAAE;IAChB,CAAC,CAAC;IAEFrB,cAAc,CAACU,IAAI,CAACK,MAAM,CAAC;EAC5B,CAAC,CAAC;AACH;;AAEA;AACA,SAASZ,kBAAkBA,CAAA,EAAG;EAC7BH,cAAc,CAACN,OAAO,CAAE4B,EAAE,IAAKA,EAAE,CAACC,IAAI,CAAC,CAAC,CAAC;EACzCvB,cAAc,GAAG,EAAE;;EAEnB;EACAV,KAAK,CAACI,OAAO,CAAEC,IAAI,IAAK;IACvBJ,IAAI,CAACiC,GAAG,CAAC7B,IAAI,EAAE;MAAE8B,UAAU,EAAE;IAAM,CAAC,CAAC;EACtC,CAAC,CAAC;AACH;;AAEA;AACA,SAASC,YAAYA,CAAA,EAAG;EACvB,MAAMC,QAAQ,GAAGC,MAAM,CAACC,UAAU,GAAG9B,iBAAiB;EAEtD,IAAI4B,QAAQ,EAAE;IACb;IACAxB,kBAAkB,CAAC,CAAC;EACrB,CAAC,MAAM;IACN;IACA,IAAIH,cAAc,CAACI,MAAM,KAAK,CAAC,EAAE;MAChCF,kBAAkB,CAAC,CAAC;IACrB;EACD;AACD;;AAEA;AACAwB,YAAY,CAAC,CAAC;;AAEd;AACA,IAAII,WAAW;AACfF,MAAM,CAACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM;EACvCC,YAAY,CAACF,WAAW,CAAC;EACzBA,WAAW,GAAGG,UAAU,CAAC,MAAM;IAC9BP,YAAY,CAAC,CAAC;EACf,CAAC,EAAE,GAAG,CAAC;AACR,CAAC,CAAC,C","sources":["webpack://cta/./src/view.js"],"sourcesContent":["const cards = gsap.utils.toArray(\".scroll-story-block .narrative-card\");\r\n\r\n// Ajouter des classes alternées pour le styling\r\ncards.forEach((card, index) => {\r\n\tif (index % 2 === 0) {\r\n\t\tcard.classList.add(\"narrative-card--even\");\r\n\t} else {\r\n\t\tcard.classList.add(\"narrative-card--odd\");\r\n\t}\r\n});\r\n\r\n// Définir le breakpoint pour mobile/desktop (vous pouvez l'ajuster selon vos besoins)\r\nconst MOBILE_BREAKPOINT = 768;\r\n\r\nlet scrollTriggers = [];\r\nlet stickDistance = 0;\r\n\r\n// Fonction pour initialiser les ScrollTriggers (desktop)\r\nfunction initScrollTriggers() {\r\n\t// Nettoyer d'abord les ScrollTriggers existants\r\n\tkillScrollTriggers();\r\n\r\n\tif (cards.length === 0) return;\r\n\r\n\tlet firstCardST = ScrollTrigger.create({\r\n\t\ttrigger: cards[0],\r\n\t\tstart: \"top 10%\",\r\n\t});\r\n\tscrollTriggers.push(firstCardST);\r\n\r\n\tlet lastCardST = ScrollTrigger.create({\r\n\t\ttrigger: cards[cards.length - 1],\r\n\t\tstart: \"top 10%\",\r\n\t});\r\n\tscrollTriggers.push(lastCardST);\r\n\r\n\tcards.forEach((card, index) => {\r\n\t\tvar scale = 1 - (cards.length - index) * 0.025;\r\n\t\tlet scaleDown = gsap.to(card, {\r\n\t\t\tscale: scale,\r\n\t\t\t\"transform-origin\": '\"50% ' + (lastCardST.start + stickDistance) + '\"',\r\n\t\t});\r\n\r\n\t\tlet cardST = ScrollTrigger.create({\r\n\t\t\ttrigger: card,\r\n\t\t\tstart: \"top 10%\",\r\n\t\t\tend: () => lastCardST.start + stickDistance,\r\n\t\t\tpin: true,\r\n\t\t\t// markers: true,\r\n\t\t\tpinSpacing: false,\r\n\t\t\tease: \"none\",\r\n\t\t\tanimation: scaleDown,\r\n\t\t\ttoggleActions: \"restart none none reverse\",\r\n\t\t});\r\n\r\n\t\tscrollTriggers.push(cardST);\r\n\t});\r\n}\r\n\r\n// Fonction pour détruire tous les ScrollTriggers\r\nfunction killScrollTriggers() {\r\n\tscrollTriggers.forEach((st) => st.kill());\r\n\tscrollTriggers = [];\r\n\r\n\t// Réinitialiser les styles inline des cartes\r\n\tcards.forEach((card) => {\r\n\t\tgsap.set(card, { clearProps: \"all\" });\r\n\t});\r\n}\r\n\r\n// Fonction pour gérer le responsive\r\nfunction handleResize() {\r\n\tconst isMobile = window.innerWidth < MOBILE_BREAKPOINT;\r\n\r\n\tif (isMobile) {\r\n\t\t// Sur mobile : détruire les ScrollTriggers\r\n\t\tkillScrollTriggers();\r\n\t} else {\r\n\t\t// Sur desktop : créer les ScrollTriggers s'ils n'existent pas\r\n\t\tif (scrollTriggers.length === 0) {\r\n\t\t\tinitScrollTriggers();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Initialisation au chargement\r\nhandleResize();\r\n\r\n// Écouter les événements de resize avec debounce pour optimiser les performances\r\nlet resizeTimer;\r\nwindow.addEventListener(\"resize\", () => {\r\n\tclearTimeout(resizeTimer);\r\n\tresizeTimer = setTimeout(() => {\r\n\t\thandleResize();\r\n\t}, 250);\r\n});\r\n"],"names":["cards","gsap","utils","toArray","forEach","card","index","classList","add","MOBILE_BREAKPOINT","scrollTriggers","stickDistance","initScrollTriggers","killScrollTriggers","length","firstCardST","ScrollTrigger","create","trigger","start","push","lastCardST","scale","scaleDown","to","cardST","end","pin","pinSpacing","ease","animation","toggleActions","st","kill","set","clearProps","handleResize","isMobile","window","innerWidth","resizeTimer","addEventListener","clearTimeout","setTimeout"],"sourceRoot":""}
\ No newline at end of file
diff --git a/plugins/carhop-blocks/blocks/scroll-story-block/src/view.js b/plugins/carhop-blocks/blocks/scroll-story-block/src/view.js
index f99039d..9d1df58 100644
--- a/plugins/carhop-blocks/blocks/scroll-story-block/src/view.js
+++ b/plugins/carhop-blocks/blocks/scroll-story-block/src/view.js
@@ -9,34 +9,88 @@ cards.forEach((card, index) => {
}
});
+// Définir le breakpoint pour mobile/desktop (vous pouvez l'ajuster selon vos besoins)
+const MOBILE_BREAKPOINT = 768;
+
+let scrollTriggers = [];
let stickDistance = 0;
-let firstCardST = ScrollTrigger.create({
- trigger: cards[0],
- start: "top 10%",
-});
+// Fonction pour initialiser les ScrollTriggers (desktop)
+function initScrollTriggers() {
+ // Nettoyer d'abord les ScrollTriggers existants
+ killScrollTriggers();
-let lastCardST = ScrollTrigger.create({
- trigger: cards[cards.length - 1],
- start: "top 10%",
-});
+ if (cards.length === 0) return;
-cards.forEach((card, index) => {
- var scale = 1 - (cards.length - index) * 0.025;
- let scaleDown = gsap.to(card, {
- scale: scale,
- "transform-origin": '"50% ' + (lastCardST.start + stickDistance) + '"',
- });
-
- ScrollTrigger.create({
- trigger: card,
+ let firstCardST = ScrollTrigger.create({
+ trigger: cards[0],
start: "top 10%",
- end: () => lastCardST.start + stickDistance,
- pin: true,
- // markers: true,
- pinSpacing: false,
- ease: "none",
- animation: scaleDown,
- toggleActions: "restart none none reverse",
});
+ scrollTriggers.push(firstCardST);
+
+ let lastCardST = ScrollTrigger.create({
+ trigger: cards[cards.length - 1],
+ start: "top 10%",
+ });
+ scrollTriggers.push(lastCardST);
+
+ cards.forEach((card, index) => {
+ var scale = 1 - (cards.length - index) * 0.025;
+ let scaleDown = gsap.to(card, {
+ scale: scale,
+ "transform-origin": '"50% ' + (lastCardST.start + stickDistance) + '"',
+ });
+
+ let cardST = ScrollTrigger.create({
+ trigger: card,
+ start: "top 10%",
+ end: () => lastCardST.start + stickDistance,
+ pin: true,
+ // markers: true,
+ pinSpacing: false,
+ ease: "none",
+ animation: scaleDown,
+ toggleActions: "restart none none reverse",
+ });
+
+ scrollTriggers.push(cardST);
+ });
+}
+
+// Fonction pour détruire tous les ScrollTriggers
+function killScrollTriggers() {
+ scrollTriggers.forEach((st) => st.kill());
+ scrollTriggers = [];
+
+ // Réinitialiser les styles inline des cartes
+ cards.forEach((card) => {
+ gsap.set(card, { clearProps: "all" });
+ });
+}
+
+// Fonction pour gérer le responsive
+function handleResize() {
+ const isMobile = window.innerWidth < MOBILE_BREAKPOINT;
+
+ if (isMobile) {
+ // Sur mobile : détruire les ScrollTriggers
+ killScrollTriggers();
+ } else {
+ // Sur desktop : créer les ScrollTriggers s'ils n'existent pas
+ if (scrollTriggers.length === 0) {
+ initScrollTriggers();
+ }
+ }
+}
+
+// Initialisation au chargement
+handleResize();
+
+// Écouter les événements de resize avec debounce pour optimiser les performances
+let resizeTimer;
+window.addEventListener("resize", () => {
+ clearTimeout(resizeTimer);
+ resizeTimer = setTimeout(() => {
+ handleResize();
+ }, 250);
});