{"version":3,"file":"TextWithDots.DPcPyJVR.mjs","names":["_Fragment","useRef","useState","useCallback"],"sources":["https:/framerusercontent.com/modules/HyBDEeHxQjtrGeFuMU0w/9aAesNEWOtFB89jwalQ3/PurupuruButton.js","https:/framerusercontent.com/modules/ORfK5mpdgw0NNoWE64nZ/CEqXDiKmCrqDynopjfoR/TextMaker.js","https:/framerusercontent.com/modules/UwKdPNwKF4YYdjW9wocn/L4wR1ohZ1UBQWk3H9ua2/AutoScrollCarousel.js","https:/framerusercontent.com/modules/X7fKw3g6UeAF4FJgMlwX/gItweN7RGoIgTuD5AMS9/TextWithDots.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";// ぷるぷるアニメーションのキーフレーム\nconst purupuruKeyframes=`\n  @keyframes purupuru {\n    0% {\n      transform: rotate(0deg) skew(0deg, 0deg);\n    }\n    5% {\n      transform: rotate(5deg) skew(2.69703deg, 0deg);\n    }\n    10% {\n      transform: rotate(0deg) skew(-1.5deg, 0deg);\n    }\n    15% {\n      transform: rotate(-5deg) skew(-2.69703deg, 0deg);\n    }\n    20% {\n      transform: rotate(0deg) skew(1.5deg, 0deg);\n    }\n    25% {\n      transform: rotate(3deg) skew(2deg, 0deg);\n    }\n    30% {\n      transform: rotate(0deg) skew(0deg, 0deg);\n    }\n    35% {\n      transform: rotate(-2deg) skew(-1.8deg, 0deg);\n    }\n    40% {\n      transform: rotate(0deg) skew(0deg, 0deg);\n    }\n    100% {\n      transform: rotate(0deg) skew(0deg, 0deg);\n    }\n  }\n`;// キラッとアニメーションのキーフレーム\nconst kiranKeyframes=`\n  @keyframes kiran {\n    0% {\n      left: -10%;\n      transform: scale(5) rotate(45deg);\n      opacity: 0;\n    }\n    20% {\n      left: -10%;\n      transform: scale(5) rotate(45deg);\n      opacity: 0;\n    }\n    25% {\n      left: 10%;\n      transform: scale(15) rotate(45deg);\n      opacity: 0.6;\n    }\n    40% {\n      left: 110%;\n      transform: scale(20) rotate(45deg);\n      opacity: 0;\n    }\n    100% {\n      left: 110%;\n      transform: scale(20) rotate(45deg);\n      opacity: 0;\n    }\n  }\n`;// スタイルをheadに注入する関数\nfunction injectStyles(){const styleId=\"purupuru-kiran-animation-styles\";if(document.getElementById(styleId))return;const styles=`\n    ${purupuruKeyframes}\n    ${kiranKeyframes}\n\n    /* キラッとエフェクト用のスタイル */\n    .purupuru-kiran-wrapper {\n      position: relative;\n      overflow: hidden;\n    }\n\n    .purupuru-kiran-wrapper::before {\n      content: \"\";\n      display: block;\n      position: absolute;\n      top: 50%;\n      left: -10%;\n      width: 5px;\n      height: 100%;\n      background: linear-gradient(\n        90deg,\n        rgba(255, 255, 255, 0) 0%,\n        rgba(255, 255, 255, 0.9) 50%,\n        rgba(255, 255, 255, 0) 100%\n      );\n      transform: scale(5) rotate(45deg);\n      transform-origin: center center;\n      opacity: 0;\n      animation: kiran 3s linear 500ms infinite;\n      pointer-events: none;\n      z-index: 1;\n    }\n  `;const styleElement=document.createElement(\"style\");styleElement.id=styleId;styleElement.textContent=styles;document.head.appendChild(styleElement);}// ぷるぷるアニメーションのみ\nexport function withPurupuru(Component){return props=>{useEffect(()=>{injectStyles();},[]);return /*#__PURE__*/_jsx(Component,{...props,style:{...props.style,animation:\"purupuru 2s linear 0s infinite\",transformOrigin:\"center center\"}});};}// キラッとエフェクトのみ\nexport function withKiran(Component){return props=>{useEffect(()=>{injectStyles();},[]);return /*#__PURE__*/_jsx(Component,{...props,className:`${props.className||\"\"} purupuru-kiran-wrapper`,style:{...props.style,position:\"relative\",overflow:\"hidden\"}});};}// ぷるぷる＋キラッとエフェクト（常時ループ）\nexport function withPurupuruKiran(Component){return props=>{useEffect(()=>{injectStyles();},[]);return /*#__PURE__*/_jsx(Component,{...props,className:`${props.className||\"\"} purupuru-kiran-wrapper`,style:{...props.style,animation:\"purupuru 2s linear 0s infinite\",transformOrigin:\"center center\",position:\"relative\",overflow:\"hidden\"}});};}// クリックでアニメーション開始/停止\nexport function withTogglePurupuruKiran(Component){return props=>{useEffect(()=>{injectStyles();// トグル用のスタイルを追加\nconst toggleStyleId=\"toggle-purupuru-kiran-styles\";if(!document.getElementById(toggleStyleId)){const toggleStyles=`\n          .toggle-purupuru-kiran.active {\n            animation: purupuru 2s linear 0s infinite !important;\n          }\n\n          .toggle-purupuru-kiran.active::before {\n            animation: kiran 3s linear 500ms infinite !important;\n          }\n        `;const styleElement=document.createElement(\"style\");styleElement.id=toggleStyleId;styleElement.textContent=toggleStyles;document.head.appendChild(styleElement);}},[]);const handleClick=e=>{const element=e.currentTarget;element.classList.toggle(\"active\");// 既存のonClickハンドラーも呼ぶ\nif(props.onClick){props.onClick(e);}};return /*#__PURE__*/_jsx(Component,{...props,className:`${props.className||\"\"} purupuru-kiran-wrapper toggle-purupuru-kiran`,style:{...props.style,transformOrigin:\"center center\",position:\"relative\",overflow:\"hidden\",cursor:\"pointer\"},onClick:handleClick});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withKiran\":{\"type\":\"reactHoc\",\"name\":\"withKiran\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withTogglePurupuruKiran\":{\"type\":\"reactHoc\",\"name\":\"withTogglePurupuruKiran\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPurupuruKiran\":{\"type\":\"reactHoc\",\"name\":\"withPurupuruKiran\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPurupuru\":{\"type\":\"reactHoc\",\"name\":\"withPurupuru\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PurupuruButton.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect}from\"react\";function createMarkerHOC(backgroundColor){return function(Component){return props=>{useEffect(()=>{const elements=document.querySelectorAll(`.${props.className}`);elements.forEach(element=>{const originalHTML=element.innerHTML;// \"**...**\" を <mark><span>...</span></mark> に変換\nconst updatedHTML=originalHTML.replace(/\\*\\*(.+?)\\*\\*/g,(_,match)=>`<mark><span>${match}</span></mark>`);element.innerHTML=updatedHTML;});},[props]);return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n.${props.className} mark {\n  background: transparent;\n  --highlight: ${backgroundColor};\n}\n\n.${props.className} mark span {\n  background: linear-gradient(\n      120deg,\n      var(--highlight) 50%,\n      transparent 50%\n  ) no-repeat;\n  background-size: 200% 50%;\n  background-position: left bottom;\n  color: inherit;\n}\n`}),/*#__PURE__*/_jsx(Component,{...props})]});};};}export function withYellowMarker(Component){return createMarkerHOC(\"rgba(255, 255, 0, 0.8)\")(Component);}export function withBlueMarker(Component){return createMarkerHOC(\"rgba(0, 128, 255, 0.5)\")(Component);}export function withPinkMarker(Component){return createMarkerHOC(\"rgba(255, 182, 193, 0.8)\")(Component);}export function withGreenMarker(Component){return createMarkerHOC(\"rgba(144, 238, 144, 0.8)\")(Component);}export function withOrangeMarker(Component){return createMarkerHOC(\"rgba(255, 195, 0, 0.8)\")(Component);}export function withRedMarker(Component){return createMarkerHOC(\"rgba(255, 0, 0, 0.5)\")(Component);}\nexport const __FramerMetadata__ = {\"exports\":{\"withBlueMarker\":{\"type\":\"reactHoc\",\"name\":\"withBlueMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withOrangeMarker\":{\"type\":\"reactHoc\",\"name\":\"withOrangeMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withYellowMarker\":{\"type\":\"reactHoc\",\"name\":\"withYellowMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withGreenMarker\":{\"type\":\"reactHoc\",\"name\":\"withGreenMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPinkMarker\":{\"type\":\"reactHoc\",\"name\":\"withPinkMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRedMarker\":{\"type\":\"reactHoc\",\"name\":\"withRedMarker\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextMaker.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useRef,useEffect,useState,useCallback}from\"react\";/**\n * AutoScrollCarousel Code Override\n *\n * Container要素に適用すると、中にある子要素が自動的に横スクロールするカルーセルになります。\n * ユーザーが手動でスワイプした場合は自動スクロールが一時停止し、一定時間後に再開します。\n *\n * @example\n * // Framer Canvasで使用:\n * 1. Containerを作成し、中に複数の要素を配置\n * 2. このOverrideをContainerに適用\n * 3. 用途に合わせてOverride関数を選択\n *\n * // 速度を変更する場合:\n * withSpeed_Fast または withSpeed_Slow を適用\n *\n * // 設定のカスタマイズ:\n * withAutoScrollCarousel: デフォルト設定（速度1.0、ホバーで一時停止、ループON）\n * withSpeed_Slow: ゆっくり（0.5倍速）\n * withSpeed_Fast: 速い（2.0倍速）\n * withNoPauseOnHover: ホバー時も止まらない\n * withNoLoop: ループなし（端で停止）\n */// デフォルト設定\nconst DEFAULT_SPEED=1;const DEFAULT_PAUSE_ON_HOVER=true;const DEFAULT_SMOOTHNESS=1;const DEFAULT_LOOP=true;/**\n * 基本的な自動スクロールカルーセル（デフォルト設定）\n */export function withAutoScrollCarousel(Component){return createCarousel(Component,{speed:DEFAULT_SPEED,pauseOnHover:DEFAULT_PAUSE_ON_HOVER,smoothness:DEFAULT_SMOOTHNESS,loop:DEFAULT_LOOP});}/**\n * ゆっくりスクロール（0.5倍速）\n */export function withSpeed_Slow(Component){return createCarousel(Component,{speed:.5,pauseOnHover:DEFAULT_PAUSE_ON_HOVER,smoothness:DEFAULT_SMOOTHNESS,loop:DEFAULT_LOOP});}/**\n * 速いスクロール（2.0倍速）\n */export function withSpeed_Fast(Component){return createCarousel(Component,{speed:2,pauseOnHover:DEFAULT_PAUSE_ON_HOVER,smoothness:DEFAULT_SMOOTHNESS,loop:DEFAULT_LOOP});}/**\n * とてもゆっくりスクロール（0.3倍速）\n */export function withSpeed_VerySlow(Component){return createCarousel(Component,{speed:.3,pauseOnHover:DEFAULT_PAUSE_ON_HOVER,smoothness:DEFAULT_SMOOTHNESS,loop:DEFAULT_LOOP});}/**\n * ホバーでも止まらない（常に動き続ける）\n */export function withNoPauseOnHover(Component){return createCarousel(Component,{speed:DEFAULT_SPEED,pauseOnHover:false,smoothness:DEFAULT_SMOOTHNESS,loop:DEFAULT_LOOP});}/**\n * ループなし（端で停止）\n */export function withNoLoop(Component){return createCarousel(Component,{speed:DEFAULT_SPEED,pauseOnHover:DEFAULT_PAUSE_ON_HOVER,smoothness:DEFAULT_SMOOTHNESS,loop:false});}/**\n * とても滑らか（smoothness 2.5）\n */export function withExtraSmooth(Component){return createCarousel(Component,{speed:DEFAULT_SPEED,pauseOnHover:DEFAULT_PAUSE_ON_HOVER,smoothness:2.5,loop:DEFAULT_LOOP});}// カルーセル生成関数（内部実装）\nfunction createCarousel(Component,config){return props=>{const containerRef=useRef(null);const animationFrameRef=useRef();const lastTimeRef=useRef(0);const scrollPositionRef=useRef(0);const isUserInteractingRef=useRef(false);const hasUserInteractedRef=useRef(false);const[isPaused,setIsPaused]=useState(false);// 子要素を複製してシームレスループを実現\nconst children=React.Children.toArray(props.children);const duplicatedChildren=config.loop?[...children,...children]:children;// 自動スクロールアニメーション\nconst animate=useCallback(timestamp=>{if(!containerRef.current||isPaused||hasUserInteractedRef.current){lastTimeRef.current=timestamp;animationFrameRef.current=requestAnimationFrame(animate);return;}const deltaTime=timestamp-lastTimeRef.current;lastTimeRef.current=timestamp;// スクロール速度計算（ピクセル/フレーム）\nconst scrollSpeed=config.speed*config.smoothness*deltaTime/16// 60fpsを基準に正規化\n;// 現在のスクロール位置を更新\nscrollPositionRef.current+=scrollSpeed;const maxScroll=containerRef.current.scrollWidth-containerRef.current.clientWidth;// シームレスループ処理\nif(config.loop){const halfWidth=containerRef.current.scrollWidth/2;if(scrollPositionRef.current>=halfWidth){// 視覚的に同じ位置で先頭セクションに戻す\nscrollPositionRef.current=scrollPositionRef.current-halfWidth;}}else if(!config.loop&&scrollPositionRef.current>=maxScroll){scrollPositionRef.current=maxScroll;}// スクロール適用\ncontainerRef.current.scrollLeft=scrollPositionRef.current;animationFrameRef.current=requestAnimationFrame(animate);},[isPaused,config.speed,config.smoothness,config.loop]);// 自動スクロール開始\nuseEffect(()=>{if(!containerRef.current)return;// ループ時は初期位置を0に設定（複製された要素の最初から開始）\nscrollPositionRef.current=0;containerRef.current.scrollLeft=0;// アニメーション開始\nlastTimeRef.current=performance.now();animationFrameRef.current=requestAnimationFrame(animate);return()=>{if(animationFrameRef.current){cancelAnimationFrame(animationFrameRef.current);}};},[animate]);// ユーザー操作検出\nconst handleUserInteractionStart=useCallback(()=>{hasUserInteractedRef.current=true// 触ったフラグ\n;isUserInteractingRef.current=true;setIsPaused(true)// 永久停止\n;},[]);// ホバー時の一時停止\nconst handleMouseEnter=useCallback(()=>{if(!config.pauseOnHover)return;setIsPaused(true);},[config.pauseOnHover]);const handleMouseLeave=useCallback(()=>{if(!config.pauseOnHover)return;if(!isUserInteractingRef.current){setIsPaused(false);}},[config.pauseOnHover]);// クリーンアップ\nuseEffect(()=>{return()=>{if(animationFrameRef.current){cancelAnimationFrame(animationFrameRef.current);}};},[]);const overrideStyle={...props.style,overflowX:\"scroll\",overflowY:\"hidden\",scrollbarWidth:\"none\",msOverflowStyle:\"none\",WebkitOverflowScrolling:\"touch\"};return /*#__PURE__*/_jsx(Component,{...props,ref:containerRef,style:overrideStyle,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,onPointerDown:handleUserInteractionStart,onTouchStart:handleUserInteractionStart,children:duplicatedChildren});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withAutoScrollCarousel\":{\"type\":\"reactHoc\",\"name\":\"withAutoScrollCarousel\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNoPauseOnHover\":{\"type\":\"reactHoc\",\"name\":\"withNoPauseOnHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSpeed_Fast\":{\"type\":\"reactHoc\",\"name\":\"withSpeed_Fast\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withExtraSmooth\":{\"type\":\"reactHoc\",\"name\":\"withExtraSmooth\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSpeed_Slow\":{\"type\":\"reactHoc\",\"name\":\"withSpeed_Slow\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSpeed_VerySlow\":{\"type\":\"reactHoc\",\"name\":\"withSpeed_VerySlow\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNoLoop\":{\"type\":\"reactHoc\",\"name\":\"withNoLoop\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AutoScrollCarousel.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";/* ==================================================================\n   TextWithDots - 日本語傍点（圏点）による強調表示\n   ==================================================================\n\n   テキスト内の[[...]]記法を文字単位で黒丸（●）傍点付きに変換し、\n   日本語組版の伝統的な強調手法を実現するCode Override\n\n   v1.1.0: 直接実装パターン（Framer認識対応版）\n   各export関数内で処理ロジックを完全に内包\n   ================================================================== */// 小サイズの黒丸（4px）\nexport function withDotsSmall(Component){return props=>{const processDotsInChildren=children=>{if(typeof children===\"string\"){// [[]]を含む場合はdangerouslySetInnerHTMLで処理\nif(children.includes(\"[[\")){const html=children.replace(/\\[\\[([^\\]]+)\\]\\]/g,(_match,content)=>{return content.split(\"\").map(char=>{if(char===\" \"||char===\"　\")return char;return`<ruby>${char}<rt style=\"font-size: 4px !important; font-weight: 900 !important; position: relative !important; top: -4px !important;\">●</rt></ruby>`;}).join(\"\");});return /*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:html}});}return children;}if(/*#__PURE__*/React.isValidElement(children)){const element=children;return /*#__PURE__*/React.cloneElement(element,{...element.props,children:processDotsInChildren(element.props.children)});}if(Array.isArray(children)){return children.map(child=>processDotsInChildren(child));}return children;};const newChildren=processDotsInChildren(props.children);return /*#__PURE__*/_jsx(Component,{...props,children:newChildren});};}// 中サイズの黒丸（8px）\nexport function withDotsMedium(Component){return props=>{const processDotsInChildren=children=>{if(typeof children===\"string\"){if(children.includes(\"[[\")){const html=children.replace(/\\[\\[([^\\]]+)\\]\\]/g,(_match,content)=>{return content.split(\"\").map(char=>{if(char===\" \"||char===\"　\")return char;return`<ruby>${char}<rt style=\"font-size: 8px !important; font-weight: 900 !important; position: relative !important; top: -4px !important;\">●</rt></ruby>`;}).join(\"\");});return /*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:html}});}return children;}if(/*#__PURE__*/React.isValidElement(children)){const element=children;return /*#__PURE__*/React.cloneElement(element,{...element.props,children:processDotsInChildren(element.props.children)});}if(Array.isArray(children)){return children.map(child=>processDotsInChildren(child));}return children;};const newChildren=processDotsInChildren(props.children);return /*#__PURE__*/_jsx(Component,{...props,children:newChildren});};}// 大サイズの黒丸（14px）\nexport function withDotsLarge(Component){return props=>{const processDotsInChildren=children=>{if(typeof children===\"string\"){if(children.includes(\"[[\")){const html=children.replace(/\\[\\[([^\\]]+)\\]\\]/g,(_match,content)=>{return content.split(\"\").map(char=>{if(char===\" \"||char===\"　\")return char;return`<ruby>${char}<rt style=\"font-size: 14px !important; font-weight: 900 !important; position: relative !important; top: -4px !important;\">●</rt></ruby>`;}).join(\"\");});return /*#__PURE__*/_jsx(\"span\",{dangerouslySetInnerHTML:{__html:html}});}return children;}if(/*#__PURE__*/React.isValidElement(children)){const element=children;return /*#__PURE__*/React.cloneElement(element,{...element.props,children:processDotsInChildren(element.props.children)});}if(Array.isArray(children)){return children.map(child=>processDotsInChildren(child));}return children;};const newChildren=processDotsInChildren(props.children);return /*#__PURE__*/_jsx(Component,{...props,children:newChildren});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withDotsMedium\":{\"type\":\"reactHoc\",\"name\":\"withDotsMedium\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDotsLarge\":{\"type\":\"reactHoc\",\"name\":\"withDotsLarge\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDotsSmall\":{\"type\":\"reactHoc\",\"name\":\"withDotsSmall\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextWithDots.map"],"mappings":"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"}