@aiquants/drag-drop-panels 0.8.5 → 0.9.1
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.
- package/CHANGELOG.md +72 -0
- package/README.md +248 -54
- package/dist/DragDropLayout.d.ts +7 -2
- package/dist/drag-drop/DebugComponents.d.ts +2 -3
- package/dist/drag-drop/DebugOverlay.d.ts +2 -0
- package/dist/drag-drop/ResizeHandle.d.ts +5 -2
- package/dist/drag-drop/domHooks.d.ts +2 -0
- package/dist/drag-drop/dragImage.d.ts +6 -0
- package/dist/drag-drop/hooks/useDragDropColumns.d.ts +0 -1
- package/dist/drag-drop/hooks/useDragDropState.d.ts +1 -3
- package/dist/drag-drop/hooks/usePanelTouchDrag.d.ts +27 -0
- package/dist/drag-drop/labels.d.ts +44 -0
- package/dist/drag-drop/maximizeEscape.d.ts +9 -0
- package/dist/drag-drop/panelTheme.d.ts +2 -0
- package/dist/drag-drop/touchDragConfig.d.ts +6 -0
- package/dist/drag-drop/types.d.ts +1 -22
- package/dist/drag-drop/utils/dropTarget.d.ts +2 -0
- package/dist/drag-drop/utils/edgeScrollUtils.d.ts +2 -0
- package/dist/drag-drop/utils/panelMoves.d.ts +30 -0
- package/dist/drag-drop-panels.css +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.es.js +2249 -1767
- package/dist/index.umd.js +2 -2
- package/dist/styles/drag-drop-panels.standalone.css +1 -1
- package/package.json +2 -1
package/dist/index.umd.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(A,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],r):(A=typeof globalThis<"u"?globalThis:A||self,r(A.AiquantsDragDropPanels={},A.React))})(this,(function(A,r){"use strict";var Re={exports:{}},Ee={};var lt;function dn(){if(lt)return Ee;lt=1;var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function e(s,o,l){var i=null;if(l!==void 0&&(i=""+l),o.key!==void 0&&(i=""+o.key),"key"in o){l={};for(var f in o)f!=="key"&&(l[f]=o[f])}else l=o;return o=l.ref,{$$typeof:t,type:s,key:i,ref:o!==void 0?o:null,props:l}}return Ee.Fragment=n,Ee.jsx=e,Ee.jsxs=e,Ee}var je={};var ct;function fn(){return ct||(ct=1,process.env.NODE_ENV!=="production"&&(function(){function t(d){if(d==null)return null;if(typeof d=="function")return d.$$typeof===_?null:d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case T:return"Fragment";case E:return"Profiler";case h:return"StrictMode";case z:return"Suspense";case X:return"SuspenseList";case b:return"Activity"}if(typeof d=="object")switch(typeof d.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),d.$$typeof){case D:return"Portal";case c:return d.displayName||"Context";case N:return(d._context.displayName||"Context")+".Consumer";case I:var p=d.render;return d=d.displayName,d||(d=p.displayName||p.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case q:return p=d.displayName||null,p!==null?p:t(d.type)||"Memo";case g:p=d._payload,d=d._init;try{return t(d(p))}catch{}}return null}function n(d){return""+d}function e(d){try{n(d);var p=!1}catch{p=!0}if(p){p=console;var O=p.error,G=typeof Symbol=="function"&&Symbol.toStringTag&&d[Symbol.toStringTag]||d.constructor.name||"Object";return O.call(p,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",G),n(d)}}function s(d){if(d===T)return"<>";if(typeof d=="object"&&d!==null&&d.$$typeof===g)return"<...>";try{var p=t(d);return p?"<"+p+">":"<...>"}catch{return"<...>"}}function o(){var d=F.A;return d===null?null:d.getOwner()}function l(){return Error("react-stack-top-frame")}function i(d){if(v.call(d,"key")){var p=Object.getOwnPropertyDescriptor(d,"key").get;if(p&&p.isReactWarning)return!1}return d.key!==void 0}function f(d,p){function O(){k||(k=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",p))}O.isReactWarning=!0,Object.defineProperty(d,"key",{get:O,configurable:!0})}function m(){var d=t(this.type);return L[d]||(L[d]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),d=this.props.ref,d!==void 0?d:null}function C(d,p,O,G,Q,re){var J=O.ref;return d={$$typeof:j,type:d,key:p,props:O,_owner:G},(J!==void 0?J:null)!==null?Object.defineProperty(d,"ref",{enumerable:!1,get:m}):Object.defineProperty(d,"ref",{enumerable:!1,value:null}),d._store={},Object.defineProperty(d._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(d,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(d,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Q}),Object.defineProperty(d,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:re}),Object.freeze&&(Object.freeze(d.props),Object.freeze(d)),d}function y(d,p,O,G,Q,re){var J=p.children;if(J!==void 0)if(G)if(w(J)){for(G=0;G<J.length;G++)M(J[G]);Object.freeze&&Object.freeze(J)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else M(J);if(v.call(p,"key")){J=t(d);var Y=Object.keys(p).filter(function(ce){return ce!=="key"});G=0<Y.length?"{key: someKey, "+Y.join(": ..., ")+": ...}":"{key: someKey}",V[J+G]||(Y=0<Y.length?"{"+Y.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
2
|
let props = %s;
|
|
3
3
|
<%s {...props} />
|
|
4
4
|
React keys must be passed directly to JSX without using spread:
|
|
5
5
|
let props = %s;
|
|
6
|
-
<%s key={someKey} {...props} />`,X,Z,ne,Z),I[Z+X]=!0)}if(Z=null,E!==void 0&&(n(E),Z=""+E),d(h)&&(n(h.key),Z=""+h.key),"key"in h){E={};for(var le in h)le!=="key"&&(E[le]=h[le])}else E=h;return Z&&u(E,typeof l=="function"?l.displayName||l.name||"Unknown":l),P(l,Z,E,a(),Q,q)}function M(l){A(l)?l._store&&(l._store.validated=1):typeof l=="object"&&l!==null&&l.$$typeof===g&&(l._payload.status==="fulfilled"?A(l._payload.value)&&l._payload.value._store&&(l._payload.value._store.validated=1):l._store&&(l._store.validated=1))}function A(l){return typeof l=="object"&&l!==null&&l.$$typeof===c}var w=s,c=Symbol.for("react.transitional.element"),k=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),T=Symbol.for("react.strict_mode"),L=Symbol.for("react.profiler"),Y=Symbol.for("react.consumer"),J=Symbol.for("react.context"),H=Symbol.for("react.forward_ref"),B=Symbol.for("react.suspense"),R=Symbol.for("react.suspense_list"),W=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),S=Symbol.for("react.client.reference"),z=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,p=Object.prototype.hasOwnProperty,b=Array.isArray,f=console.createTask?console.createTask:function(){return null};w={react_stack_bottom_frame:function(l){return l()}};var y,D={},_=w.react_stack_bottom_frame.bind(w,i)(),O=f(r(i)),I={};fe.Fragment=C,fe.jsx=function(l,h,E){var X=1e4>z.recentlyCreatedOwnerStacks++;return v(l,h,E,!1,X?Error("react-stack-top-frame"):_,X?f(r(l)):O)},fe.jsxs=function(l,h,E){var X=1e4>z.recentlyCreatedOwnerStacks++;return v(l,h,E,!0,X?Error("react-stack-top-frame"):_,X?f(r(l)):O)}})()),fe}var Le;function ot(){return Le||(Le=1,process.env.NODE_ENV==="production"?be.exports=nt():be.exports=st()),be.exports}var t=ot();const rt=o=>o.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),at=o=>o.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,r)=>r?r.toUpperCase():n.toLowerCase()),We=o=>{const e=at(o);return e.charAt(0).toUpperCase()+e.slice(1)},ze=(...o)=>o.filter((e,n,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===n).join(" ").trim(),lt=o=>{for(const e in o)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var ct={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const it=s.forwardRef(({color:o="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:i,iconNode:d,...u},m)=>s.createElement("svg",{ref:m,...ct,width:e,height:e,stroke:o,strokeWidth:r?Number(n)*24/Number(e):n,className:ze("lucide",a),...!i&&!lt(u)&&{"aria-hidden":"true"},...u},[...d.map(([P,v])=>s.createElement(P,v)),...Array.isArray(i)?i:[i]]));const te=(o,e)=>{const n=s.forwardRef(({className:r,...a},i)=>s.createElement(it,{ref:i,iconNode:e,className:ze(`lucide-${rt(We(o))}`,`lucide-${o}`,r),...a}));return n.displayName=We(o),n};const ut=te("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const Fe=te("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);const dt=te("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);const ht=te("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);const mt=te("mouse-pointer",[["path",{d:"M12.586 12.586 19 19",key:"ea5xo7"}],["path",{d:"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",key:"277e5u"}]]);const ft=te("mouse-pointer-click",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]);const Ye=te("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),ae=class ae{constructor(e=2,n="[drag-drop-panels]",r=console){this.level=e,this.prefix=n,this.impl=r}static setLevel(e){ae.instance.setLevel(e)}setLevel(e){this.level=e}static setImplementation(e){ae.instance.setImplementation(e)}setImplementation(e){this.impl=e}static setPrefix(e){ae.instance.setPrefix(e)}setPrefix(e){this.prefix=e}formatMessage(e){return typeof e=="string"?[`${this.prefix} ${e}`]:[this.prefix,e]}static debug(e,...n){ae.instance.debug(e,...n)}debug(e,...n){this.level<=0&&this.impl.debug(...this.formatMessage(e),...n)}static info(e,...n){ae.instance.info(e,...n)}info(e,...n){this.level<=1&&this.impl.info(...this.formatMessage(e),...n)}static warn(e,...n){ae.instance.warn(e,...n)}warn(e,...n){this.level<=2&&this.impl.warn(...this.formatMessage(e),...n)}static error(e,...n){ae.instance.error(e,...n)}error(e,...n){this.level<=3&&this.impl.error(...this.formatMessage(e),...n)}};ae.instance=new ae(2,"[drag-drop-panels]");let je=ae;const He=({config:o,panelId:e,sizeInfo:n,onSizeInfoClick:r})=>o.showPanelSizes&&n?t.jsxs("div",{className:"absolute top-1 right-24 z-10 cursor-default rounded-md bg-red-500/90 px-2 py-1 font-mono text-white text-xs leading-tight shadow-lg",onClick:r,onMouseDown:r,onTouchStart:a=>a instanceof TouchEvent&&r(a),onDragStart:r,children:[t.jsxs("div",{className:"text-[10px] opacity-80",children:["ID:",e]}),t.jsxs("div",{children:[n.width,"×",n.height]}),t.jsxs("div",{children:["X:",n.x," Y:",n.y]}),t.jsxs("div",{className:"text-[10px] opacity-80",children:["min:",n.minHeight," max:",n.maxHeight]})]}):null,N=(o,e,...n)=>{(o.logLevel??0)>=e&&je.info(...n)},Ce=s.memo(({index:o,columnIndex:e,isDragging:n,dragOverPosition:r,originalPosition:a,onDragEnter:i,onDragLeave:d,config:u,customDrag:m})=>{const P=a&&a.columnIndex===e&&(a.panelIndex===o||a.panelIndex+1===o),v=!P&&r?.columnIndex===e&&r?.insertIndex===o,M=s.useRef(null),[A,w]=s.useState(null),c=n||(m?.isActive??!1);return s.useEffect(()=>{if(M.current){const k=M.current.getBoundingClientRect(),C={width:Math.round(k.width),height:Math.round(k.height),x:Math.round(k.left),y:Math.round(k.top)};w(C),v&&N(u,1,`🎯 アクティブプレースホルダー ${o}-${e}:`,{size:`${C.width}×${C.height}`,position:`(${C.x}, ${C.y})`,bottomRight:`(${C.x+C.width}, ${C.y+C.height})`,center:`(${C.x+C.width/2}, ${C.y+C.height/2})`})}},[v,o,e,u]),N(u,2,`プレースホルダー${o}-${e}: 表示中`,{isHighlighted:v,isDragging:n,dragOverPosition:r,shouldShow:c}),t.jsxs("div",{ref:M,"data-placeholder-index":o,"data-placeholder-column":e,onDragEnter:()=>i(e,o),onDragLeave:k=>d(k,e,o),className:`relative flex w-full items-center justify-center transition-all duration-0 ${P?"pointer-events-none h-0 overflow-hidden opacity-0":c?v?"my-2 scale-[1.02] rounded-xl border-4 border-sky-500 border-dashed bg-sky-200 px-4 py-6 shadow-lg ring-2 ring-sky-400 ring-opacity-50":"my-2 rounded-xl border-2 border-sky-300 border-dashed bg-sky-50/70 px-2 py-4 opacity-80":"pointer-events-none h-0 overflow-hidden opacity-0"}`,children:[!P&&c&&u.showPlaceholderInfo&&A&&t.jsxs("div",{className:"absolute top-1 right-1 z-10 rounded-md bg-blue-500/90 px-2 py-1 font-mono text-white text-xs leading-tight shadow-lg",children:[t.jsxs("div",{children:[A.width,"×",A.height]}),t.jsxs("div",{children:["X:",A.x," Y:",A.y]}),t.jsx("div",{className:"text-[10px] opacity-80",children:"min:200px max:500px"}),t.jsxs("div",{className:"mt-0.5 text-[10px] opacity-80",children:["PH-",e,"-",o," ",v?"ACTIVE":"IDLE"]})]}),!P&&c&&t.jsxs("div",{className:"flex items-center space-x-2 text-sky-600",children:[t.jsxs("svg",{className:"h-6 w-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[t.jsx("title",{children:"パネルをここにドロップ"}),t.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})]}),t.jsx("span",{className:"font-medium text-sm",children:"パネルをここにドロップ"})]})]})});Ce.displayName="InsertPlaceholder";const Ne=({columnIndex:o,isDragging:e,dragOverPosition:n,children:r,config:a})=>{const i=s.useRef(null),[d,u]=s.useState(null);return s.useEffect(()=>{if(i.current&&e){const m=i.current.getBoundingClientRect(),P=n?.columnIndex===o,v={width:Math.round(m.width),height:Math.round(m.height),x:Math.round(m.left),y:Math.round(m.top),isActive:P};u(v),P&&N(a,1,`🎯 アクティブドロップゾーン ${o}:`,{size:`${v.width}×${v.height}`,position:`(${v.x}, ${v.y})`,bottomRight:`(${v.x+v.width}, ${v.y+v.height})`,center:`(${v.x+v.width/2}, ${v.y+v.height/2})`})}},[e,n,o,a]),t.jsxs("div",{ref:i,className:"relative",children:[r,e&&d&&a.showDropZoneOutlines&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:`pointer-events-none absolute inset-0 rounded-lg border-2 border-dashed transition-all duration-200 ${d.isActive?"border-red-500 bg-red-100/20 shadow-lg":"border-gray-400 bg-gray-100/10"}`}),t.jsxs("div",{className:`absolute top-2 left-2 z-20 rounded-md px-2 py-1 font-mono text-xs leading-tight shadow-lg transition-all duration-200 ${d.isActive?"bg-red-500/90 text-white":"bg-gray-500/90 text-white"}`,children:[t.jsxs("div",{className:"font-bold",children:["DropZone-",o]}),t.jsxs("div",{children:[d.width,"×",d.height]}),t.jsxs("div",{children:["X:",d.x," Y:",d.y]}),t.jsx("div",{className:"mt-0.5 text-[10px] opacity-80",children:d.isActive?"ACTIVE":"IDLE"})]}),t.jsx("div",{className:`pointer-events-none absolute transition-all duration-200 ${d.isActive?"opacity-100":"opacity-50"}`,style:{left:`${d.width/2-6}px`,top:`${d.height/2-6}px`},children:t.jsx("div",{className:`h-3 w-3 rounded-full border-2 ${d.isActive?"border-red-700 bg-red-500":"border-gray-700 bg-gray-500"}`})}),d.isActive&&t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"pointer-events-none absolute top-0 left-0 h-2 w-2 rounded-full bg-red-500"}),t.jsx("div",{className:"pointer-events-none absolute top-0 right-0 h-2 w-2 rounded-full bg-red-500"}),t.jsx("div",{className:"pointer-events-none absolute bottom-0 left-0 h-2 w-2 rounded-full bg-red-500"}),t.jsx("div",{className:"pointer-events-none absolute right-0 bottom-0 h-2 w-2 rounded-full bg-red-500"})]})]})]})};Ne.displayName="DropZoneDebugOverlay";const gt=.25,pt=typeof window<"u"?s.useLayoutEffect:s.useEffect,xt=(o,e=gt)=>{const n=s.useRef(null),[r,a]=s.useState(1);return pt(()=>{const i=n.current;if(!i||o<=0){a(1);return}const d=()=>{const m=i.clientWidth;if(m<=0)return;const P=m>=o?1:Math.max(m/o,e);a(v=>Math.abs(v-P)<.005?v:P)};d();const u=new ResizeObserver(d);return u.observe(i),()=>u.disconnect()},[o,e]),{containerRef:n,scale:r}},Pe=({columnId:o,onResizeStart:e,onResize:n,onResizeEnd:r,isResizing:a=!1,position:i="right",className:d="",debug:u={}})=>{const m=s.useRef(!1),P=s.useRef(null);s.useEffect(()=>{!a&&m.current&&(N(u,1,"外部からのリサイズ解除を検出、ドラッグ状態を強制解除:",o),m.current=!1,document.body.style.cursor="",document.body.style.userSelect="",document.body.classList.remove("resizing-column"))},[a,o,u]);const v=s.useCallback(w=>{w.preventDefault(),w.stopPropagation(),N(u,2,"リサイズハンドル マウスダウン:",o),m.current=!0,e(o,w.clientX),document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.body.classList.add("resizing-column")},[o,e,u]);s.useEffect(()=>{const w=k=>{m.current&&(k.preventDefault(),n(k.clientX))},c=()=>{m.current&&(N(u,2,"リサイズハンドル マウスアップ:",o),m.current=!1,r(),document.body.style.cursor="",document.body.style.userSelect="",document.body.classList.remove("resizing-column"))};return document.addEventListener("mousemove",w),document.addEventListener("mouseup",c),()=>{document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",c)}},[o,n,r,u]);const M=s.useCallback(w=>{w.preventDefault(),w.stopPropagation();const c=w.touches[0];N(u,2,"リサイズハンドル タッチスタート:",o),m.current=!0,e(o,c.clientX),document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.body.classList.add("resizing-column")},[o,e,u]);s.useEffect(()=>{const w=k=>{if(!m.current)return;k.preventDefault();const C=k.touches[0];n(C.clientX)},c=()=>{m.current&&(N(u,2,"リサイズハンドル タッチエンド:",o),m.current=!1,r(),document.body.style.cursor="",document.body.style.userSelect="",document.body.classList.remove("resizing-column"))};return document.addEventListener("touchmove",w,{passive:!1}),document.addEventListener("touchend",c),()=>{document.removeEventListener("touchmove",w),document.removeEventListener("touchend",c)}},[o,n,r,u]),s.useEffect(()=>()=>{m.current&&(N(u,1,"リサイズハンドルアンマウント時のクリーンアップ:",o),document.body.style.cursor="",document.body.style.userSelect="",document.body.classList.remove("resizing-column"))},[o,u]);const A=["resize-handle",i,a?"resizing":"",d].filter(Boolean).join(" ");return t.jsxs("div",{ref:P,className:A,onMouseDown:v,onTouchStart:M,"data-column-id":o,"data-position":i,"aria-label":`${o}のカラム幅を調整`,role:"separator","aria-orientation":"vertical",children:[t.jsx("div",{className:"resize-handle-bar"}),u.showPanelSizes&&t.jsxs("div",{className:"resize-handle-debug-info",children:[o,a&&" (resizing)"]})]})},bt=({columnId:o,width:e,minWidth:n=100,maxWidth:r=800,onResizeStart:a,onResize:i,onResizeEnd:d,isResizing:u=!1,resizable:m=!0,className:P="",debug:v={},children:M})=>{const A=["resizable-column",u?"resizing":"",P].filter(Boolean).join(" ");return s.useEffect(()=>{const w=document.querySelector(`[data-column-id="${o}"]`);w&&(w.style.setProperty("--column-width",`${e}px`),w.style.setProperty("--column-min-width",`${n}px`),w.style.setProperty("--column-max-width",`${r}px`))},[o,e,n,r]),t.jsxs("div",{className:A,"data-column-id":o,"data-width":e,"data-min-width":n,"data-max-width":r,children:[M,m&&t.jsx(Pe,{columnId:o,onResizeStart:a,onResize:i,onResizeEnd:d,isResizing:u,position:"right",debug:v}),v.showPanelSizes&&t.jsxs("div",{className:"column-debug-size",children:[e,"px",u&&" ↔"]})]})},De=s.memo(({index:o,columnIndex:e,isDragging:n,dragOverPosition:r,originalPosition:a,onDragEnter:i,onDragLeave:d,debugConfig:u,customDrag:m})=>t.jsx(Ce,{index:o,columnIndex:e,isDragging:n,dragOverPosition:r,originalPosition:a,onDragEnter:i,onDragLeave:d,config:u,customDrag:m}));De.displayName="LocalInsertPlaceholder";const vt=({columns:o,panels:e,columnPanels:n,panelVisibility:r,onPanelVisibilityChange:a,dragState:i,dragOverPosition:d,originalPanelPosition:u,dragModes:m,onDragStart:P,onDragEnd:v,onPlaceholderDragEnter:M,onPlaceholderDragLeave:A,onDragOverWithInsert:w,onDropWithInsert:c,onColumnDragLeave:k,onPanelClick:C,onPanelMouseDown:T,onTouchStart:L,onTouchMove:Y,onTouchEnd:J,debugConfig:H,panelSizes:B,setPanelRef:R,enableResize:W=!1,columnWidths:g,onResizeStart:x,onResize:S,onResizeEnd:z,isResizing:p=!1,resizingColumn:b,onPanelSizeInfoClick:f,onToggleDragMode:y,onPanelClose:D,onPanelMaximizeChange:_,customDrag:O,dragHandle:I="panel",maximizedPanel:l=null,panelClassName:h="",scale:E,autoScale:X,onScaleChange:Q})=>{const q=s.useRef(H);s.useEffect(()=>{q.current=H},[H]);const{containerRef:Z,scale:ne}=xt(X?.requiredWidth??0,X?.minScale),le=l?1:E??(X?ne:1),se=Number.isFinite(le)&&le>0?le:1,ve=s.useRef(se);ve.current=se,s.useEffect(()=>{Q&&Q(se)},[se,Q]);const Lt=se<1?{width:`${100/se}%`,height:`${100/se}%`,transform:`scale(${se})`,transformOrigin:"top left"}:void 0,ue=s.useRef({}),_e=s.useRef(new Map);s.useEffect(()=>{N(q.current,1,"🎨 DragDropLayout - dragModes props changed:",{dragModes:m,timestamp:new Date().toISOString(),keys:Object.keys(m),values:Object.values(m)})},[m]);const Oe=s.useMemo(()=>{const j={};return e.forEach(G=>{j[G.id]=G}),j},[e]);s.useEffect(()=>{if(!(l&&_))return;const j=G=>{G.key==="Escape"&&_(null)};return document.addEventListener("keydown",j),()=>document.removeEventListener("keydown",j)},[l,_]),s.useLayoutEffect(()=>{const j=new Map;Object.keys(ue.current).forEach(U=>{const ee=ue.current[U];if(ee){const ie=ee.getBoundingClientRect();j.set(U,{rect:ie,height:ee.offsetHeight,width:ee.offsetWidth})}});const G=_e.current,$=300,de=new Set;Object.values(n).forEach(U=>{U.forEach(ee=>{de.add(ee)})}),new Set(G.keys()).forEach(U=>{de.has(U)||(N(q.current,1,"パネル削除検出 - クリーンアップ:",U),G.delete(U),ue.current[U]&&delete ue.current[U])}),j.forEach((U,ee)=>{const ie=G.get(ee);if(ie){const K=ie.rect.left-U.rect.left,he=ie.rect.top-U.rect.top;if(K!==0||he!==0){N(q.current,2,"パネル移動検出 - アニメーション開始:",ee,{dx:K,dy:he});const re=ue.current[ee];if(re){const ye=ve.current||1;re.style.transform=`translate(${K/ye}px, ${he/ye}px)`,re.style.transition="none",re.classList.add("is-moving"),requestAnimationFrame(()=>{re.style.transition=`transform ${$}ms cubic-bezier(0.2, 0, 0.2, 1)`,re.style.transform="translate(0, 0)",setTimeout(()=>{re.style.transition="",re.style.transform="",re.classList.remove("is-moving")},$)})}}}else{N(q.current,1,"新規パネル検出 - フェードインアニメーション:",ee);const K=ue.current[ee];K&&(K.style.opacity="0",K.style.transition="none",requestAnimationFrame(()=>{K.style.transition=`opacity ${$}ms ease-out`,K.style.opacity="1",setTimeout(()=>{K.style.transition="",K.style.opacity=""},$)}))}}),_e.current=j},[n]),s.useLayoutEffect(()=>{const j=new Map;Object.keys(ue.current).forEach(G=>{const $=ue.current[G];$&&j.set(G,{rect:$.getBoundingClientRect(),height:$.offsetHeight,width:$.offsetWidth})}),_e.current=j},[se]);const Wt=j=>{if(!r[j])return null;const G=Oe[j];if(!G)return N(q.current,1,`Panel config not found for panelId: ${j}`),null;const $=G.component,de=G.title,ce=i.draggedPanel===j,U=m[j]||"normal";N(q.current,2,`🎨 renderPanel - ${j}:`,{panelId:j,dragMode:U,timestamp:new Date().toISOString()});const ee=V=>{ue.current[j]=V,R&&R(j,V),V&&H.showPanelSizes&&requestAnimationFrame(()=>{const ke=V.getBoundingClientRect(),tt=window.getComputedStyle(V);N(q.current,1,`Panel ${j} mounted with size:`,{width:ke.width,height:ke.height,x:ke.left,y:ke.top,minHeight:tt.minHeight,maxHeight:tt.maxHeight})})},ie=B[j],K=l===j,he=!!_,re=()=>_?.(K?null:j),ye=K?{position:"fixed",top:"var(--aqdd-maximize-top, 0px)",right:"var(--aqdd-maximize-right, 0px)",bottom:"var(--aqdd-maximize-bottom, 0px)",left:"var(--aqdd-maximize-left, 0px)",zIndex:50,minHeight:0,maxHeight:"none"}:{minHeight:G.minHeight??"200px",maxHeight:G.maxHeight??"500px"},we=I==="header",Ke=U==="normal"&&!we&&!K,qe=U==="normal"&&we&&!K,$e=ce?"cursor-grabbing":"cursor-grab",et=`panel-draggable group relative flex flex-col overflow-hidden border border-slate-200 text-left shadow-lg backdrop-blur-lg ${U==="custom"?"select-none":""}`,Ft=K?`${et} rounded-none bg-white/95 p-4 ${h}`:`${et} rounded-2xl bg-white/80 p-4 transition-all duration-300 hover:-translate-y-1 hover:shadow-xl ${we?"":$e} ${h}`;return t.jsxs("div",{ref:ee,"data-panel-id":j,"data-dragging":ce,"data-maximized":K||void 0,role:"presentation",draggable:Ke,onDragStart:V=>Ke&&P(V,j),onDragEnd:v,onClick:V=>C?.(V,j),onMouseDown:V=>T?.(V,j),onTouchStart:V=>L?.(V,j),onTouchMove:Y,onTouchEnd:J,style:ye,className:Ft,children:[t.jsxs("div",{className:`group relative mb-3 flex items-center justify-between ${we&&!K?$e:""}`,draggable:qe,onDragStart:V=>qe&&P(V,j),onDoubleClick:he?V=>{V.stopPropagation(),re()}:void 0,children:[t.jsxs("div",{className:"flex items-center space-x-2",children:[t.jsx("h3",{className:"font-semibold text-lg text-slate-700 transition-colors group-hover:text-slate-900",children:de}),U==="custom"&&t.jsx("span",{className:"rounded-md bg-orange-100 px-2 py-1 font-medium text-orange-600 text-xs",children:"Custom"})]}),t.jsxs("div",{className:"flex items-center space-x-1 opacity-0 transition-opacity group-hover:opacity-100",children:[t.jsx("button",{type:"button",onClick:V=>{V.stopPropagation(),y&&y(j)},onKeyDown:V=>{(V.key==="Enter"||V.key===" ")&&(V.preventDefault(),V.stopPropagation(),y&&y(j))},tabIndex:0,className:`cursor-pointer rounded p-1 text-xs transition-colors ${U==="custom"?"bg-orange-100 text-orange-600 hover:bg-orange-200":"text-slate-400 hover:bg-slate-100 hover:text-slate-600"}`,title:U==="custom"?"通常ドラッグモードに戻す":"カスタムドラッグモードに切り替え",children:U==="custom"?t.jsx(ft,{className:"h-4 w-4"}):t.jsx(mt,{className:"h-4 w-4"})}),!K&&t.jsx("button",{type:"button",onClick:V=>{V.stopPropagation(),a({...r,[j]:!1})},className:"rounded p-1 text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600",title:"パネルを非表示",children:t.jsx(Fe,{className:"h-4 w-4"})}),he&&t.jsx("button",{type:"button",onClick:V=>{V.stopPropagation(),re()},className:"rounded p-1 text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600",title:K?"元のサイズに戻す":"パネルを最大化",children:K?t.jsx(ht,{className:"h-4 w-4"}):t.jsx(dt,{className:"h-4 w-4"})}),D&&t.jsx("button",{type:"button",onClick:V=>{V.stopPropagation(),D(j)},className:"rounded p-1 text-slate-400 transition-colors hover:bg-slate-100 hover:text-red-500",title:"パネルを閉じる",children:t.jsx(Ye,{className:"h-4 w-4"})})]})]}),t.jsx("div",{"data-aqdd-scroll-area":!0,className:"panel-scroll-area min-h-0 flex-1 overflow-y-auto",children:t.jsx($,{...G.props||{}})}),t.jsx(He,{config:H,panelId:j,sizeInfo:ie,onSizeInfoClick:V=>f?.(V,j)})]},j)},zt=(j,G)=>{const $=n[j]||[];let de=!1;for(const U of $)if(r[U]){de=!0;break}const ce=i.isDragging||(O?.isActive??!1);return t.jsx(Ne,{columnIndex:G,isDragging:ce,dragOverPosition:d,config:H,children:t.jsxs("section",{"data-drop-zone":"true","data-column-key":j,"data-column-index":G,"aria-label":`Drop zone for column ${G+1}`,onDragOver:U=>w(U,G),onDrop:U=>c(U,j),onDragLeave:k,className:"relative flex h-full flex-col transition-all duration-200",children:[t.jsx("div",{className:"placeholder-container",children:t.jsx(De,{index:0,columnIndex:G,isDragging:ce,dragOverPosition:d,originalPosition:u,onDragEnter:M,onDragLeave:A,debugConfig:H,customDrag:O})}),$.map((U,ee)=>{const ie=r[U],K=!(ie||ce);return t.jsxs("div",{className:`panel-with-placeholder ${K?"m-0 h-0 overflow-hidden p-0":""}`,"data-panel-hidden":K?"true":void 0,"aria-hidden":K?"true":void 0,children:[ie?Wt(U):ce?t.jsxs("div",{className:"hidden-panel-placeholder relative h-[120px] rounded-2xl border-2 border-amber-300 border-dashed bg-gradient-to-br from-amber-50 to-orange-50 p-3 text-left shadow-lg backdrop-blur-lg",children:[t.jsxs("div",{className:"mb-2 flex items-center space-x-2",children:[t.jsx("h3",{className:"font-semibold text-amber-700 text-base",children:Oe[U]?.title||U}),t.jsx("span",{className:"rounded-md bg-amber-100 px-2 py-1 font-medium text-amber-600 text-xs",children:"非表示"})]}),t.jsx("div",{className:"flex-1 overflow-hidden",children:t.jsx("div",{className:"flex h-full items-center justify-center",children:t.jsxs("div",{className:"text-center text-amber-600",children:[t.jsx(Fe,{className:"mx-auto h-6 w-6 opacity-50"}),t.jsx("p",{className:"mt-1 text-xs",children:"このパネルは非表示です"})]})})})]}):null,t.jsx(De,{index:ee+1,columnIndex:G,isDragging:ce,dragOverPosition:d,originalPosition:u,onDragEnter:M,onDragLeave:A,debugConfig:H,customDrag:O})]},`panel-${U}`)}),!(de||ce)&&t.jsx("div",{className:"flex-shrink-0 rounded-xl border-2 border-slate-200 border-dashed bg-white/30 p-8 text-center text-slate-400 transition-all duration-200",children:t.jsx("div",{className:"text-sm",children:"このエリアは空です"})})]})})},Qe=Object.keys(r).filter(j=>!r[j]);return t.jsxs("div",{className:"flex h-full flex-col",children:[Qe.length>0&&t.jsx("div",{className:"border-slate-200 border-b bg-white/70 px-4 py-2 backdrop-blur-lg",children:t.jsxs("div",{className:"flex flex-wrap gap-2",children:[t.jsx("span",{className:"mr-2 text-slate-600 text-sm",children:"非表示のパネル:"}),Qe.map(j=>{const $=Oe[j]?.title||j;return t.jsxs("button",{type:"button",onClick:()=>a({...r,[j]:!0}),className:"flex items-center space-x-1 rounded-lg border border-sky-300 bg-gradient-to-r from-sky-500 to-indigo-500 px-3 py-1 text-sm text-white shadow-md transition-all duration-200 hover:from-sky-600 hover:to-indigo-600 hover:shadow-lg",children:[t.jsx(ut,{className:"h-3 w-3"}),t.jsx("span",{children:$})]},j)})]})}),t.jsx("div",{ref:Z,className:"relative min-h-0 flex-1 overflow-hidden",children:t.jsx("div",{className:"h-full w-full",style:Lt,children:t.jsx("main",{"data-aqdd-scroll-root":!0,className:"no-scrollbar h-full max-w-full flex-1 overflow-auto px-4 py-6 sm:px-6",children:t.jsx("div",{className:"relative flex h-full items-start gap-6 pr-4",children:o.map((j,G)=>{const $=g?.[j.id]||j.initialWidth||350,de=W&&(j.resizable??!0);return t.jsx(s.Fragment,{children:t.jsxs("div",{className:`column relative ${j.className||""} ${W?"resize-enabled-column":"auto-width-column"} ${p&&b===j.id?"column-resizing-active":""}`,"data-column":G,"data-column-id":j.id,"data-min-width":j.minWidth||350,"data-max-width":j.maxWidth,"data-column-width":W?$:void 0,...W&&{style:{"--column-width":`${$}px`}},children:[zt(j.key,G),de&&x&&S&&z&&t.jsx(Pe,{columnId:j.id,onResizeStart:x,onResize:S,onResizeEnd:z,isResizing:p&&b===j.id,position:"right",debug:H})]})},j.id)})})})})})]})};const yt=te("grid-3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);const wt=te("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const Ee=te("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const kt=te("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),jt=({columnCount:o,onColumnCountChange:e,onAutoBalance:n,onResetWidths:r,minColumns:a=2,maxColumns:i=6,isResizing:d=!1,isResponsiveMode:u=!1,responsiveColumnCount:m})=>{const P=o>a&&!u,v=o<i&&!u;return t.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-slate-200 bg-white/80 px-4 py-2 shadow-sm backdrop-blur-lg",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("span",{className:"font-medium text-slate-700 text-sm",children:"カラム数:"}),t.jsx("button",{type:"button",onClick:()=>P&&e(o-1),disabled:!P||d,className:`rounded p-1 text-xs transition-colors ${P&&!d?"border border-slate-300 text-slate-600 hover:border-red-300 hover:bg-red-50 hover:text-red-600":"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300"}`,title:u?"レスポンシブモード中:カラム数は自動調整されます":`カラムを削除 (最小: ${a}列)`,children:t.jsx(wt,{className:"h-3 w-3"})}),t.jsxs("div",{className:`min-w-[2rem] rounded border px-3 py-1 text-center font-mono text-sm ${u?"border-blue-300 bg-blue-50 text-blue-700":"border-slate-300 bg-slate-100 text-slate-700"}`,children:[u?m??o:o,u&&t.jsx("span",{className:"ml-1 text-xs",children:"自動"})]}),t.jsx("button",{type:"button",onClick:()=>v&&e(o+1),disabled:!v||d,className:`rounded p-1 text-xs transition-colors ${v&&!d?"border border-slate-300 text-slate-600 hover:border-blue-300 hover:bg-blue-50 hover:text-blue-600":"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300"}`,title:u?"レスポンシブモード中:カラム数は自動調整されます":`カラムを追加 (最大: ${i}列)`,children:t.jsx(Ee,{className:"h-3 w-3"})})]}),t.jsx("div",{className:"h-6 w-px bg-slate-300"}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("button",{type:"button",onClick:n,disabled:d,className:`flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors ${d?"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300":"border border-slate-300 text-slate-600 hover:border-green-300 hover:bg-green-50 hover:text-green-600"}`,title:"パネルを全カラムに均等分散",children:[t.jsx(yt,{className:"h-3 w-3"}),t.jsx("span",{children:"バランス"})]}),t.jsxs("button",{type:"button",onClick:r,disabled:d,className:`flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors ${d?"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300":"border border-slate-300 text-slate-600 hover:border-orange-300 hover:bg-orange-50 hover:text-orange-600"}`,title:"カラム幅を初期値にリセット",children:[t.jsx(kt,{className:"h-3 w-3"}),t.jsx("span",{children:"幅リセット"})]})]}),d&&t.jsxs("div",{className:"flex items-center gap-1 text-blue-600 text-xs",children:[t.jsx("div",{className:"h-2 w-2 animate-pulse rounded-full bg-blue-500"}),t.jsx("span",{children:"リサイズ中..."})]})]})},Ct=({columnCount:o,onInsertColumn:e,onDeleteColumn:n,minColumns:r=1,maxColumns:a=6,isResizing:i=!1,disabled:d=!1})=>{const u=o<a&&!d,m=o>r&&!d;return t.jsxs("div",{className:`flex items-center justify-center gap-1 rounded-lg border border-slate-200 px-4 py-2 shadow-sm backdrop-blur-lg ${d?"bg-slate-100/80 opacity-60":"bg-white/80"}`,children:[d&&t.jsx("div",{className:"flex items-center gap-2 text-slate-500 text-xs",children:t.jsx("span",{children:"レスポンシブモード有効中:カラム数は自動調整されます"})}),!d&&t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",onClick:()=>u&&e(0),disabled:!u||i,className:`flex h-8 w-8 items-center justify-center rounded border-2 border-dashed text-xs transition-colors ${u&&!i?"border-blue-300 text-blue-600 hover:border-blue-500 hover:bg-blue-50":"cursor-not-allowed border-slate-200 text-slate-300"}`,title:"この位置に新しいカラムを挿入",children:t.jsx(Ee,{className:"h-4 w-4"})}),Array.from({length:o},(P,v)=>t.jsxs("div",{className:"flex items-center gap-1",children:[t.jsxs("div",{className:"relative flex h-8 w-12 items-center justify-center rounded border border-slate-300 bg-slate-100",children:[t.jsx("span",{className:"font-medium font-mono text-slate-700 text-xs",children:v+1}),m&&!i&&t.jsx("button",{type:"button",onClick:()=>n(v),className:"absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full border border-red-300 bg-red-100 text-red-600 hover:bg-red-200",title:`カラム ${v+1} を削除`,children:t.jsx(Ye,{className:"h-2.5 w-2.5"})})]}),t.jsx("button",{type:"button",onClick:()=>u&&e(v+1),disabled:!u||i,className:`flex h-8 w-8 items-center justify-center rounded border-2 border-dashed text-xs transition-colors ${u&&!i?"border-blue-300 text-blue-600 hover:border-blue-500 hover:bg-blue-50":"cursor-not-allowed border-slate-200 text-slate-300"}`,title:"この位置に新しいカラムを挿入",children:t.jsx(Ee,{className:"h-4 w-4"})})]},`column-${v}`))]})]})},Nt=({config:o,onConfigChange:e,isVisible:n,onToggleVisibility:r})=>n?t.jsxs("div",{className:"fixed right-4 bottom-4 z-50 max-w-sm rounded-lg border border-gray-300 bg-white p-4 shadow-xl",children:[t.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[t.jsx("h3",{className:"font-bold text-gray-800 text-sm",children:"🛠️ デバッグ設定"}),t.jsx("button",{type:"button",onClick:r,className:"text-gray-500 text-lg hover:text-gray-700",title:"閉じる",children:"✕"})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[t.jsx("input",{type:"checkbox",checked:o.showDebugPanel??!1,onChange:a=>e({...o,showDebugPanel:a.target.checked}),className:"rounded"}),t.jsx("span",{children:"デバッグパネル表示"})]}),t.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[t.jsx("input",{type:"checkbox",checked:o.showMousePosition??!1,onChange:a=>e({...o,showMousePosition:a.target.checked}),className:"rounded"}),t.jsx("span",{children:"マウス位置表示"})]}),t.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[t.jsx("input",{type:"checkbox",checked:o.showPanelSizes??!1,onChange:a=>e({...o,showPanelSizes:a.target.checked}),className:"rounded"}),t.jsx("span",{children:"パネルサイズ情報"})]}),t.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[t.jsx("input",{type:"checkbox",checked:o.showPlaceholderInfo??!1,onChange:a=>e({...o,showPlaceholderInfo:a.target.checked}),className:"rounded"}),t.jsx("span",{children:"プレースホルダー詳細"})]}),t.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[t.jsx("input",{type:"checkbox",checked:o.showDropZoneOutlines??!1,onChange:a=>e({...o,showDropZoneOutlines:a.target.checked}),className:"rounded"}),t.jsx("span",{children:"ドロップゾーン境界"})]}),t.jsxs("div",{className:"border-gray-200 border-t pt-2",children:[t.jsxs("label",{htmlFor:"log-level-slider",className:"mb-1 block text-sm",children:["ログレベル: ",o.logLevel??0]}),t.jsx("input",{id:"log-level-slider",type:"range",min:"0",max:"2",value:o.logLevel??0,onChange:a=>e({...o,logLevel:parseInt(a.target.value,10)}),className:"w-full","aria-label":"ログレベル設定"}),t.jsxs("div",{className:"mt-1 flex justify-between text-gray-500 text-xs",children:[t.jsx("span",{children:"無効"}),t.jsx("span",{children:"基本"}),t.jsx("span",{children:"詳細"})]})]}),t.jsxs("div",{className:"space-y-2 pt-2",children:[t.jsx("button",{type:"button",onClick:()=>e({showDebugPanel:!0,showMousePosition:!0,showPanelSizes:!0,showPlaceholderInfo:!0,showDropZoneOutlines:!0,logLevel:2}),className:"w-full rounded bg-blue-100 px-2 py-1 text-blue-700 text-sm transition-colors hover:bg-blue-200",children:"すべて有効"}),t.jsx("button",{type:"button",onClick:()=>e({showDebugPanel:!1,showMousePosition:!1,showPanelSizes:!1,showPlaceholderInfo:!1,showDropZoneOutlines:!1,logLevel:0}),className:"w-full rounded bg-gray-100 px-2 py-1 text-gray-700 text-sm transition-colors hover:bg-gray-200",children:"すべて無効"})]})]})]}):t.jsx("button",{type:"button",onClick:r,className:"fixed right-4 bottom-4 z-50 rounded-lg bg-gray-800 p-2 text-white shadow-lg transition-colors hover:bg-gray-700",title:"デバッグ設定を開く",children:"🛠️"}),oe={prefix:"column",startIndex:1,separator:"_"},ge=(o,e=oe)=>{const{prefix:n,startIndex:r,separator:a}=e,i=o+r;return`${n}${a}${i}`},Se=(o,e=oe)=>Array.from({length:o},(n,r)=>ge(r,e)),pe=(o,e=oe)=>{const{prefix:n,startIndex:r,separator:a}=e,i=`${n}${a}`;if(!o.startsWith(i))return null;const d=o.slice(i.length),u=parseInt(d,10);return Number.isNaN(u)||u<r?null:u-r},Pt=(o,e=oe)=>pe(o,e)!==null,Dt=(o,e=oe)=>{const n=o.map(r=>pe(r,e)).filter(r=>r!==null).sort((r,a)=>r-a);for(let r=0;r<n.length;r++)if(n[r]!==r)return ge(r,e);return ge(n.length,e)},Xe=(o,e=oe)=>o.sort((n,r)=>{const a=pe(n,e)??-1,i=pe(r,e)??-1;return a-i}),Et=(o,e=oe)=>{const n={};return o.forEach((r,a)=>{const i=ge(a,e);n[r]=i}),n},Ie=(o,e,n=oe)=>{const r=[];Object.values(o).forEach(d=>{r.push(...d)});const a={},i=Se(e,n);return i.forEach(d=>{a[d]=[]}),r.forEach((d,u)=>{const m=u%e,P=i[m];a[P].push(d)}),a},St=({initialColumns:o,initialPanels:e,debug:n={},onLayoutChange:r})=>{const[a,i]=s.useState(()=>{const g={};for(const x of o)g[x.id]=x.initialWidth||400;return{columns:o,columnWidths:g,isResizing:!1,resizingColumn:null,columnPanels:e,showInsertPlaceholders:!1}}),d=s.useRef(0),u=s.useRef(0);s.useEffect(()=>{r?.(a)},[a,r]);const m=s.useCallback((g,x)=>{N(n,1,"カラム追加:",g.id,"at position:",x),i(S=>{const z=[...S.columns],p=x??z.length;z.splice(p,0,g);const b={...S.columnWidths,[g.id]:g.initialWidth||400},f={...S.columnPanels,[g.id]:[]};return{...S,columns:z,columnWidths:b,columnPanels:f}})},[n]),P=s.useCallback(g=>{N(n,1,"カラム削除:",g),i(x=>{const S=x.columnPanels[g]||[],z=x.columns.filter(y=>y.id!==g);if(z.length===0)return N(n,1,"警告: 最後のカラムを削除しようとしています"),x;const p=z[0].id,b={...x.columnPanels};S.length>0&&(b[p]=[...b[p],...S]),delete b[g];const f={...x.columnWidths};return delete f[g],{...x,columns:z,columnWidths:f,columnPanels:b}})},[n]),v=s.useCallback((g,x)=>{N(n,1,"カラム移動:",g,"->",x),i(S=>{const z=[...S.columns],[p]=z.splice(g,1);return z.splice(x,0,p),{...S,columns:z}})},[n]),M=s.useCallback((g,x)=>{N(n,2,"リサイズ開始:",g,"at X:",x),d.current=x,u.current=a.columnWidths[g]||300,i(S=>({...S,isResizing:!0,resizingColumn:g}))},[n,a.columnWidths]),A=s.useCallback(g=>{const{resizingColumn:x,isResizing:S}=a;if(!(S&&x))return;const z=g-d.current,p=Math.max(100,Math.min(800,u.current+z));N(n,2,"リサイズ中:",x,"new width:",p),i(b=>({...b,columnWidths:{...b.columnWidths,[x]:p}}))},[n,a]),w=s.useCallback(()=>{N(n,2,"リサイズ終了"),i(g=>({...g,isResizing:!1,resizingColumn:null}))},[n]),c=s.useCallback((g,x)=>{N(n,2,"カラム幅設定:",g,x),i(S=>({...S,columnWidths:{...S.columnWidths,[g]:Math.max(100,Math.min(800,x))}}))},[n]),k=s.useCallback(()=>{N(n,1,"カラム幅リセット"),i(g=>{const x={};for(const S of g.columns)x[S.id]=S.initialWidth||400;return{...g,columnWidths:x}})},[n]),C=s.useCallback((g,x,S,z)=>{N(n,1,"パネル移動:",g,"from",x,"to",S,"at",z),i(p=>{const b={...p.columnPanels};if(x in b&&(b[x]=b[x].filter(f=>f!==g)),S in b){const f=[...b[S]];f.splice(z,0,g),b[S]=f}return{...p,columnPanels:b}})},[n]),T=s.useCallback((g,x,S)=>{N(n,1,"パネル追加:",g,"to column:",x),i(z=>{const p={...z.columnPanels};x in p||(p[x]=[]);const b=[...p[x]],f=S??b.length;return b.splice(f,0,g),p[x]=b,{...z,columnPanels:p}})},[n]),L=s.useCallback(g=>{N(n,1,"パネル削除:",g),i(x=>{const S={};for(const[z,p]of Object.entries(x.columnPanels))S[z]=p.filter(b=>b!==g);return{...x,columnPanels:S}})},[n]),Y=s.useCallback(g=>{N(n,1,"カラム数更新:",g),i(x=>{const S=x.columns.length;if(g===S)return x;const z=Ie(x.columnPanels,g,oe),p=Se(g,oe),b=x.isResizing&&x.resizingColumn&&!p.includes(x.resizingColumn);b&&N(n,1,"リサイズ中のカラムが削除されるためリサイズを強制終了:",x.resizingColumn);const f=p.map((O,I)=>({id:O,title:`カラム ${I+1}`,minWidth:350,maxWidth:800,initialWidth:400,resizable:!(I===1&&g===3)})),y={};if(Object.entries(x.columnWidths).some(([,O])=>O!==400))p.forEach(O=>{const I=x.columnWidths[O];I&&I!==400?y[O]=I:y[O]=400});else{const O=S>g?Object.values(x.columnWidths).reduce((l,h)=>l+h,0):g*400,I=Math.max(O/g,350);p.forEach(l=>{y[l]=I})}return{...x,columns:f,columnPanels:z,columnWidths:y,isResizing:b?!1:x.isResizing,resizingColumn:b?null:x.resizingColumn}})},[n]),J=s.useCallback(()=>{N(n,1,"カラム自動バランス調整"),i(g=>{const x=[];for(const p of Object.keys(g.columnPanels))for(const b of g.columnPanels[p])x.push(b);const S={};for(const p of g.columns)S[p.id]=[];let z=0;for(const p of x){const b=g.columns[z%g.columns.length].id;S[b].push(p),z+=1}return{...g,columnPanels:S}})},[n]),H=s.useCallback(g=>a.columns.find(x=>x.id===g),[a.columns]),B=s.useCallback(()=>{let g=0;for(const x of Object.values(a.columnWidths))g+=x;return g},[a.columnWidths]),R=s.useCallback(g=>document.querySelector(`[data-column-id="${g}"]`),[]),W=s.useCallback(g=>{i(x=>({...x,showInsertPlaceholders:g}))},[]);return{layoutState:a,addColumn:m,removeColumn:P,moveColumn:v,startResize:M,handleResize:A,endResize:w,setColumnWidth:c,resetColumnWidths:k,movePanel:C,addPanel:T,removePanel:L,updateColumnCount:Y,autoBalanceColumns:J,getColumnById:H,getTotalWidth:B,getColumnElement:R,setShowInsertPlaceholders:W}},xe={triggerDistance:80,scrollSpeed:5,maxScrollSpeed:20},Me=(o,e,n=xe,r)=>{const{triggerDistance:a,scrollSpeed:i,maxScrollSpeed:d}=n;let u;r?u=r.getBoundingClientRect():u=new DOMRect(0,0,window.innerWidth,window.innerHeight);const{left:m,top:P,right:v,bottom:M}=u;let A=0,w=0;if(o>=m&&o<=v&&e>=P&&e<=M){if(o<m+a){const c=Math.max(0,(m+a-o)/a);A=-Math.min(d,i+c*(d-i))}else if(o>v-a){const c=Math.max(0,(o-(v-a))/a);A=Math.min(d,i+c*(d-i))}if(e<P+a){const c=Math.max(0,(P+a-e)/a);w=-Math.min(d,i+c*(d-i))}else if(e>M-a){const c=Math.max(0,(e-(M-a))/a);w=Math.min(d,i+c*(d-i))}}return{x:A,y:w}},Ue=(o,e)=>{(o.x!==0||o.y!==0)&&(e?e.scrollBy(o.x,o.y):window.scrollBy(o.x,o.y))};class Re{constructor(e=xe,n){this.intervalId=null,this.isActive=!1,this.config=e,this.scrollElement=n}setScrollElement(e){this.scrollElement=e}start(e,n){this.isActive||(this.isActive=!0,this.intervalId=window.setInterval(()=>{const r=Me(e,n,this.config,this.scrollElement);Ue(r,this.scrollElement)},16))}update(e,n){const r=Me(e,n,this.config,this.scrollElement);(r.x!==0||r.y!==0)&&!this.isActive?this.start(e,n):r.x===0&&r.y===0&&this.isActive&&this.stop()}stop(){this.intervalId!==null&&(clearInterval(this.intervalId),this.intervalId=null),this.isActive=!1}isScrolling(){return this.isActive}updateConfig(e){this.config=e}}const Ve=({debugConfig:o,dragState:e,customDrag:n,clickState:r,dragModes:a,isMouseDown:i,dragOverPosition:d,setCustomDrag:u,setDragState:m,setDragOverPosition:P,setOriginalPanelPosition:v,setClickState:M,setIsMouseDown:A,findPanelPosition:w,performPanelMove:c,showMousePosition:k,updateMousePosition:C,recordMouseDown:T,recordClickPosition:L,isVirtualClick:Y,calculateMoveDistance:J,clearMouseTracking:H,resetDragState:B,resetClickState:R,createDragImage:W,updateDragImagePosition:g,removeDragImage:x,handlePlaceholderDragEnter:S,handlePlaceholderDragLeave:z})=>{const p=s.useRef(o);p.current=o;const b=s.useRef(null),f=s.useRef(null),y=s.useRef(0),D=s.useRef(new Re(xe));s.useEffect(()=>{const h=document.querySelector("main[data-aqdd-scroll-root]");h&&D.current.setScrollElement(h)},[]);const _=s.useRef(d);s.useEffect(()=>{_.current=d,N(p.current,2,"dragOverPositionRef更新:",d)},[d]);const O=s.useCallback(h=>{if(n.isActive||r.isClicked){h.preventDefault();const E=window.getSelection();E&&E.rangeCount>0&&E.removeAllRanges()}if(n.isActive){C(h.clientX,h.clientY),g(h.clientX,h.clientY),D.current.update(h.clientX,h.clientY);const E=document.elementFromPoint(h.clientX,h.clientY),X=E?.closest("[data-drop-zone]");if(X){document.body.classList.add("droppable");const Q=X.getAttribute("data-column-index"),q=Q?parseInt(Q,10):null;q!==null&&q!==e.dragOverColumn&&m(ne=>({...ne,dragOverColumn:q}));const Z=E?.closest("[data-placeholder-index]");if(Z){const ne=Z.getAttribute("data-placeholder-index"),le=Z.getAttribute("data-placeholder-column");if(ne&&le){const se=parseInt(ne,10),ve=parseInt(le,10);S(ve,se)}}else z()}else document.body.classList.remove("droppable"),P(null),m(Q=>({...Q,dragOverColumn:null}))}else if(i&&r.isClicked&&r.panelId){if(a[r.panelId]!=="custom"||J(h.clientX,h.clientY)<10)return;N(p.current,1,"🚀 カスタムドラッグ開始 -",r.panelId);const X=document.querySelector(`[data-panel-id="${r.panelId}"]`);if(X&&f.current){const Q=X.getBoundingClientRect(),q=f.current.x-Q.left,Z=f.current.y-Q.top;W(r.panelId,q,Z),document.body.classList.add("custom-dragging"),u({isActive:!0,panelId:r.panelId,startX:q,startY:Z})}m({isDragging:!0,draggedPanel:r.panelId,dragOverColumn:null}),v(w(r.panelId)),k(h.clientX,h.clientY),M({isClicked:!1,panelId:null}),A(!1),H(),f.current=null,b.current&&(clearTimeout(b.current),b.current=null)}},[n.isActive,r,e.dragOverColumn,a,i,C,m,P,J,w,u,v,k,M,A,H,W,g,S,z]),I=s.useCallback(h=>{if(N(p.current,1,"🐭 カスタムドラッグハンドラー - グローバルマウスアップ",{isActive:n.isActive,panelId:n.panelId,dragMode:n.panelId?a[n.panelId]:"unknown"}),n.isActive){D.current.stop();const E=_.current;if(E){const Q=document.elementFromPoint(h.clientX,h.clientY)?.closest("[data-drop-zone]");if(Q){const q=Q.getAttribute("data-column-key");q&&a[n.panelId]==="custom"?(N(p.current,1,"🔄 カスタムドラッグパネル移動実行:",n.panelId,"→",q),c(n.panelId,q,E.insertIndex)):N(p.current,1,"🚫 カスタムドラッグパネル移動スキップ:",n.panelId,"モード:",a[n.panelId])}}x(),document.body.classList.remove("custom-dragging","droppable"),B(),y.current=0}else if(Y(h.clientX,h.clientY)){const X=document.elementFromPoint(h.clientX,h.clientY)?.closest("[data-panel-id]"),Q=X?.getAttribute("data-panel-id")??null;if(!(X&&Q)||a[Q]!=="custom"){b.current&&(clearTimeout(b.current),b.current=null),R(),f.current=null,y.current=0;return}y.current+=1,r.isClicked===!1&&y.current===1?(N(p.current,1,"🖱️ 仮想クリック検出 - ドラッグ待機状態へ:",Q),M({isClicked:!0,panelId:Q}),b.current=window.setTimeout(()=>{N(p.current,1,"⏳ クリック待機状態を自動解除:",Q),R(),f.current=null,y.current=0},2e3)):(N(p.current,1,"🚫 クリック待機状態を解除 - 仮想クリック検出停止:",Q),b.current&&(clearTimeout(b.current),b.current=null),R(),f.current=null,y.current=0,b.current=window.setTimeout(()=>{N(p.current,1,"⏳ 仮想クリック検出再開:",Q)},2e3))}else r.isClicked&&(R(),f.current=null,y.current=0);i&&A(!1)},[n.isActive,n.panelId,r,a,i,c,B,R,Y,M,A,x]),l=s.useCallback((h,E)=>{if(a[E]!=="custom"){N(p.current,1,"🚫 カスタムドラッグモードではない - スキップ:",E);return}T(h.clientX,h.clientY),r.isClicked&&r.panelId===E&&(A(!0),b.current!==null&&(clearTimeout(b.current),b.current=null),L(h.clientX,h.clientY),f.current={x:h.clientX,y:h.clientY})},[r,a,T,A,L]);return s.useEffect(()=>()=>{b.current!==null&&clearTimeout(b.current),D.current.stop()},[]),{handleGlobalMouseMove:O,handleGlobalMouseUp:I,handleMouseDown:l}},Be=()=>{const[o,e]=s.useState({isDragging:!1,draggedPanel:null,dragOverColumn:null}),[n,r]=s.useState(null),[a,i]=s.useState(null),[d,u]=s.useState({isActive:!1,panelId:"",startX:0,startY:0}),[m,P]=s.useState({isClicked:!1,panelId:null}),[v,M]=s.useState({isTouchDragging:!1,startX:0,startY:0,currentX:0,currentY:0,draggedElement:null}),[A,w]=s.useState(!1),c=s.useCallback(()=>{u({isActive:!1,panelId:"",startX:0,startY:0}),e({isDragging:!1,draggedPanel:null,dragOverColumn:null}),r(null),i(null)},[]),k=s.useCallback(()=>{P({isClicked:!1,panelId:null}),w(!1)},[]),C=s.useCallback(R=>{e(R)},[]),T=s.useCallback(R=>{r(R)},[]),L=s.useCallback(R=>{i(R)},[]),Y=s.useCallback(R=>{u(R)},[]),J=s.useCallback(R=>{P(R)},[]),H=s.useCallback(R=>{M(R)},[]),B=s.useCallback(R=>{w(R)},[]);return{dragState:o,dragOverPosition:n,originalPanelPosition:a,customDrag:d,clickState:m,touchDragState:v,isMouseDown:A,setDragState:C,setDragOverPosition:T,setOriginalPanelPosition:L,setCustomDrag:Y,setClickState:J,setTouchDragState:H,setIsMouseDown:B,resetDragState:c,resetClickState:k}},Ge=()=>{const[o,e]=s.useState({x:0,y:0,isVisible:!1}),n=s.useRef(null),r=s.useRef(0),a=s.useRef(null),i=s.useCallback((w,c)=>{e({x:w,y:c,isVisible:!0})},[]),d=s.useCallback(()=>{e(w=>({...w,isVisible:!1}))},[]),u=s.useCallback((w,c)=>{e(k=>k.x===w&&k.y===c?k:{x:w,y:c,isVisible:k.isVisible})},[]),m=s.useCallback((w,c)=>{r.current=Date.now(),a.current={x:w,y:c}},[]),P=s.useCallback((w,c)=>{n.current={x:w,y:c}},[]),v=s.useCallback((w,c,k=500,C=5)=>Date.now()-(r.current||0)>=k||!a.current?!1:Math.sqrt((w-a.current.x)**2+(c-a.current.y)**2)<C,[]),M=s.useCallback((w,c)=>{if(!n.current)return 0;const k=Math.abs(w-n.current.x),C=Math.abs(c-n.current.y);return Math.sqrt(k*k+C*C)},[]),A=s.useCallback(()=>{n.current=null,r.current=0,a.current=null},[]);return{mousePosition:o,lastClickPosition:n.current,mouseDownTime:r.current,mouseDownPosition:a.current,showMousePosition:i,hideMousePosition:d,updateMousePosition:u,recordMouseDown:m,recordClickPosition:P,isVirtualClick:v,calculateMoveDistance:M,clearMouseTracking:A}},Ze=({debugConfig:o,dragState:e,customDrag:n,dragModes:r,columnPanels:a,dragOverPosition:i,originalPanelPosition:d,setDragState:u,setDragOverPosition:m,setOriginalPanelPosition:P,performPanelMove:v,showMousePosition:M,updateMousePosition:A,resetDragState:w,handlePlaceholderDragEnter:c,handlePlaceholderDragLeave:k,scale:C=1})=>{const T=s.useRef(o);T.current=o;const L=s.useRef(a);L.current=a;const Y=s.useRef(e);Y.current=e;const J=s.useRef(i);J.current=i;const H=s.useRef(d);H.current=d;const B=s.useRef(C);B.current=C;const R=s.useRef(new Re(xe));s.useEffect(()=>{const p=document.querySelector("main[data-aqdd-scroll-root]");p&&R.current.setScrollElement(p)},[]);const W=s.useCallback((p,b)=>{if(n.isActive){N(T.current,2,"カスタムドラッグアクティブ中 - 通常ドラッグを無効化:",b),p.preventDefault();return}if(r[b]==="custom"){N(T.current,2,"カスタムドラッグモード - 通常ドラッグを無効化:",b),p.preventDefault();return}N(T.current,1,"ドラッグ開始:",b);const f=Object.keys(L.current);let y=null;for(let D=0;D<f.length;D++){const _=f[D],O=L.current[_].indexOf(b);if(O!==-1){y={columnIndex:D,panelIndex:O};break}}if(P(y),p.dataTransfer){p.dataTransfer.setData("text/plain",b),p.dataTransfer.effectAllowed="move";const D=B.current;if(D<1){const _=p.currentTarget.closest("[data-panel-id]")??p.currentTarget,O=_.getBoundingClientRect(),I=_.offsetWidth,l=_.offsetHeight,h=_.cloneNode(!0);h.removeAttribute("data-panel-id"),h.removeAttribute("id"),h.style.margin="0",h.style.width=`${I}px`,h.style.height=`${l}px`,h.style.transform=`scale(${D})`,h.style.transformOrigin="top left";const E=document.createElement("div");E.style.position="fixed",E.style.top="0",E.style.left="-10000px",E.style.width=`${I*D}px`,E.style.height=`${l*D}px`,E.style.overflow="hidden",E.style.opacity="0.8",E.style.pointerEvents="none",E.appendChild(h),document.body.appendChild(E),p.dataTransfer.setDragImage(E,p.clientX-O.left,p.clientY-O.top),requestAnimationFrame(()=>E.remove())}}M(p.clientX,p.clientY),requestAnimationFrame(()=>{u({isDragging:!0,draggedPanel:b,dragOverColumn:null})})},[r,n.isActive,P,M,u]),g=s.useCallback(()=>{N(T.current,1,"ドラッグ終了"),R.current.stop(),w()},[w]),x=s.useCallback((p,b)=>{if(p.preventDefault(),p.dataTransfer.dropEffect="move",!Y.current.isDragging)return;A(p.clientX,p.clientY),b!==Y.current.dragOverColumn&&u(D=>({...D,dragOverColumn:b}));const f=document.elementFromPoint(p.clientX,p.clientY),y=f?.closest("[data-placeholder-index]");if(y){const D=y.getAttribute("data-placeholder-index"),_=y.getAttribute("data-placeholder-column");if(D&&_){const O=parseInt(D,10),I=parseInt(_,10);c(I,O)}}else f?.closest("[data-drop-zone]")||k()},[A,u,c,k]),S=s.useCallback((p,b)=>{p.preventDefault();const f=p.dataTransfer.getData("text/plain"),y=J.current;f&&y&&(N(T.current,1,"🎯 ドロップ完了:",{draggedPanel:f,targetColumn:b,insertPosition:`カラム${y.columnIndex} - 位置${y.insertIndex}`}),v(f,b,y.insertIndex),m(null),g())},[v,m,g]),z=s.useCallback(p=>{const b=p.currentTarget,f=p.relatedTarget;f&&b.contains(f)||(m(null),u(y=>({...y,dragOverColumn:null})))},[m,u]);return s.useEffect(()=>{const p=b=>{Y.current.isDragging&&(A(b.clientX,b.clientY),R.current.update(b.clientX,b.clientY))};if(e.isDragging)return document.addEventListener("dragover",p),()=>{document.removeEventListener("dragover",p),R.current.stop()}},[e.isDragging,A]),s.useEffect(()=>()=>{R.current.stop()},[]),{handleDragStart:W,handleDragEnd:g,handleDragOverWithInsert:x,handleDropWithInsert:S,handleColumnDragLeave:z}},Je=(o,e=1)=>{const[n,r]=s.useState(o),[a,i]=s.useState({}),d=s.useRef({}),u=s.useRef(null),m=s.useRef({x:0,y:0}),P=s.useRef(e);P.current=e;const v=s.useCallback(L=>document.querySelector(`[data-panel-id="${L}"]`),[]),M=s.useCallback((L,Y)=>{const J=Y.getBoundingClientRect(),H=window.getComputedStyle(Y),B={width:Math.round(J.width),height:Math.round(J.height),x:Math.round(J.left),y:Math.round(J.top),minHeight:H.minHeight||"auto",maxHeight:H.maxHeight||"none"},R=d.current[L];(!R||Object.keys(B).some(W=>R[W]!==B[W]))&&(d.current[L]=B,i(W=>({...W,[L]:B})))},[]),A=s.useCallback(L=>{const Y=v(L);Y&&M(L,Y)},[v,M]),w=s.useCallback((L,Y)=>{Y&&requestAnimationFrame(()=>M(L,Y))},[M]),c=s.useCallback((L,Y,J)=>{const H=v(L);if(!H||u.current)return;const B=P.current,R=H.getBoundingClientRect(),W=H.cloneNode(!0);W.removeAttribute("data-panel-id"),W.style.position="fixed",W.style.top="0px",W.style.left="0px",W.style.width=`${H.offsetWidth}px`,W.style.height=`${H.offsetHeight}px`,W.style.pointerEvents="none",W.style.zIndex="1000",W.style.opacity="0.5",W.style.margin="0",W.style.transition="none",W.style.boxShadow="0 8px 32px rgba(0,0,0,0.3)",W.style.transformOrigin="top left",W.style.transform=`translate(${R.left}px, ${R.top}px) scale(${B})`,W.id=`drag-image-${L}`,document.body.appendChild(W),u.current=W,m.current={x:Y,y:J}},[v]),k=s.useCallback((L,Y)=>{if(u.current){const J=L-m.current.x,H=Y-m.current.y;u.current.style.transform=`translate(${J}px, ${H}px) scale(${P.current*1.05})`}},[]),C=s.useCallback(()=>{u.current&&(u.current.remove(),u.current=null)},[]),T=s.useCallback(L=>{r(Y=>({...Y,[L]:!Y[L]}))},[]);return{panelVisibility:n,panelSizes:a,setPanelVisibility:r,setPanelSizes:i,setPanelRef:w,updatePanelSize:A,togglePanelVisibility:T,getPanelElement:v,createDragImage:c,updateDragImagePosition:k,removeDragImage:C}},Mt=({initialColumnPanels:o,initialPanelVisibility:e,initialDragModes:n={},debugConfig:r,onPanelMove:a,onDragModeChange:i,onColumnPanelsChange:d,scale:u=1})=>{const m=s.useRef(r);m.current=r;const[P,v]=s.useState(o),[M,A]=s.useState(n),w=s.useRef(P);w.current=P;const c=Be(),k=Ge(),C=Je(e,u),T=s.useRef({mousemove:null,mouseup:null}),L=s.useCallback(f=>{const y=Object.keys(w.current),D=Xe(y,oe);for(let _=0;_<D.length;_++){const O=D[_],I=w.current[O]?.indexOf(f)??-1;if(I!==-1)return{columnIndex:_,panelIndex:I}}return null},[]),Y=s.useCallback((f,y,D)=>{N(m.current,1,"🔄 パネル移動実行:",f,"→",y,"@",D),v(_=>{const O={..._},I=Object.keys(O).find(l=>O[l].includes(f));if(!I)return console.error("Source column not found for panel:",f),_;if(!O[y])return console.error("Target column not found:",y),_;if(I===y){const l=[...O[I]],h=l.indexOf(f),[E]=l.splice(h,1),X=h<D?D-1:D;l.splice(X,0,E),O[y]=l}else{O[I]=O[I].filter(h=>h!==f);const l=[...O[y]];l.splice(D,0,f),O[y]=l}if(N(m.current,1,"✅ パネル移動完了:",f,"→",y),d&&requestAnimationFrame(()=>{d(O)}),a){const l=Object.keys(_).find(h=>_[h].includes(f));l&&requestAnimationFrame(()=>{a(f,l,y,D)})}return O})},[d,a]),J=s.useCallback((f,y)=>{if(!(c.dragState.isDragging||c.customDrag.isActive))return;const D=c.originalPanelPosition;if(D&&D.columnIndex===f&&(D.panelIndex===y||D.panelIndex+1===y)){N(m.current,1,`元の位置への挿入をスキップ: カラム${f}, 位置${y}`);return}const _=c.dragOverPosition;(!_||_.columnIndex!==f||_.insertIndex!==y)&&(N(m.current,1,`プレースホルダーエンター: カラム${f}, 位置${y}`),c.setDragOverPosition({columnIndex:f,insertIndex:y}),c.setDragState(O=>({...O,dragOverColumn:f})))},[c]),H=s.useCallback((f,y,D)=>{if(c.dragState.isDragging||c.customDrag.isActive){if(c.customDrag.isActive)N(m.current,1,"🚫 カスタムドラッグ - プレースホルダーリーブ: ハイライトを解除します。"),c.setDragOverPosition(null);else if(c.dragState.isDragging&&f&&y!==void 0&&D!==void 0){const _=c.dragOverPosition;if(_&&_.columnIndex===y&&_.insertIndex===D){const O=f.currentTarget,I=f.relatedTarget;I&&O.contains(I)||(N(m.current,1,`ノーマルドラッグ - プレースホルダーリーブ: カラム${y}, 位置${D}。ハイライトを解除します。`),c.setDragOverPosition(null))}}}},[c]),B=Ve({debugConfig:m.current,dragState:c.dragState,customDrag:c.customDrag,clickState:c.clickState,dragModes:M,isMouseDown:c.isMouseDown,originalPanelPosition:c.originalPanelPosition,dragOverPosition:c.dragOverPosition,setCustomDrag:c.setCustomDrag,setDragState:c.setDragState,setDragOverPosition:c.setDragOverPosition,setOriginalPanelPosition:c.setOriginalPanelPosition,setClickState:c.setClickState,setIsMouseDown:c.setIsMouseDown,findPanelPosition:L,performPanelMove:Y,showMousePosition:k.showMousePosition,updateMousePosition:k.updateMousePosition,recordMouseDown:k.recordMouseDown,recordClickPosition:k.recordClickPosition,isVirtualClick:k.isVirtualClick,calculateMoveDistance:k.calculateMoveDistance,clearMouseTracking:k.clearMouseTracking,resetDragState:c.resetDragState,resetClickState:c.resetClickState,createDragImage:C.createDragImage,updateDragImagePosition:C.updateDragImagePosition,removeDragImage:C.removeDragImage,handlePlaceholderDragEnter:J,handlePlaceholderDragLeave:H}),R=Ze({debugConfig:m.current,dragState:c.dragState,customDrag:c.customDrag,dragModes:M,columnPanels:P,dragOverPosition:c.dragOverPosition,originalPanelPosition:c.originalPanelPosition,setDragState:c.setDragState,setDragOverPosition:c.setDragOverPosition,setOriginalPanelPosition:c.setOriginalPanelPosition,performPanelMove:Y,showMousePosition:k.showMousePosition,updateMousePosition:k.updateMousePosition,resetDragState:c.resetDragState,handlePlaceholderDragEnter:J,handlePlaceholderDragLeave:H,scale:u}),W=s.useCallback(f=>{T.current.mousemove&&T.current.mousemove(f)},[]),g=s.useCallback(f=>{T.current.mouseup&&T.current.mouseup(f)},[]);s.useEffect(()=>(N(m.current,1,"🔧 グローバルイベントリスナー初期化 - refベース管理開始"),document.addEventListener("mousemove",W),document.addEventListener("mouseup",g),()=>{N(m.current,1,"🔴 グローバルイベントリスナー終了 - refベース管理終了"),document.removeEventListener("mousemove",W),document.removeEventListener("mouseup",g)}),[W,g]),s.useEffect(()=>{const f=!c.clickState.isClicked&&Object.entries(M).some(([,D])=>D==="custom"),y=c.clickState.isClicked&&c.clickState.panelId;if(f||y){const D=f?"パターン1(仮想クリック検出)":"パターン2,3(ドラッグ準備)";N(m.current,1,`🔧 イベントハンドラー設定開始: ${D}`),T.current.mousemove=B.handleGlobalMouseMove,T.current.mouseup=B.handleGlobalMouseUp}else c.customDrag.isActive||c.dragState.isDragging||(T.current.mousemove=null,T.current.mouseup=null)},[c.clickState.isClicked,c.clickState.panelId,M,c.customDrag.isActive,c.dragState.isDragging,B.handleGlobalMouseMove,B.handleGlobalMouseUp]);const x=s.useCallback((f,y)=>{const D=f.touches[0],_=f.currentTarget;c.setTouchDragState({isTouchDragging:!0,startX:D.clientX,startY:D.clientY,currentX:D.clientX,currentY:D.clientY,draggedElement:_}),c.setDragState({isDragging:!0,draggedPanel:y,dragOverColumn:null})},[c]),S=s.useCallback(f=>{if(!c.touchDragState.isTouchDragging)return;f.preventDefault();const y=f.touches[0];c.setTouchDragState(D=>({...D,currentX:y.clientX,currentY:y.clientY}))},[c.touchDragState.isTouchDragging,c]),z=s.useCallback(f=>{c.touchDragState.isTouchDragging&&(c.setTouchDragState({isTouchDragging:!1,startX:0,startY:0,currentX:0,currentY:0,draggedElement:null}),R.handleDragEnd())},[c.touchDragState.isTouchDragging,c,R]),p=s.useCallback(f=>{N(m.current,1,"🔄 toggleDragMode called:",{panelId:f}),A(y=>{const _=(y[f]||"normal")==="normal"?"custom":"normal",O={...y,[f]:_};if(i)try{i(f,_)}catch(I){console.error("🔄 Error in onDragModeChange:",I)}return O})},[i]),b=s.useCallback((f,y)=>{f.stopPropagation(),N(m.current,2,"パネルサイズ情報クリック:",y)},[]);return{columnPanels:P,panelVisibility:C.panelVisibility,dragModes:M,dragState:c.dragState,dragOverPosition:c.dragOverPosition,originalPanelPosition:c.originalPanelPosition,touchDragState:c.touchDragState,customDrag:c.customDrag,clickState:c.clickState,mousePosition:k.mousePosition,panelSizes:C.panelSizes,setColumnPanels:v,setPanelVisibility:C.setPanelVisibility,setDragModes:A,setPanelRef:C.setPanelRef,handleDragStart:R.handleDragStart,handleDragEnd:R.handleDragEnd,handleMouseDown:B.handleMouseDown,handleTouchStart:x,handleTouchMove:S,handleTouchEnd:z,handlePlaceholderDragEnter:J,handlePlaceholderDragLeave:H,handleDragOverWithInsert:R.handleDragOverWithInsert,handleDropWithInsert:R.handleDropWithInsert,handleColumnDragLeave:R.handleColumnDragLeave,handlePanelSizeInfoClick:b,toggleDragMode:p,findPanelPosition:L}},Rt=({minColumnWidth:o=350,defaultColumns:e=3,maxColumns:n=6,minColumns:r=1,currentColumnWidths:a={}}={})=>{const[i,d]=s.useState(0),u=s.useRef(0),m=s.useRef(null),[P,v]=s.useState(!1),M=s.useRef(e);s.useEffect(()=>{if(typeof window>"u")return;const c=()=>{const C=window.visualViewport?.width??0,T=document?.documentElement?.clientWidth??0,L=document?.body?.clientWidth??0,Y=window.innerWidth??0;return T>0?Math.floor(T):C>0?Math.floor(C):L>0?Math.floor(L):Math.floor(Y)},k=()=>{m.current!==null&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(()=>{const C=c();m.current=null,C!==0&&(Math.abs(u.current-C)<2||(u.current=C,d(C)))})};return k(),window.addEventListener("resize",k),window.addEventListener("orientationchange",k),window.visualViewport?.addEventListener("resize",k),()=>{m.current!==null&&cancelAnimationFrame(m.current),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),window.visualViewport?.removeEventListener("resize",k)}},[]);const A=s.useMemo(()=>{if(!P||i===0)return M.current=e,e;const c=Math.max(i-64,0),k=24,C=Object.values(a);let T;if(C.length>0){const L=C.reduce((H,B)=>H+B,0)/C.length,Y=Math.max(o,L);T=Math.floor((c+k)/(Y+k)),C.reduce((H,B)=>H+B,0)+(C.length-1)*k>c&&C.length>r&&(T=Math.min(T,C.length-1))}else T=Math.floor((c+k)/(o+k));return T=Math.max(r,Math.min(n,T)),M.current===T?M.current:(M.current=T,T)},[P,i,e,o,n,r,a]),w=s.useCallback(()=>{v(c=>!c)},[]);return{responsiveColumnCount:A,isResponsiveMode:P,screenWidth:i,toggleResponsiveMode:w}};const _t=te("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const Ot=te("smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),At=({isResponsiveMode:o,responsiveColumnCount:e,currentColumnCount:n,screenWidth:r,onToggleResponsive:a})=>t.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-slate-300 bg-white/90 px-3 py-1",children:[t.jsxs("button",{type:"button",onClick:a,className:`flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors ${o?"border border-blue-300 bg-blue-100 text-blue-700":"border border-slate-300 text-slate-600 hover:bg-blue-50 hover:text-blue-600"}`,title:o?"レスポンシブモードを無効化":"レスポンシブモードを有効化",children:[o?t.jsx(Ot,{className:"h-3 w-3"}):t.jsx(_t,{className:"h-3 w-3"}),t.jsx("span",{children:o?"レスポンシブ":"固定"})]}),o&&t.jsxs("div",{className:"flex items-center gap-1 text-slate-600 text-xs",children:[t.jsxs("span",{className:"font-mono",children:[r,"px"]}),t.jsx("span",{children:"→"}),t.jsxs("span",{className:"font-semibold text-blue-600",children:[e,"列"]}),e!==n&&t.jsx("span",{className:"text-orange-600",children:"(変更予定)"})]})]}),Tt={showDebugPanel:!1,showMousePosition:!1,showPanelSizes:!1,showPlaceholderInfo:!1,showDropZoneOutlines:!1,logLevel:0};F.ColumnControlPanel=jt,F.ColumnInsertPanel=Ct,F.DEFAULT_COLUMN_ID_CONFIG=oe,F.DEFAULT_DEBUG_CONFIG=Tt,F.DEFAULT_EDGE_SCROLL_CONFIG=xe,F.DebugControlPanel=Nt,F.DragDropLayout=vt,F.DropZoneDebugOverlay=Ne,F.EdgeScrollManager=Re,F.InsertPlaceholder=Ce,F.PanelSizeDisplay=He,F.ResizableColumn=bt,F.ResizeHandle=Pe,F.ResponsiveControl=At,F.calculateScrollVector=Me,F.createColumnIdMapping=Et,F.debugLog=N,F.generateColumnId=ge,F.generateColumnIds=Se,F.getNextColumnId=Dt,F.isValidColumnId=Pt,F.normalizeColumnPanels=Ie,F.parseColumnId=pe,F.performScroll=Ue,F.sortColumnIds=Xe,F.useColumnLayout=St,F.useCustomDragHandlers=Ve,F.useDragDropColumns=Mt,F.useDragDropState=Be,F.useMouseTracking=Ge,F.useNormalDragHandlers=Ze,F.usePanelManagement=Je,F.useResponsiveColumns=Rt,Object.defineProperty(F,Symbol.toStringTag,{value:"Module"})}));
|
|
6
|
+
<%s key={someKey} {...props} />`,G,J,Y,J),V[J+G]=!0)}if(J=null,O!==void 0&&(e(O),J=""+O),i(p)&&(e(p.key),J=""+p.key),"key"in p){O={};for(var ge in p)ge!=="key"&&(O[ge]=p[ge])}else O=p;return J&&f(O,typeof d=="function"?d.displayName||d.name||"Unknown":d),C(d,J,O,o(),Q,re)}function M(d){H(d)?d._store&&(d._store.validated=1):typeof d=="object"&&d!==null&&d.$$typeof===g&&(d._payload.status==="fulfilled"?H(d._payload.value)&&d._payload.value._store&&(d._payload.value._store.validated=1):d._store&&(d._store.validated=1))}function H(d){return typeof d=="object"&&d!==null&&d.$$typeof===j}var P=r,j=Symbol.for("react.transitional.element"),D=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),N=Symbol.for("react.consumer"),c=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),z=Symbol.for("react.suspense"),X=Symbol.for("react.suspense_list"),q=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),_=Symbol.for("react.client.reference"),F=P.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,v=Object.prototype.hasOwnProperty,w=Array.isArray,x=console.createTask?console.createTask:function(){return null};P={react_stack_bottom_frame:function(d){return d()}};var k,L={},U=P.react_stack_bottom_frame.bind(P,l)(),B=x(s(l)),V={};je.Fragment=T,je.jsx=function(d,p,O){var G=1e4>F.recentlyCreatedOwnerStacks++;return y(d,p,O,!1,G?Error("react-stack-top-frame"):U,G?x(s(d)):B)},je.jsxs=function(d,p,O){var G=1e4>F.recentlyCreatedOwnerStacks++;return y(d,p,O,!0,G?Error("react-stack-top-frame"):U,G?x(s(d)):B)}})()),je}var it;function hn(){return it||(it=1,process.env.NODE_ENV==="production"?Re.exports=dn():Re.exports=fn()),Re.exports}var a=hn();const mn=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),pn=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(n,e,s)=>s?s.toUpperCase():e.toLowerCase()),ut=t=>{const n=pn(t);return n.charAt(0).toUpperCase()+n.slice(1)},dt=(...t)=>t.filter((n,e,s)=>!!n&&n.trim()!==""&&s.indexOf(n)===e).join(" ").trim(),gn=t=>{for(const n in t)if(n.startsWith("aria-")||n==="role"||n==="title")return!0};var xn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const bn=r.forwardRef(({color:t="currentColor",size:n=24,strokeWidth:e=2,absoluteStrokeWidth:s,className:o="",children:l,iconNode:i,...f},m)=>r.createElement("svg",{ref:m,...xn,width:n,height:n,stroke:t,strokeWidth:s?Number(e)*24/Number(n):e,className:dt("lucide",o),...!l&&!gn(f)&&{"aria-hidden":"true"},...f},[...i.map(([C,y])=>r.createElement(C,y)),...Array.isArray(l)?l:[l]]));const se=(t,n)=>{const e=r.forwardRef(({className:s,...o},l)=>r.createElement(bn,{ref:l,iconNode:n,className:dt(`lucide-${mn(ut(t))}`,`lucide-${t}`,s),...o}));return e.displayName=ut(t),e};const vn=se("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);const yn=se("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const wn=se("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);const Cn=se("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);const Pn=se("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const ft=se("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);const En=se("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);const jn=se("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);const kn=se("mouse-pointer",[["path",{d:"M12.586 12.586 19 19",key:"ea5xo7"}],["path",{d:"M3.688 3.037a.497.497 0 0 0-.651.651l6.5 15.999a.501.501 0 0 0 .947-.062l1.569-6.083a2 2 0 0 1 1.448-1.479l6.124-1.579a.5.5 0 0 0 .063-.947z",key:"277e5u"}]]);const Dn=se("mouse-pointer-click",[["path",{d:"M14 4.1 12 6",key:"ita8i4"}],["path",{d:"m5.1 8-2.9-.8",key:"1go3kf"}],["path",{d:"m6 12-1.9 2",key:"mnht97"}],["path",{d:"M7.2 2.2 8 5.1",key:"1cfko1"}],["path",{d:"M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z",key:"s0h3yz"}]]);const ht=se("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),fe=class fe{constructor(n=2,e="[drag-drop-panels]",s=console){this.level=n,this.prefix=e,this.impl=s}static setLevel(n){fe.instance.setLevel(n)}setLevel(n){this.level=n}static setImplementation(n){fe.instance.setImplementation(n)}setImplementation(n){this.impl=n}static setPrefix(n){fe.instance.setPrefix(n)}setPrefix(n){this.prefix=n}formatMessage(n){return typeof n=="string"?[`${this.prefix} ${n}`]:[this.prefix,n]}static debug(n,...e){fe.instance.debug(n,...e)}debug(n,...e){this.level<=0&&this.impl.debug(...this.formatMessage(n),...e)}static info(n,...e){fe.instance.info(n,...e)}info(n,...e){this.level<=1&&this.impl.info(...this.formatMessage(n),...e)}static warn(n,...e){fe.instance.warn(n,...e)}warn(n,...e){this.level<=2&&this.impl.warn(...this.formatMessage(n),...e)}static error(n,...e){fe.instance.error(n,...e)}error(n,...e){this.level<=3&&this.impl.error(...this.formatMessage(n),...e)}};fe.instance=new fe(2,"[drag-drop-panels]");let We=fe;const mt=({config:t,panelId:n,sizeInfo:e,onSizeInfoClick:s})=>t.showPanelSizes&&e?a.jsxs("div",{className:"absolute top-1 right-24 z-10 cursor-default rounded-md bg-red-500/90 px-2 py-1 font-mono text-white text-xs leading-tight shadow-lg",onClick:s,onMouseDown:s,onTouchStart:o=>o instanceof TouchEvent&&s(o),onDragStart:s,children:[a.jsxs("div",{className:"text-[10px] opacity-80",children:["ID:",n]}),a.jsxs("div",{children:[e.width,"×",e.height]}),a.jsxs("div",{children:["X:",e.x," Y:",e.y]}),a.jsxs("div",{className:"text-[10px] opacity-80",children:["min:",e.minHeight," max:",e.maxHeight]})]}):null,R=(t,n,...e)=>{(t.logLevel??0)>=n&&We.info(...e)},He=(t,n,e)=>t.columnIndex===n&&(t.panelIndex===e||t.panelIndex+1===e),Fe=(t,n,e,s)=>{const o=Object.keys(t).find(f=>t[f].includes(n));if(o===void 0||t[e]===void 0)return null;const l={...t};if(o===e){const f=[...t[o]],m=f.indexOf(n);return f.splice(m,1),f.splice(m<s?s-1:s,0,n),l[e]=f,l}l[o]=t[o].filter(f=>f!==n);const i=[...t[e]];return i.splice(s,0,n),l[e]=i,l},ve=Object.freeze(["previous-column","next-column","up","down"]),Nn=(t,n)=>t.columnPanels[n]??[],Ye=t=>t.columnKeys.map(n=>Nn(t,n).filter(e=>t.panelVisibility[e]===!0)),ye=(t,n)=>{for(const[e,s]of Ye(t).entries()){const o=s.indexOf(n);if(o>=0)return{column:e,index:o}}return null},pt=(t,n,e)=>{switch(e){case"previous-column":case"next-column":{const s=n.column+(e==="previous-column"?-1:1),o=t[s];return o===void 0?null:{column:s,index:Math.min(n.index,o.length)}}case"up":return n.index>0?{column:n.column,index:n.index-1}:null;case"down":return n.index<t[n.column].length-1?{column:n.column,index:n.index+1}:null;default:{const s=e;throw new RangeError(`[@aiquants/drag-drop-panels] unknown panel move ${JSON.stringify(s)}; expected one of ${ve.join(", ")}`)}}},Sn=(t,n,e,s)=>{const o=t.filter(n),l=m=>[...t.slice(0,m),e,...t.slice(m)],i=o[s];if(i!==void 0)return l(t.indexOf(i));const f=o[s-1];return l(f!==void 0?t.indexOf(f)+1:t.length)},gt=(t,n)=>{const e=ye(t,n);if(e===null)return[];const s=Ye(t);return ve.filter(o=>pt(s,e,o)!==null)},xt=(t,n,e)=>{if(!ve.includes(e))throw new RangeError(`[@aiquants/drag-drop-panels] unknown panel move ${JSON.stringify(e)}; expected one of ${ve.join(", ")}`);const s=ye(t,n);if(s===null)return null;const o=pt(Ye(t),s,e);if(o===null)return null;const l=m=>t.panelVisibility[m]===!0,i=Object.fromEntries(Object.entries(t.columnPanels).map(([m,C])=>[m,C.filter(y=>y!==n)])),f=t.columnKeys[o.column];return i[f]=Sn(i[f]??[],l,n,o.index),{columnPanels:i,from:s,place:o}},On=(t,n,e)=>{const s=(o,l)=>(o[l]??[]).filter(i=>i!==e);for(const o of new Set([...Object.keys(t),...Object.keys(n)])){const l=s(t,o),i=s(n,o);if(l.length!==i.length||l.some((f,m)=>f!==i[m]))return!1}return!0},Ue=Object.freeze({"previous-column":Object.freeze({key:"ArrowLeft",aria:"Alt+Shift+ArrowLeft",text:"Alt+Shift+←"}),"next-column":Object.freeze({key:"ArrowRight",aria:"Alt+Shift+ArrowRight",text:"Alt+Shift+→"}),up:Object.freeze({key:"ArrowUp",aria:"Alt+Shift+ArrowUp",text:"Alt+Shift+↑"}),down:Object.freeze({key:"ArrowDown",aria:"Alt+Shift+ArrowDown",text:"Alt+Shift+↓"})}),bt=t=>{if(!(t.altKey&&t.shiftKey)||t.ctrlKey||t.metaKey)return null;const n=ve.find(e=>Ue[e].key===t.key);return n===void 0?null:n},Be=r.memo(({index:t,columnIndex:n,isDragging:e,dragOverPosition:s,originalPosition:o,onDragEnter:l,onDragLeave:i,config:f,customDrag:m,label:C})=>{const y=o!==null&&He(o,n,t),M=!y&&s?.columnIndex===n&&s?.insertIndex===t,H=r.useRef(null),[P,j]=r.useState(null),D=e||(m?.isActive??!1),T=y||!D?"hidden":M?"target":"shown";return r.useEffect(()=>{if(H.current){const h=H.current.getBoundingClientRect(),E={width:Math.round(h.width),height:Math.round(h.height),x:Math.round(h.left),y:Math.round(h.top)};j(E),M&&R(f,1,`🎯 アクティブプレースホルダー ${t}-${n}:`,{size:`${E.width}×${E.height}`,position:`(${E.x}, ${E.y})`,bottomRight:`(${E.x+E.width}, ${E.y+E.height})`,center:`(${E.x+E.width/2}, ${E.y+E.height/2})`})}},[M,t,n,f]),R(f,2,`プレースホルダー${t}-${n}: 表示中`,{isHighlighted:M,isDragging:e,dragOverPosition:s,shouldShow:D}),a.jsxs("div",{ref:H,"data-placeholder-index":t,"data-placeholder-column":n,"data-aqdd-drop-placeholder":T,onDragEnter:()=>l(n,t),onDragLeave:h=>i(h,n,t),className:`relative flex w-full items-center justify-center ${T==="hidden"?"pointer-events-none h-0 overflow-hidden opacity-0":T==="target"?"my-2 scale-[1.02] rounded-xl border-4 border-dashed px-4 py-6 shadow-lg":"my-2 rounded-xl border-2 border-dashed px-2 py-4"}`,children:[!y&&D&&f.showPlaceholderInfo&&P&&a.jsxs("div",{className:"absolute top-1 right-1 z-10 rounded-md bg-blue-500/90 px-2 py-1 font-mono text-white text-xs leading-tight shadow-lg",children:[a.jsxs("div",{children:[P.width,"×",P.height]}),a.jsxs("div",{children:["X:",P.x," Y:",P.y]}),a.jsx("div",{className:"text-[10px] opacity-80",children:"min:200px max:500px"}),a.jsxs("div",{className:"mt-0.5 text-[10px] opacity-80",children:["PH-",n,"-",t," ",M?"ACTIVE":"IDLE"]})]}),!y&&D&&a.jsxs("div",{className:"flex items-center space-x-2",children:[a.jsx("svg",{className:"h-6 w-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 6v6m0 0v6m0-6h6m-6 0H6"})}),a.jsx("span",{lang:C.lang,className:"font-medium text-sm",children:C.text})]})]})});Be.displayName="InsertPlaceholder";const Xe=({columnIndex:t,isDragging:n,dragOverPosition:e,children:s,config:o})=>{const l=r.useRef(null),[i,f]=r.useState(null);return r.useEffect(()=>{if(l.current&&n){const m=l.current.getBoundingClientRect(),C=e?.columnIndex===t,y={width:Math.round(m.width),height:Math.round(m.height),x:Math.round(m.left),y:Math.round(m.top),isActive:C};f(y),C&&R(o,1,`🎯 アクティブドロップゾーン ${t}:`,{size:`${y.width}×${y.height}`,position:`(${y.x}, ${y.y})`,bottomRight:`(${y.x+y.width}, ${y.y+y.height})`,center:`(${y.x+y.width/2}, ${y.y+y.height/2})`})}},[n,e,t,o]),a.jsxs("div",{ref:l,className:"relative",children:[s,n&&i&&o.showDropZoneOutlines&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:`pointer-events-none absolute inset-0 rounded-lg border-2 border-dashed transition-all duration-200 ${i.isActive?"border-red-500 bg-red-100/20 shadow-lg":"border-gray-400 bg-gray-100/10"}`}),a.jsxs("div",{className:`absolute top-2 left-2 z-20 rounded-md px-2 py-1 font-mono text-xs leading-tight shadow-lg transition-all duration-200 ${i.isActive?"bg-red-500/90 text-white":"bg-gray-500/90 text-white"}`,children:[a.jsxs("div",{className:"font-bold",children:["DropZone-",t]}),a.jsxs("div",{children:[i.width,"×",i.height]}),a.jsxs("div",{children:["X:",i.x," Y:",i.y]}),a.jsx("div",{className:"mt-0.5 text-[10px] opacity-80",children:i.isActive?"ACTIVE":"IDLE"})]}),a.jsx("div",{className:`pointer-events-none absolute transition-all duration-200 ${i.isActive?"opacity-100":"opacity-50"}`,style:{left:`${i.width/2-6}px`,top:`${i.height/2-6}px`},children:a.jsx("div",{className:`h-3 w-3 rounded-full border-2 ${i.isActive?"border-red-700 bg-red-500":"border-gray-700 bg-gray-500"}`})}),i.isActive&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"pointer-events-none absolute top-0 left-0 h-2 w-2 rounded-full bg-red-500"}),a.jsx("div",{className:"pointer-events-none absolute top-0 right-0 h-2 w-2 rounded-full bg-red-500"}),a.jsx("div",{className:"pointer-events-none absolute bottom-0 left-0 h-2 w-2 rounded-full bg-red-500"}),a.jsx("div",{className:"pointer-events-none absolute right-0 bottom-0 h-2 w-2 rounded-full bg-red-500"})]})]})]})};Xe.displayName="DropZoneDebugOverlay";const Ge="[data-aqdd-scroll-root]",we="data-aqdd-panel-action",Rn=.25,Mn=typeof window<"u"?r.useLayoutEffect:r.useEffect,An=(t,n=Rn)=>{const e=r.useRef(null),[s,o]=r.useState(1);return Mn(()=>{const l=e.current;if(!l||t<=0){o(1);return}const i=()=>{const m=l.clientWidth;if(m<=0)return;const C=m>=t?1:Math.max(m/t,n);o(y=>Math.abs(y-C)<.005?y:C)};i();const f=new ResizeObserver(i);return f.observe(l),()=>f.disconnect()},[t,n]),{containerRef:e,scale:s}},_n=Object.freeze(["--aqdd-panel-surface","--aqdd-panel-border","--aqdd-panel-title-color","--aqdd-header-button-color","--aqdd-header-button-hover-color","--aqdd-header-button-hover-surface","--aqdd-custom-badge-color","--aqdd-custom-badge-surface","--aqdd-default-panel-surface","--aqdd-default-panel-border","--aqdd-default-panel-title-color","--aqdd-default-header-button-color","--aqdd-default-header-button-hover-color","--aqdd-default-header-button-hover-surface","--aqdd-default-header-close-hover-color","--aqdd-default-custom-badge-color","--aqdd-default-custom-badge-surface"]),vt=(t,n)=>{const e=window.getComputedStyle(t);for(const s of _n){const o=e.getPropertyValue(s).trim();o!==""&&n.style.setProperty(s,o)}},yt=(t,n,e)=>{const s=t.getBoundingClientRect(),o=t.cloneNode(!0);return o.removeAttribute("data-panel-id"),vt(t,o),o.style.position="fixed",o.style.top="0px",o.style.left="0px",o.style.width=`${t.offsetWidth}px`,o.style.height=`${t.offsetHeight}px`,o.style.pointerEvents="none",o.style.zIndex="1000",o.style.opacity="0.5",o.style.margin="0",o.style.transition="none",o.style.boxShadow="0 8px 32px rgba(0,0,0,0.3)",o.style.transformOrigin="top left",o.style.transform=`translate(${s.left}px, ${s.top}px) scale(${e})`,o.id=`drag-image-${n}`,document.body.appendChild(o),o},wt=(t,n,e,s,o)=>{t.style.transform=`translate(${n-s.x}px, ${e-s.y}px) scale(${o*1.05})`},Tn=(t,n)=>{let e=n.closest("[data-drop-zone]");for(;e!==null&&e.closest("[data-aqdd-layout]")!==t;){const s=e.parentElement;e=s===null?null:s.closest("[data-drop-zone]")}return e},Ln=(t,n,e)=>{const s=document.elementFromPoint(n,e),o=s===null?null:Tn(t,s);if(o===null)return null;let l=null;for(const i of o.querySelectorAll("[data-placeholder-index]")){if(i.closest("[data-drop-zone]")!==o)continue;const{top:f,bottom:m}=i.getBoundingClientRect(),C=e<f?f-e:e>m?e-m:0;(l===null||C<l.distance)&&(l={insertIndex:Number(i.getAttribute("data-placeholder-index")),distance:C})}return l===null?null:{columnIndex:Number(o.getAttribute("data-column-index")),insertIndex:l.insertIndex}},Ce={triggerDistance:80,scrollSpeed:5,maxScrollSpeed:20},Ve=()=>{const t=window.visualViewport;return t?new DOMRect(t.offsetLeft,t.offsetTop,t.width,t.height):new DOMRect(0,0,window.innerWidth,window.innerHeight)},In=t=>{const n=t.getBoundingClientRect(),e=Ve(),s=Math.max(n.left,e.left),o=Math.max(n.top,e.top),l=Math.min(n.right,e.right),i=Math.min(n.bottom,e.bottom);return l>s&&i>o?new DOMRect(s,o,l-s,i-o):null},Ze=(t,n,e=Ce,s)=>{const{triggerDistance:o,scrollSpeed:l,maxScrollSpeed:i}=e,f=s===void 0?Ve():In(s);if(f===null)return{x:0,y:0};const{left:m,top:C,right:y,bottom:M}=f;let H=0,P=0;if(t>=m&&t<=y&&n>=C&&n<=M){if(t<m+o){const j=Math.max(0,(m+o-t)/o);H=-Math.min(i,l+j*(i-l))}else if(t>y-o){const j=Math.max(0,(t-(y-o))/o);H=Math.min(i,l+j*(i-l))}if(n<C+o){const j=Math.max(0,(C+o-n)/o);P=-Math.min(i,l+j*(i-l))}else if(n>M-o){const j=Math.max(0,(n-(M-o))/o);P=Math.min(i,l+j*(i-l))}}return{x:H,y:P}},zn=(t,n)=>{if(t===document.documentElement)return!1;if(t===document.body){const o=window.getComputedStyle(document.documentElement);if(o.overflowX==="visible"&&o.overflowY==="visible")return!1}const e=window.getComputedStyle(t),s=n==="x"?e.overflowX:e.overflowY;return s==="auto"||s==="scroll"},Wn=(t,n,e,s)=>e==="x"?s>0?t.right-n.right:n.left-t.left:s>0?t.bottom-n.bottom:n.top-t.top,Ct=(t,n,e)=>{const s=n==="x"?t.scrollLeft:t.scrollTop;return t.scrollBy(n==="x"?{left:e,behavior:"instant"}:{top:e,behavior:"instant"}),(n==="x"?t.scrollLeft:t.scrollTop)!==s},Pt=(t,n,e,s,o)=>{const l=Wn(e,n,s,o);return l>0&&Ct(t,s,Math.sign(o)*Math.min(Math.abs(o),l))},Et=(t,n,e)=>{if(Ct(t,n,e))return;const s=t.getBoundingClientRect();for(let l=t.parentElement;l!==null;l=l.parentElement)if(zn(l,n)&&Pt(l,l.getBoundingClientRect(),s,n,e))return;const o=document.scrollingElement;o instanceof Element&&o!==t&&Pt(o,Ve(),s,n,e)},jt=(t,n)=>{if(n===void 0){(t.x!==0||t.y!==0)&&window.scrollBy(t.x,t.y);return}t.x!==0&&Et(n,"x",t.x),t.y!==0&&Et(n,"y",t.y)};class Me{constructor(n=Ce,e){this.intervalId=null,this.isActive=!1,this.pointX=0,this.pointY=0,this.config=n,this.scrollElement=e}setScrollElement(n){this.scrollElement=n}start(n,e){this.pointX=n,this.pointY=e,!this.isActive&&(this.isActive=!0,this.intervalId=window.setInterval(()=>{const s=Ze(this.pointX,this.pointY,this.config,this.scrollElement);jt(s,this.scrollElement)},16))}update(n,e){this.pointX=n,this.pointY=e;const s=Ze(n,e,this.config,this.scrollElement);(s.x!==0||s.y!==0)&&!this.isActive?this.start(n,e):s.x===0&&s.y===0&&this.isActive&&this.stop()}stop(){this.intervalId!==null&&(clearInterval(this.intervalId),this.intervalId=null),this.isActive=!1}isScrolling(){return this.isActive}updateConfig(n){this.config=n}}const kt="custom-dragging",Hn=(t,n)=>t===null?n===null:n!==null&&t.columnIndex===n.columnIndex&&t.insertIndex===n.insertIndex,Dt=(t,n,e)=>{const{left:s,top:o,right:l,bottom:i}=t.getBoundingClientRect();return n<s||n>l||e<o||e>i},Fn=(t,n)=>{let e=null;const s=c=>{const I=t(),z=I.layoutRef.current;if(z===null||Dt(z,c.x,c.y))return null;const X=Ln(z,c.x,c.y),q=I.originOf(c.panelId);return X===null||q===null||He(q,X.columnIndex,X.insertIndex)?null:X},o=()=>{if(e===null||e.phase!=="dragging")return;const c=s(e);n(I=>I===null||Hn(I.over,c)?I:{panelId:I.panelId,over:c})},l=c=>{if(e===null||c.pointerId!==e.pointerId)return;if(e.x=c.clientX,e.y=c.clientY,e.phase==="pressing"){Math.hypot(e.x-e.startX,e.y-e.startY)>t().config.slop&&P();return}const I=t(),z=I.layoutRef.current;if(z===null||Dt(z,e.x,e.y)){j();return}wt(e.image,e.x,e.y,e.offset,I.scale),e.edgeScroll.update(e.x,e.y),o()},i=c=>{if(e===null||c.pointerId!==e.pointerId)return;if(e.phase==="pressing"){P();return}e.x=c.clientX,e.y=c.clientY;const I=s(e),z=P();if(z===null)return;const X=t();I===null?X.onCancel(z.panelId):X.onDrop(z.panelId,I)},f=c=>{e!==null&&c.pointerId===e.pointerId&&j()},m=c=>{e!==null&&e.phase==="pressing"&&c.pointerId!==e.pointerId&&P()},C=c=>{e!==null&&e.phase==="dragging"&&c.pointerId===e.pointerId&&c.target===e.header&&j()},y=c=>{e===null||e.phase!=="dragging"||c.key!=="Escape"||c.defaultPrevented||c.isComposing||(c.preventDefault(),j())},M=()=>{document.addEventListener("pointermove",l,!0),document.addEventListener("pointerup",i,!0),document.addEventListener("pointercancel",f,!0),document.addEventListener("pointerdown",m,!0),document.addEventListener("lostpointercapture",C,!0),document.addEventListener("keydown",y,!0)},H=()=>{document.removeEventListener("pointermove",l,!0),document.removeEventListener("pointerup",i,!0),document.removeEventListener("pointercancel",f,!0),document.removeEventListener("pointerdown",m,!0),document.removeEventListener("lostpointercapture",C,!0),document.removeEventListener("keydown",y,!0)},P=()=>{const c=e;return c===null?null:(e=null,H(),c.phase==="pressing"?(window.clearTimeout(c.timer),c):(document.removeEventListener("scroll",o,!0),c.edgeScroll.stop(),c.image.remove(),document.body.classList.remove(kt),c.header.hasPointerCapture(c.pointerId)&&c.header.releasePointerCapture(c.pointerId),n(null),c))},j=()=>{const c=P();c!==null&&c.phase==="dragging"&&t().onCancel(c.panelId)},D=()=>{if(e===null||e.phase!=="pressing")return;const c=e,I=t(),z=I.panelElementOf(c.panelId),X=I.scrollRootRef.current;if(!I.canStart||z===null||X===null||!c.header.isConnected){P();return}try{c.header.setPointerCapture(c.pointerId)}catch(b){if(b instanceof DOMException){P();return}throw b}const{left:q,top:g}=z.getBoundingClientRect();e={phase:"dragging",pointerId:c.pointerId,panelId:c.panelId,header:c.header,image:yt(z,c.panelId,I.scale),offset:{x:c.x-q,y:c.y-g},edgeScroll:new Me(Ce,X),x:c.x,y:c.y},document.addEventListener("scroll",o,{capture:!0,passive:!0}),document.body.classList.add(kt),n({panelId:c.panelId,over:null}),I.onLift(c.panelId)};return{pressHeader:(c,I)=>{if(e!==null||!c.isPrimary||c.button!==0||c.pointerType!=="touch"&&c.pointerType!=="pen")return;const z=t();z.canStart&&(c.target instanceof Element&&c.target.closest(`[${we}]`)!==null||(e={phase:"pressing",pointerId:c.pointerId,panelId:I,header:c.currentTarget,startX:c.clientX,startY:c.clientY,timer:window.setTimeout(D,z.config.longPressDelay),x:c.clientX,y:c.clientY},M()))},holdContextMenu:c=>{e!==null&&e.header===c.currentTarget&&c.preventDefault()},bindHeader:c=>{if(c===null)return;const I=z=>{e!==null&&e.phase==="dragging"&&e.header===c&&z.cancelable&&z.preventDefault()};return c.addEventListener("touchmove",I,{passive:!1}),()=>c.removeEventListener("touchmove",I)},cancel:j,dispose:()=>{P()}}},Yn=t=>{const n=r.useRef(t);r.useLayoutEffect(()=>{n.current=t});const[e,s]=r.useState(null),[o]=r.useState(()=>Fn(()=>n.current,s));return r.useEffect(()=>o.dispose,[o]),{touchDrag:e,pressHeader:o.pressHeader,holdContextMenu:o.holdContextMenu,bindHeader:o.bindHeader,cancel:o.cancel}},Ae=Object.freeze({switchToCustomDragMode:{text:"カスタムドラッグモードに切り替え",lang:"ja"},switchToNormalDragMode:{text:"通常ドラッグモードに戻す",lang:"ja"},hidePanel:{text:"パネルを非表示",lang:"ja"},maximizePanel:{text:"パネルを最大化",lang:"ja"},restorePanel:{text:"元のサイズに戻す",lang:"ja"},closePanel:{text:"パネルを閉じる",lang:"ja"},movePanelToPreviousColumn:{text:"前の列へ移動",lang:"ja"},movePanelToNextColumn:{text:"次の列へ移動",lang:"ja"},movePanelUp:{text:"上へ移動",lang:"ja"},movePanelDown:{text:"下へ移動",lang:"ja"},customDragModeBadge:{text:"Custom",lang:"en"},panelMoved:{text:"{title} を {column} 列目の {position} 番目へ移動しました",lang:"ja"},panelMoveUnavailable:{text:"{title} は{move}できません",lang:"ja"},panelDragStarted:{text:"{title} を持ち上げました",lang:"ja"},panelDragCancelled:{text:"{title} の移動を取り消しました",lang:"ja"},hiddenPanels:{text:"非表示のパネル:",lang:"ja"},hiddenPanelBadge:{text:"非表示",lang:"ja"},hiddenPanelNotice:{text:"このパネルは非表示です",lang:"ja"},emptyColumn:{text:"このエリアは空です",lang:"ja"},dropZone:{text:"Drop zone for column {column}",lang:"en"},dropHere:{text:"パネルをここにドロップ",lang:"ja"},resizeColumn:{text:"{column} 列目のカラム幅を調整",lang:"ja"}}),Nt=new Set(Object.keys(Ae)),St=Object.freeze({panelMoved:Object.freeze(["title","column","position"]),panelMoveUnavailable:Object.freeze(["title","move"]),panelDragStarted:Object.freeze(["title"]),panelDragCancelled:Object.freeze(["title"]),dropZone:Object.freeze(["column"]),resizeColumn:Object.freeze(["column"])}),Ot=/\{(\w+)\}/g,Un=Object.freeze(Object.fromEntries(Object.entries(Ae).map(([t,n])=>[t,n.text]))),Bn=t=>{if(t!==void 0){const e=t;if(e===null||typeof e!="object")throw new TypeError(`[@aiquants/drag-drop-panels] labels must be an object; got ${e===null?"null":typeof e}`);for(const s of Object.keys(e))if(!Nt.has(s))throw new RangeError(`[@aiquants/drag-drop-panels] labels has the unknown key "${s}"; the labels are ${[...Nt].join(", ")}`)}const n={};for(const e of Object.keys(Ae)){const s=t?.[e];if(s===void 0){n[e]=Ae[e];continue}if(typeof s!="string")throw new TypeError(`[@aiquants/drag-drop-panels] label "${e}" must be a string; got ${s===null?"null":typeof s}`);const o=St[e];if(o!==void 0){for(const[,l]of s.matchAll(Ot))if(!o.includes(l))throw new RangeError(`[@aiquants/drag-drop-panels] label "${e}" uses the unknown placeholder {${l}}; it accepts ${o.map(i=>`{${i}}`).join(", ")}`)}n[e]={text:s,lang:void 0}}return Object.freeze(n)},_e=(t,n)=>{const e=[],s=(o,l)=>{if(o==="")return;const i=e[e.length-1];if(i!==void 0&&i.lang===l){e[e.length-1]={text:`${i.text}${o}`,lang:l};return}e.push({text:o,lang:l})};for(const[o,l]of t.text.split(Ot).entries()){if(o%2===0){s(l,t.lang);continue}const i=n[l];if(i===void 0)throw new RangeError(`[@aiquants/drag-drop-panels] no value for the placeholder {${l}} of "${t.text}"`);typeof i=="number"?s(String(i),t.lang):s(i.text,i.lang)}return e},Rt=(t,n)=>({text:_e(t,n).map(e=>e.text).join(""),lang:t.lang}),Xn=229,Gn=new Set(["","auto","hint"]),Vn=t=>{for(const n of t.querySelectorAll("[popover]")){const e=n.getAttribute("popover");if(e!==null&&Gn.has(e.toLowerCase())&&n.matches(":popover-open"))return!0}return!1},Zn=t=>t.key!=="Escape"||t.defaultPrevented||t.isComposing||t.keyCode===Xn||t.target instanceof Element&&t.target.closest("dialog[open]")!==null?!1:!("popover"in HTMLElement.prototype&&Vn(document)),Kn="resizing-column",Mt=t=>{document.body.style.cursor=t?"col-resize":"",document.body.style.userSelect=t?"none":"",document.body.classList.toggle(Kn,t)},Ke=({columnId:t,onResizeStart:n,onResize:e,onResizeEnd:s,isResizing:o=!1,position:l="right",className:i="",debug:f={},label:m})=>{const C=r.useRef({columnId:t,onResize:e,onResizeEnd:s,debug:f});r.useLayoutEffect(()=>{C.current={columnId:t,onResize:e,onResizeEnd:s,debug:f}});const y=r.useRef(null);r.useEffect(()=>{o||y.current?.()},[o]),r.useEffect(()=>()=>y.current?.(),[]);const M=P=>{if(y.current!==null||!P.isPrimary||P.button!==0)return;const j=P.currentTarget,{pointerId:D}=P;try{j.setPointerCapture(D)}catch(c){if(c instanceof DOMException)return;throw c}P.preventDefault(),P.stopPropagation(),R(f,2,"リサイズハンドル ポインタダウン:",t,P.pointerType);const T=c=>{c.pointerId===D&&C.current.onResize(c.clientX)},h=c=>{c.pointerId===D&&N(!0)},E=c=>{c.pointerId===D&&N(!0)},N=c=>{y.current=null,document.removeEventListener("pointermove",T,!0),document.removeEventListener("pointerup",h,!0),document.removeEventListener("pointercancel",h,!0),j.removeEventListener("lostpointercapture",E),j.hasPointerCapture(D)&&j.releasePointerCapture(D),Mt(!1),R(C.current.debug,c?2:1,c?"リサイズハンドル 終了:":"リサイズハンドル 中断:",C.current.columnId),c&&C.current.onResizeEnd()};y.current=()=>N(!1),document.addEventListener("pointermove",T,!0),document.addEventListener("pointerup",h,!0),document.addEventListener("pointercancel",h,!0),j.addEventListener("lostpointercapture",E),Mt(!0),n(t,P.clientX)},H=["resize-handle",l,o?"resizing":"",i].filter(Boolean).join(" ");return a.jsxs("div",{className:H,onPointerDown:M,"data-column-id":t,"data-position":l,"aria-label":m.text,lang:m.lang,role:"separator","aria-orientation":"vertical",children:[a.jsx("div",{className:"resize-handle-bar"}),f.showPanelSizes&&a.jsxs("div",{className:"resize-handle-debug-info",children:[t,o&&" (resizing)"]})]})},Jn=({columnId:t,width:n,minWidth:e=100,maxWidth:s=800,onResizeStart:o,onResize:l,onResizeEnd:i,isResizing:f=!1,resizable:m=!0,className:C="",debug:y={},resizeHandleLabel:M,children:H})=>{const P=["resizable-column",f?"resizing":"",C].filter(Boolean).join(" ");return r.useEffect(()=>{const j=document.querySelector(`[data-column-id="${t}"]`);j&&(j.style.setProperty("--column-width",`${n}px`),j.style.setProperty("--column-min-width",`${e}px`),j.style.setProperty("--column-max-width",`${s}px`))},[t,n,e,s]),a.jsxs("div",{className:P,"data-column-id":t,"data-width":n,"data-min-width":e,"data-max-width":s,children:[H,m&&a.jsx(Ke,{columnId:t,onResizeStart:o,onResize:l,onResizeEnd:i,isResizing:f,position:"right",debug:y,label:M}),y.showPanelSizes&&a.jsxs("div",{className:"column-debug-size",children:[n,"px",f&&" ↔"]})]})},At=Object.freeze({longPressDelay:500,slop:10}),Je=Object.freeze(["longPressDelay","slop"]),Qn=t=>{const n=t;if(n===null||typeof n!="object")throw new TypeError(`[@aiquants/drag-drop-panels] touchDragConfig must be an object; got ${n===null?"null":typeof n}`);for(const e of Object.keys(n))if(!Je.includes(e))throw new RangeError(`[@aiquants/drag-drop-panels] touchDragConfig has the unknown key "${e}"; the keys are ${Je.join(", ")}`);for(const e of Je){const s=t[e];if(typeof s!="number")throw new TypeError(`[@aiquants/drag-drop-panels] touchDragConfig.${e} must be a number; got ${s===null?"null":typeof s}`);if(!Number.isFinite(s)||s<0)throw new RangeError(`[@aiquants/drag-drop-panels] touchDragConfig.${e} must be a finite number of 0 or more; got ${s}`)}},_t=Object.freeze({"previous-column":"movePanelToPreviousColumn","next-column":"movePanelToNextColumn",up:"movePanelUp",down:"movePanelDown"}),qn=Object.freeze({"previous-column":yn,"next-column":wn,up:Cn,down:vn}),$n='input, textarea, select, [contenteditable]:not([contenteditable="false"])',Qe=(t,n)=>({segments:n,serial:t===null?1:t.serial+1}),eo="",to="(prefers-reduced-motion: reduce)",no=()=>typeof window.matchMedia=="function"&&window.matchMedia(to).matches,oo=t=>{t.key==="Enter"&&t.repeat&&t.preventDefault()},ke=({action:t,label:n,tooltip:e,unavailable:s,keyShortcuts:o,onActivate:l,children:i})=>a.jsx("button",{type:"button",[we]:t,"aria-label":n.text,"aria-disabled":s?!0:void 0,"aria-keyshortcuts":o,title:e,lang:n.lang,className:"rounded p-1 motion-safe:transition-colors",onClick:f=>{f.stopPropagation(),l()},children:i}),qe=r.memo(({index:t,columnIndex:n,isDragging:e,dragOverPosition:s,originalPosition:o,onDragEnter:l,onDragLeave:i,debugConfig:f,customDrag:m,label:C})=>a.jsx(Be,{index:t,columnIndex:n,isDragging:e,dragOverPosition:s,originalPosition:o,onDragEnter:l,onDragLeave:i,config:f,customDrag:m,label:C}));qe.displayName="LocalInsertPlaceholder";const so=({columns:t,panels:n,columnPanels:e,onColumnPanelsChange:s,panelVisibility:o,onPanelVisibilityChange:l,dragState:i,dragOverPosition:f,originalPanelPosition:m,dragModes:C,onDragStart:y,onDragEnd:M,onPlaceholderDragEnter:H,onPlaceholderDragLeave:P,onDragOverWithInsert:j,onDropWithInsert:D,onColumnDragLeave:T,onPanelClick:h,onPanelMouseDown:E,debugConfig:N,panelSizes:c,setPanelRef:I,enableResize:z=!1,columnWidths:X,onResizeStart:q,onResize:g,onResizeEnd:b,isResizing:_=!1,resizingColumn:F,onPanelSizeInfoClick:v,onToggleDragMode:w,onPanelClose:x,onPanelMaximizeChange:k,customDrag:L,dragHandle:U="panel",maximizedPanel:B=null,panelClassName:V="",scale:d,autoScale:p,onScaleChange:O,scrollRootElement:G="div",labels:Q,touchDragConfig:re=At})=>{if(G!=="div"&&G!=="main")throw new RangeError(`[@aiquants/drag-drop-panels] scrollRootElement must be "div" or "main"; got ${JSON.stringify(G)}`);const J=G,Y=r.useMemo(()=>Bn(Q),[Q]);Qn(re);const ge=r.useId(),ce=r.useMemo(()=>{const u={};return n.forEach(S=>{u[S.id]=S}),u},[n]),he=r.useMemo(()=>({columnKeys:t.map(u=>u.key),columnPanels:e,panelVisibility:Object.fromEntries(Object.keys(o).map(u=>[u,o[u]===!0&&ce[u]!==void 0]))}),[t,e,o,ce]),Yt=B===null?null:ye(he,B),ie=Yt!==null,xe=r.useRef(N);r.useEffect(()=>{xe.current=N},[N]);const{containerRef:Co,scale:Po}=An(p?.requiredWidth??0,p?.minScale),tt=ie?1:d??(p?Po:1),me=Number.isFinite(tt)&&tt>0?tt:1,Ut=r.useRef(me);Ut.current=me,r.useEffect(()=>{O&&O(me)},[me,O]);const Eo=me<1?{width:`${100/me}%`,height:`${100/me}%`,transform:`scale(${me})`,transformOrigin:"top left"}:void 0,de=r.useRef({}),nt=r.useRef(new Map);r.useEffect(()=>{R(xe.current,1,"🎨 DragDropLayout - dragModes props changed:",{dragModes:C,timestamp:new Date().toISOString(),keys:Object.keys(C),values:Object.values(C)})},[C]);const[ot,st]=r.useState(null),Te=r.useRef(null),Bt=r.useRef({arrangement:he,labels:Y,panelComponentMap:ce});r.useLayoutEffect(()=>{Bt.current={arrangement:he,labels:Y,panelComponentMap:ce}});const Xt=r.useRef(null),Gt=r.useRef(null),jo=r.useCallback(u=>{Gt.current=u},[]),Vt=r.useRef(null),rt=(u,S)=>{const W=ce[S];if(W===void 0)return;const $=_e(u,{title:{text:W.title,lang:void 0}});st(ee=>Qe(ee,$))},Zt=(u,S,W,$)=>{const ee=de.current[u],ne=document.activeElement,oe=ee instanceof HTMLElement&&ne!==null&&ee.contains(ne)?ne.closest(`[${we}]`)?.getAttribute(we)??$:null;Te.current={panelId:u,from:S,columnPanels:he.columnPanels,focusAction:oe},s(W)},Kt=u=>{for(const[S,W]of t.entries()){const $=(e[W.key]??[]).indexOf(u);if($>=0)return{columnIndex:S,panelIndex:$}}return null},ko=(u,S)=>{const W=ye(he,u),$=t[S.columnIndex],ee=W===null||$===void 0?null:Fe(e,u,$.key,S.insertIndex);if(W===null||ee===null){rt(Y.panelDragCancelled,u);return}Zt(u,W,ee,null)},Jt=!(i.isDragging||L?.isActive===!0||ie),Se=Yn({config:re,layoutRef:Xt,scrollRootRef:Gt,scale:me,canStart:Jt,panelElementOf:u=>de.current[u]??null,originOf:Kt,onLift:u=>rt(Y.panelDragStarted,u),onDrop:ko,onCancel:u=>rt(Y.panelDragCancelled,u)}),{touchDrag:be}=Se,Qt=be!==null&&(!Jt||ye(he,be.panelId)===null),qt=Se.cancel;r.useEffect(()=>{Qt&&qt()},[Qt,qt]);const Le=i.isDragging||L?.isActive===!0||be!==null;r.useLayoutEffect(()=>{Le&&(Te.current=null)},[Le]),r.useLayoutEffect(()=>{const u=Te.current;if(u===null||(Te.current=null,!On(u.columnPanels,e,u.panelId)))return;const S=Bt.current,W=ye({...S.arrangement,columnPanels:e},u.panelId);if(W===null||W.column===u.from.column&&W.index===u.from.index)return;const $=_e(S.labels.panelMoved,{title:{text:S.panelComponentMap[u.panelId].title,lang:void 0},column:W.column+1,position:W.index+1});st(te=>Qe(te,$));const ee=de.current[u.panelId];if(u.focusAction===null||ee===null||ee===void 0)return;const{activeElement:ne,body:oe}=document;if(ne===null||ne===oe){const te=ee.querySelector(`[${we}="${u.focusAction}"]`);te instanceof HTMLElement&&te.focus({preventScroll:!0})}const Z=document.activeElement;Z instanceof HTMLElement&&ee.contains(Z)&&Z.scrollIntoView({block:"nearest",inline:"nearest"})},[e]),r.useEffect(()=>{if(!(ie&&k))return;const u=S=>{Zn(S)&&(S.preventDefault(),k(null))};return document.addEventListener("keydown",u),()=>document.removeEventListener("keydown",u)},[ie,k]),r.useLayoutEffect(()=>{const u=new Map;Object.keys(de.current).forEach(oe=>{const Z=de.current[oe];if(Z){const te=Z.getBoundingClientRect();u.set(oe,{rect:te,height:Z.offsetHeight,width:Z.offsetWidth})}});const S=nt.current,W=300,$=new Set;Object.values(e).forEach(oe=>{oe.forEach(Z=>{$.add(Z)})}),new Set(S.keys()).forEach(oe=>{$.has(oe)||(R(xe.current,1,"パネル削除検出 - クリーンアップ:",oe),S.delete(oe),de.current[oe]&&delete de.current[oe])});const ne=!no();u.forEach((oe,Z)=>{if(!ne)return;const te=S.get(Z);if(te){const ae=te.rect.left-oe.rect.left,pe=te.rect.top-oe.rect.top;if(ae!==0||pe!==0){R(xe.current,2,"パネル移動検出 - アニメーション開始:",Z,{dx:ae,dy:pe});const le=de.current[Z];if(le){const Ie=Ut.current||1;le.style.transform=`translate(${ae/Ie}px, ${pe/Ie}px)`,le.style.transition="none",le.classList.add("is-moving"),requestAnimationFrame(()=>{le.style.transition=`transform ${W}ms cubic-bezier(0.2, 0, 0.2, 1)`,le.style.transform="translate(0, 0)",setTimeout(()=>{le.style.transition="",le.style.transform="",le.classList.remove("is-moving")},W)})}}}else{R(xe.current,1,"新規パネル検出 - フェードインアニメーション:",Z);const ae=de.current[Z];ae&&(ae.style.opacity="0",ae.style.transition="none",requestAnimationFrame(()=>{ae.style.transition=`opacity ${W}ms ease-out`,ae.style.opacity="1",setTimeout(()=>{ae.style.transition="",ae.style.opacity=""},W)}))}}),nt.current=u},[e]),r.useLayoutEffect(()=>{const u=new Map;Object.keys(de.current).forEach(S=>{const W=de.current[S];W&&u.set(S,{rect:W.getBoundingClientRect(),height:W.offsetHeight,width:W.offsetWidth})}),nt.current=u},[me]);const $t=(u,S,W)=>{if(Le)return;const $=xt(he,u,S);if($===null){if(W){const ee=_e(Y.panelMoveUnavailable,{title:{text:ce[u].title,lang:void 0},move:Y[_t[S]]});st(ne=>Qe(ne,ee))}return}Zt(u,$.from,$.columnPanels,`move-${S}`)},Do=(u,S)=>{if(u.defaultPrevented||ie||!(u.target instanceof Node&&u.currentTarget.contains(u.target)))return;const W=bt(u);W!==null&&(u.target instanceof Element&&u.target.closest($n)!==null||(u.preventDefault(),!u.repeat&&$t(S,W,!0)))},en=(u,S)=>{const W=Vt.current;if(W==="touch"||W==="pen"){u.preventDefault();return}y(u,S)},at=be===null?f:be.over,tn=be===null?m:Kt(be.panelId),No=u=>{if(!o[u])return null;const S=ce[u];if(!S)return R(xe.current,1,`Panel config not found for panelId: ${u}`),null;const W=S.component,$=S.title,ee=i.draggedPanel===u||be?.panelId===u,ne=C[u]||"normal";R(xe.current,2,`🎨 renderPanel - ${u}:`,{panelId:u,dragMode:ne,timestamp:new Date().toISOString()});const oe=K=>{de.current[u]=K,I&&I(u,K),K&&N.showPanelSizes&&requestAnimationFrame(()=>{const Pe=K.getBoundingClientRect(),Oe=window.getComputedStyle(K);R(xe.current,1,`Panel ${u} mounted with size:`,{width:Pe.width,height:Pe.height,x:Pe.left,y:Pe.top,minHeight:Oe.minHeight,maxHeight:Oe.maxHeight})})},Z=c[u],te=B===u,ae=!!k,pe=()=>k?.(te?null:u),le=te?null:new Set(gt(he,u)),Ie=te?{position:"fixed",top:"var(--aqdd-maximize-top, 0px)",right:"var(--aqdd-maximize-right, 0px)",bottom:"var(--aqdd-maximize-bottom, 0px)",left:"var(--aqdd-maximize-left, 0px)",zIndex:50,minHeight:0,maxHeight:"none"}:{minHeight:S.minHeight??"200px",maxHeight:S.maxHeight??"500px"},ze=U==="header",on=ne==="normal"&&!ze&&!te,sn=ne==="normal"&&ze&&!te,rn=ee?"cursor-grabbing":"cursor-grab",an=`panel-draggable relative flex flex-col overflow-hidden border text-left shadow-lg backdrop-blur-lg ${ne==="custom"?"select-none":""}`,Oo=te?`${an} rounded-none p-4 ${V}`:`${an} rounded-2xl p-4 motion-safe:transition-all motion-safe:duration-300 motion-safe:hover:-translate-y-1 hover:shadow-xl ${ze?"":rn} ${V}`,ln=ne==="custom"?Y.switchToNormalDragMode:Y.switchToCustomDragMode,cn=te?Y.restorePanel:Y.maximizePanel;return a.jsxs("div",{ref:oe,"data-panel-id":u,"data-aqdd-panel":!0,"data-aqdd-drag-mode":ne,"data-dragging":ee,"data-maximized":te||void 0,role:"presentation",draggable:on,onDragStart:K=>on&&en(K,u),onDragEnd:M,onClick:K=>h?.(K,u),onMouseDown:K=>E?.(K,u),onKeyDown:K=>Do(K,u),style:Ie,className:Oo,children:[a.jsxs("div",{ref:Se.bindHeader,"data-aqdd-panel-header":!0,className:`relative mb-3 ${ze&&!te?rn:""}`,draggable:sn,onDragStart:K=>sn&&en(K,u),onPointerDown:K=>Se.pressHeader(K,u),onContextMenu:Se.holdContextMenu,onKeyDown:oo,onDoubleClick:ae?K=>{K.stopPropagation(),!(K.target instanceof Element&&K.target.closest(`[${we}]`)!==null)&&pe()}:void 0,children:[a.jsx("h3",{"data-aqdd-panel-title":!0,className:"font-semibold text-lg",children:$}),a.jsxs("div",{"data-aqdd-panel-controls":!0,children:[ne==="custom"&&a.jsx("span",{"data-aqdd-custom-badge":!0,lang:Y.customDragModeBadge.lang,className:"rounded-md px-2 py-1 font-medium text-xs",children:Y.customDragModeBadge.text}),a.jsxs("div",{"data-aqdd-panel-buttons":!0,children:[le!==null&&ve.map(K=>{const Pe=qn[K],Oe=Y[_t[K]],un=Ue[K];return a.jsx(ke,{action:`move-${K}`,label:Oe,tooltip:`${Oe.text} (${un.text})`,unavailable:!le.has(K),keyShortcuts:un.aria,onActivate:()=>$t(u,K,!1),children:a.jsx(Pe,{className:"h-4 w-4","aria-hidden":"true"})},K)}),a.jsx(ke,{action:"drag-mode",label:ln,tooltip:ln.text,unavailable:!1,keyShortcuts:void 0,onActivate:()=>w?.(u),children:ne==="custom"?a.jsx(Dn,{className:"h-4 w-4","aria-hidden":"true"}):a.jsx(kn,{className:"h-4 w-4","aria-hidden":"true"})}),!te&&a.jsx(ke,{action:"hide",label:Y.hidePanel,tooltip:Y.hidePanel.text,unavailable:!1,keyShortcuts:void 0,onActivate:()=>l({...o,[u]:!1}),children:a.jsx(ft,{className:"h-4 w-4","aria-hidden":"true"})}),ae&&a.jsx(ke,{action:te?"restore":"maximize",label:cn,tooltip:cn.text,unavailable:!1,keyShortcuts:void 0,onActivate:pe,children:te?a.jsx(jn,{className:"h-4 w-4","aria-hidden":"true"}):a.jsx(En,{className:"h-4 w-4","aria-hidden":"true"})}),x&&a.jsx(ke,{action:"close",label:Y.closePanel,tooltip:Y.closePanel.text,unavailable:!1,keyShortcuts:void 0,onActivate:()=>x(u),children:a.jsx(ht,{className:"h-4 w-4","aria-hidden":"true"})})]})]})]}),a.jsx("div",{"data-aqdd-scroll-area":!0,className:"panel-scroll-area min-h-0 flex-1 overflow-y-auto",children:a.jsx(W,{...S.props||{}})}),a.jsx(mt,{config:N,panelId:u,sizeInfo:Z,onSizeInfoClick:K=>v?.(K,u)})]},u)},So=(u,S)=>{const W=e[u]||[];let $=!1;for(const Z of W)if(o[Z]){$=!0;break}const ee=Le,ne=Rt(Y.dropZone,{column:S+1}),oe=`${ge}-drop-zone-${S}`;return a.jsx(Xe,{columnIndex:S,isDragging:ee,dragOverPosition:at,config:N,children:a.jsxs("section",{"data-drop-zone":"true","data-column-key":u,"data-column-index":S,"aria-labelledby":oe,onDragOver:Z=>j(Z,S),onDrop:Z=>D(Z,u),onDragLeave:T,className:"relative flex h-full flex-col motion-safe:transition-all motion-safe:duration-200",children:[a.jsx("span",{id:oe,hidden:!0,lang:ne.lang,children:ne.text}),a.jsx("div",{className:"placeholder-container",inert:ie,children:a.jsx(qe,{index:0,columnIndex:S,isDragging:ee,dragOverPosition:at,originalPosition:tn,onDragEnter:H,onDragLeave:P,debugConfig:N,customDrag:L,label:Y.dropHere})}),W.map((Z,te)=>{const ae=o[Z],pe=!(ae||ee),le=ie&&Z===B;return a.jsxs("div",{className:`panel-with-placeholder ${pe?"m-0 h-0 overflow-hidden p-0":""}`,"data-panel-hidden":pe?"true":void 0,"aria-hidden":pe?"true":void 0,inert:ie&&!le,children:[ae?No(Z):ee?a.jsxs("div",{"data-aqdd-hidden-panel-stand-in":!0,className:"hidden-panel-placeholder relative h-[120px] rounded-2xl border-2 border-dashed p-3 text-left shadow-lg backdrop-blur-lg",children:[a.jsxs("div",{className:"mb-2 flex items-center space-x-2",children:[a.jsx("h3",{className:"font-semibold text-base",children:ce[Z]?.title||Z}),a.jsx("span",{"data-aqdd-hidden-panel-badge":!0,lang:Y.hiddenPanelBadge.lang,className:"rounded-md px-2 py-1 font-medium text-xs",children:Y.hiddenPanelBadge.text})]}),a.jsx("div",{className:"flex-1 overflow-hidden",children:a.jsx("div",{className:"flex h-full items-center justify-center",children:a.jsxs("div",{className:"text-center",children:[a.jsx(ft,{className:"mx-auto h-6 w-6 opacity-50","aria-hidden":"true"}),a.jsx("p",{lang:Y.hiddenPanelNotice.lang,className:"mt-1 text-xs",children:Y.hiddenPanelNotice.text})]})})})]}):null,le?null:a.jsx(qe,{index:te+1,columnIndex:S,isDragging:ee,dragOverPosition:at,originalPosition:tn,onDragEnter:H,onDragLeave:P,debugConfig:N,customDrag:L,label:Y.dropHere})]},`panel-${Z}`)}),!($||ee)&&a.jsx("div",{"data-aqdd-empty-column":!0,className:"flex-shrink-0 rounded-xl border-2 border-dashed p-8 text-center motion-safe:transition-all motion-safe:duration-200",inert:ie,children:a.jsx("div",{lang:Y.emptyColumn.lang,className:"text-sm",children:Y.emptyColumn.text})})]})})},nn=Object.keys(o).filter(u=>!o[u]);return a.jsxs("div",{ref:Xt,"data-aqdd-layout":!0,className:"flex h-full flex-col",onPointerDownCapture:u=>{Vt.current=u.pointerType},children:[a.jsxs("div",{"data-aqdd-announcer":!0,role:"status","aria-live":"polite","aria-atomic":"true",inert:ie,children:[ot?.segments.map((u,S)=>u.lang===void 0?u.text:a.jsx("span",{lang:u.lang,children:u.text},S)),ot!==null&&ot.serial%2===0?eo:null]}),nn.length>0&&a.jsx("div",{"data-aqdd-hidden-panels":!0,className:"border-b px-4 py-2 backdrop-blur-lg",inert:ie,children:a.jsxs("div",{className:"flex flex-wrap gap-2",children:[a.jsx("span",{lang:Y.hiddenPanels.lang,className:"mr-2 text-sm",children:Y.hiddenPanels.text}),nn.map(u=>{const W=ce[u]?.title||u;return a.jsxs("button",{type:"button","data-aqdd-restore-panel":u,onClick:()=>l({...o,[u]:!0}),className:"flex items-center space-x-1 rounded-lg px-3 py-1 text-sm shadow-md hover:shadow-lg motion-safe:transition-all motion-safe:duration-200",children:[a.jsx(Pn,{className:"h-3 w-3","aria-hidden":"true"}),a.jsx("span",{children:W})]},u)})]})}),a.jsx("div",{ref:Co,className:"relative min-h-0 flex-1 overflow-hidden",children:a.jsx("div",{className:"h-full w-full",style:Eo,children:a.jsx(J,{ref:jo,"data-aqdd-scroll-root":!0,className:"no-scrollbar h-full max-w-full flex-1 overflow-auto",children:a.jsx("div",{"data-aqdd-columns":!0,className:"relative flex h-full items-start",children:t.map((u,S)=>{const W=X?.[u.id]||u.initialWidth||350,$=z&&(u.resizable??!0);return a.jsx(r.Fragment,{children:a.jsxs("div",{className:`column relative ${u.className||""} ${z?"resize-enabled-column":"auto-width-column"} ${_&&F===u.id?"column-resizing-active":""}`,"data-column":S,"data-column-id":u.id,"data-min-width":u.minWidth||350,"data-max-width":u.maxWidth,"data-column-width":z?W:void 0,inert:ie&&S!==Yt.column,...z&&{style:{"--column-width":`${W}px`}},children:[So(u.key,S),$&&!ie&&q&&g&&b&&a.jsx(Ke,{columnId:u.id,onResizeStart:q,onResize:g,onResizeEnd:b,isResizing:_&&F===u.id,position:"right",debug:N,label:Rt(Y.resizeColumn,{column:S+1})})]})},u.id)})})})})})]})};const ro=se("grid-3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);const ao=se("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);const $e=se("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);const lo=se("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),co=({columnCount:t,onColumnCountChange:n,onAutoBalance:e,onResetWidths:s,minColumns:o=2,maxColumns:l=6,isResizing:i=!1,isResponsiveMode:f=!1,responsiveColumnCount:m})=>{const C=t>o&&!f,y=t<l&&!f;return a.jsxs("div",{className:"flex items-center gap-3 rounded-lg border border-slate-200 bg-white/80 px-4 py-2 shadow-sm backdrop-blur-lg",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"font-medium text-slate-700 text-sm",children:"カラム数:"}),a.jsx("button",{type:"button",onClick:()=>C&&n(t-1),disabled:!C||i,className:`rounded p-1 text-xs transition-colors ${C&&!i?"border border-slate-300 text-slate-600 hover:border-red-300 hover:bg-red-50 hover:text-red-600":"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300"}`,title:f?"レスポンシブモード中:カラム数は自動調整されます":`カラムを削除 (最小: ${o}列)`,children:a.jsx(ao,{className:"h-3 w-3"})}),a.jsxs("div",{className:`min-w-[2rem] rounded border px-3 py-1 text-center font-mono text-sm ${f?"border-blue-300 bg-blue-50 text-blue-700":"border-slate-300 bg-slate-100 text-slate-700"}`,children:[f?m??t:t,f&&a.jsx("span",{className:"ml-1 text-xs",children:"自動"})]}),a.jsx("button",{type:"button",onClick:()=>y&&n(t+1),disabled:!y||i,className:`rounded p-1 text-xs transition-colors ${y&&!i?"border border-slate-300 text-slate-600 hover:border-blue-300 hover:bg-blue-50 hover:text-blue-600":"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300"}`,title:f?"レスポンシブモード中:カラム数は自動調整されます":`カラムを追加 (最大: ${l}列)`,children:a.jsx($e,{className:"h-3 w-3"})})]}),a.jsx("div",{className:"h-6 w-px bg-slate-300"}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("button",{type:"button",onClick:e,disabled:i,className:`flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors ${i?"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300":"border border-slate-300 text-slate-600 hover:border-green-300 hover:bg-green-50 hover:text-green-600"}`,title:"パネルを全カラムに均等分散",children:[a.jsx(ro,{className:"h-3 w-3"}),a.jsx("span",{children:"バランス"})]}),a.jsxs("button",{type:"button",onClick:s,disabled:i,className:`flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors ${i?"cursor-not-allowed border border-slate-200 bg-slate-50 text-slate-300":"border border-slate-300 text-slate-600 hover:border-orange-300 hover:bg-orange-50 hover:text-orange-600"}`,title:"カラム幅を初期値にリセット",children:[a.jsx(lo,{className:"h-3 w-3"}),a.jsx("span",{children:"幅リセット"})]})]}),i&&a.jsxs("div",{className:"flex items-center gap-1 text-blue-600 text-xs",children:[a.jsx("div",{className:"h-2 w-2 animate-pulse rounded-full bg-blue-500"}),a.jsx("span",{children:"リサイズ中..."})]})]})},io=({columnCount:t,onInsertColumn:n,onDeleteColumn:e,minColumns:s=1,maxColumns:o=6,isResizing:l=!1,disabled:i=!1})=>{const f=t<o&&!i,m=t>s&&!i;return a.jsxs("div",{className:`flex items-center justify-center gap-1 rounded-lg border border-slate-200 px-4 py-2 shadow-sm backdrop-blur-lg ${i?"bg-slate-100/80 opacity-60":"bg-white/80"}`,children:[i&&a.jsx("div",{className:"flex items-center gap-2 text-slate-500 text-xs",children:a.jsx("span",{children:"レスポンシブモード有効中:カラム数は自動調整されます"})}),!i&&a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",onClick:()=>f&&n(0),disabled:!f||l,className:`flex h-8 w-8 items-center justify-center rounded border-2 border-dashed text-xs transition-colors ${f&&!l?"border-blue-300 text-blue-600 hover:border-blue-500 hover:bg-blue-50":"cursor-not-allowed border-slate-200 text-slate-300"}`,title:"この位置に新しいカラムを挿入",children:a.jsx($e,{className:"h-4 w-4"})}),Array.from({length:t},(C,y)=>a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsxs("div",{className:"relative flex h-8 w-12 items-center justify-center rounded border border-slate-300 bg-slate-100",children:[a.jsx("span",{className:"font-medium font-mono text-slate-700 text-xs",children:y+1}),m&&!l&&a.jsx("button",{type:"button",onClick:()=>e(y),className:"absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full border border-red-300 bg-red-100 text-red-600 hover:bg-red-200",title:`カラム ${y+1} を削除`,children:a.jsx(ht,{className:"h-2.5 w-2.5"})})]}),a.jsx("button",{type:"button",onClick:()=>f&&n(y+1),disabled:!f||l,className:`flex h-8 w-8 items-center justify-center rounded border-2 border-dashed text-xs transition-colors ${f&&!l?"border-blue-300 text-blue-600 hover:border-blue-500 hover:bg-blue-50":"cursor-not-allowed border-slate-200 text-slate-300"}`,title:"この位置に新しいカラムを挿入",children:a.jsx($e,{className:"h-4 w-4"})})]},`column-${y}`))]})]})},uo=({config:t,onConfigChange:n,isVisible:e,onToggleVisibility:s})=>e?a.jsxs("div",{className:"fixed right-4 bottom-4 z-50 max-w-sm rounded-lg border border-gray-300 bg-white p-4 shadow-xl",children:[a.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[a.jsx("h3",{className:"font-bold text-gray-800 text-sm",children:"🛠️ デバッグ設定"}),a.jsx("button",{type:"button",onClick:s,className:"text-gray-500 text-lg hover:text-gray-700",title:"閉じる",children:"✕"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:t.showDebugPanel??!1,onChange:o=>n({...t,showDebugPanel:o.target.checked}),className:"rounded"}),a.jsx("span",{children:"デバッグパネル表示"})]}),a.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:t.showMousePosition??!1,onChange:o=>n({...t,showMousePosition:o.target.checked}),className:"rounded"}),a.jsx("span",{children:"マウス位置表示"})]}),a.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:t.showPanelSizes??!1,onChange:o=>n({...t,showPanelSizes:o.target.checked}),className:"rounded"}),a.jsx("span",{children:"パネルサイズ情報"})]}),a.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:t.showPlaceholderInfo??!1,onChange:o=>n({...t,showPlaceholderInfo:o.target.checked}),className:"rounded"}),a.jsx("span",{children:"プレースホルダー詳細"})]}),a.jsxs("label",{className:"flex items-center space-x-2 text-sm",children:[a.jsx("input",{type:"checkbox",checked:t.showDropZoneOutlines??!1,onChange:o=>n({...t,showDropZoneOutlines:o.target.checked}),className:"rounded"}),a.jsx("span",{children:"ドロップゾーン境界"})]}),a.jsxs("div",{className:"border-gray-200 border-t pt-2",children:[a.jsxs("label",{htmlFor:"log-level-slider",className:"mb-1 block text-sm",children:["ログレベル: ",t.logLevel??0]}),a.jsx("input",{id:"log-level-slider",type:"range",min:"0",max:"2",value:t.logLevel??0,onChange:o=>n({...t,logLevel:parseInt(o.target.value,10)}),className:"w-full","aria-label":"ログレベル設定"}),a.jsxs("div",{className:"mt-1 flex justify-between text-gray-500 text-xs",children:[a.jsx("span",{children:"無効"}),a.jsx("span",{children:"基本"}),a.jsx("span",{children:"詳細"})]})]}),a.jsxs("div",{className:"space-y-2 pt-2",children:[a.jsx("button",{type:"button",onClick:()=>n({showDebugPanel:!0,showMousePosition:!0,showPanelSizes:!0,showPlaceholderInfo:!0,showDropZoneOutlines:!0,logLevel:2}),className:"w-full rounded bg-blue-100 px-2 py-1 text-blue-700 text-sm transition-colors hover:bg-blue-200",children:"すべて有効"}),a.jsx("button",{type:"button",onClick:()=>n({showDebugPanel:!1,showMousePosition:!1,showPanelSizes:!1,showPlaceholderInfo:!1,showDropZoneOutlines:!1,logLevel:0}),className:"w-full rounded bg-gray-100 px-2 py-1 text-gray-700 text-sm transition-colors hover:bg-gray-200",children:"すべて無効"})]})]})]}):a.jsx("button",{type:"button",onClick:s,className:"fixed right-4 bottom-4 z-50 rounded-lg bg-gray-800 p-2 text-white shadow-lg transition-colors hover:bg-gray-700",title:"デバッグ設定を開く",children:"🛠️"}),ue={prefix:"column",startIndex:1,separator:"_"},De=(t,n=ue)=>{const{prefix:e,startIndex:s,separator:o}=n,l=t+s;return`${e}${o}${l}`},et=(t,n=ue)=>Array.from({length:t},(e,s)=>De(s,n)),Ne=(t,n=ue)=>{const{prefix:e,startIndex:s,separator:o}=n,l=`${e}${o}`;if(!t.startsWith(l))return null;const i=t.slice(l.length),f=parseInt(i,10);return Number.isNaN(f)||f<s?null:f-s},fo=(t,n=ue)=>Ne(t,n)!==null,ho=(t,n=ue)=>{const e=t.map(s=>Ne(s,n)).filter(s=>s!==null).sort((s,o)=>s-o);for(let s=0;s<e.length;s++)if(e[s]!==s)return De(s,n);return De(e.length,n)},Tt=(t,n=ue)=>t.sort((e,s)=>{const o=Ne(e,n)??-1,l=Ne(s,n)??-1;return o-l}),mo=(t,n=ue)=>{const e={};return t.forEach((s,o)=>{const l=De(o,n);e[s]=l}),e},Lt=(t,n,e=ue)=>{const s=[];Object.values(t).forEach(i=>{s.push(...i)});const o={},l=et(n,e);return l.forEach(i=>{o[i]=[]}),s.forEach((i,f)=>{const m=f%n,C=l[m];o[C].push(i)}),o},po=({initialColumns:t,initialPanels:n,debug:e={},onLayoutChange:s})=>{const[o,l]=r.useState(()=>{const g={};for(const b of t)g[b.id]=b.initialWidth||400;return{columns:t,columnWidths:g,isResizing:!1,resizingColumn:null,columnPanels:n,showInsertPlaceholders:!1}}),i=r.useRef(0),f=r.useRef(0);r.useEffect(()=>{s?.(o)},[o,s]);const m=r.useCallback((g,b)=>{R(e,1,"カラム追加:",g.id,"at position:",b),l(_=>{const F=[..._.columns],v=b??F.length;F.splice(v,0,g);const w={..._.columnWidths,[g.id]:g.initialWidth||400},x={..._.columnPanels,[g.id]:[]};return{..._,columns:F,columnWidths:w,columnPanels:x}})},[e]),C=r.useCallback(g=>{R(e,1,"カラム削除:",g),l(b=>{const _=b.columnPanels[g]||[],F=b.columns.filter(k=>k.id!==g);if(F.length===0)return R(e,1,"警告: 最後のカラムを削除しようとしています"),b;const v=F[0].id,w={...b.columnPanels};_.length>0&&(w[v]=[...w[v],..._]),delete w[g];const x={...b.columnWidths};return delete x[g],{...b,columns:F,columnWidths:x,columnPanels:w}})},[e]),y=r.useCallback((g,b)=>{R(e,1,"カラム移動:",g,"->",b),l(_=>{const F=[..._.columns],[v]=F.splice(g,1);return F.splice(b,0,v),{..._,columns:F}})},[e]),M=r.useCallback((g,b)=>{R(e,2,"リサイズ開始:",g,"at X:",b),i.current=b,f.current=o.columnWidths[g]||300,l(_=>({..._,isResizing:!0,resizingColumn:g}))},[e,o.columnWidths]),H=r.useCallback(g=>{const{resizingColumn:b,isResizing:_}=o;if(!(_&&b))return;const F=g-i.current,v=Math.max(100,Math.min(800,f.current+F));R(e,2,"リサイズ中:",b,"new width:",v),l(w=>({...w,columnWidths:{...w.columnWidths,[b]:v}}))},[e,o]),P=r.useCallback(()=>{R(e,2,"リサイズ終了"),l(g=>({...g,isResizing:!1,resizingColumn:null}))},[e]),j=r.useCallback((g,b)=>{R(e,2,"カラム幅設定:",g,b),l(_=>({..._,columnWidths:{..._.columnWidths,[g]:Math.max(100,Math.min(800,b))}}))},[e]),D=r.useCallback(()=>{R(e,1,"カラム幅リセット"),l(g=>{const b={};for(const _ of g.columns)b[_.id]=_.initialWidth||400;return{...g,columnWidths:b}})},[e]),T=r.useCallback((g,b,_,F)=>{R(e,1,"パネル移動:",g,"from",b,"to",_,"at",F),l(v=>{const w={...v.columnPanels};if(b in w&&(w[b]=w[b].filter(x=>x!==g)),_ in w){const x=[...w[_]];x.splice(F,0,g),w[_]=x}return{...v,columnPanels:w}})},[e]),h=r.useCallback((g,b,_)=>{R(e,1,"パネル追加:",g,"to column:",b),l(F=>{const v={...F.columnPanels};b in v||(v[b]=[]);const w=[...v[b]],x=_??w.length;return w.splice(x,0,g),v[b]=w,{...F,columnPanels:v}})},[e]),E=r.useCallback(g=>{R(e,1,"パネル削除:",g),l(b=>{const _={};for(const[F,v]of Object.entries(b.columnPanels))_[F]=v.filter(w=>w!==g);return{...b,columnPanels:_}})},[e]),N=r.useCallback(g=>{R(e,1,"カラム数更新:",g),l(b=>{const _=b.columns.length;if(g===_)return b;const F=Lt(b.columnPanels,g,ue),v=et(g,ue),w=b.isResizing&&b.resizingColumn&&!v.includes(b.resizingColumn);w&&R(e,1,"リサイズ中のカラムが削除されるためリサイズを強制終了:",b.resizingColumn);const x=v.map((B,V)=>({id:B,title:`カラム ${V+1}`,minWidth:350,maxWidth:800,initialWidth:400,resizable:!(V===1&&g===3)})),k={};if(Object.entries(b.columnWidths).some(([,B])=>B!==400))v.forEach(B=>{const V=b.columnWidths[B];V&&V!==400?k[B]=V:k[B]=400});else{const B=_>g?Object.values(b.columnWidths).reduce((d,p)=>d+p,0):g*400,V=Math.max(B/g,350);v.forEach(d=>{k[d]=V})}return{...b,columns:x,columnPanels:F,columnWidths:k,isResizing:w?!1:b.isResizing,resizingColumn:w?null:b.resizingColumn}})},[e]),c=r.useCallback(()=>{R(e,1,"カラム自動バランス調整"),l(g=>{const b=[];for(const v of Object.keys(g.columnPanels))for(const w of g.columnPanels[v])b.push(w);const _={};for(const v of g.columns)_[v.id]=[];let F=0;for(const v of b){const w=g.columns[F%g.columns.length].id;_[w].push(v),F+=1}return{...g,columnPanels:_}})},[e]),I=r.useCallback(g=>o.columns.find(b=>b.id===g),[o.columns]),z=r.useCallback(()=>{let g=0;for(const b of Object.values(o.columnWidths))g+=b;return g},[o.columnWidths]),X=r.useCallback(g=>document.querySelector(`[data-column-id="${g}"]`),[]),q=r.useCallback(g=>{l(b=>({...b,showInsertPlaceholders:g}))},[]);return{layoutState:o,addColumn:m,removeColumn:C,moveColumn:y,startResize:M,handleResize:H,endResize:P,setColumnWidth:j,resetColumnWidths:D,movePanel:T,addPanel:h,removePanel:E,updateColumnCount:N,autoBalanceColumns:c,getColumnById:I,getTotalWidth:z,getColumnElement:X,setShowInsertPlaceholders:q}},It=({debugConfig:t,dragState:n,customDrag:e,clickState:s,dragModes:o,isMouseDown:l,dragOverPosition:i,setCustomDrag:f,setDragState:m,setDragOverPosition:C,setOriginalPanelPosition:y,setClickState:M,setIsMouseDown:H,findPanelPosition:P,performPanelMove:j,showMousePosition:D,updateMousePosition:T,recordMouseDown:h,recordClickPosition:E,isVirtualClick:N,calculateMoveDistance:c,clearMouseTracking:I,resetDragState:z,resetClickState:X,createDragImage:q,updateDragImagePosition:g,removeDragImage:b,handlePlaceholderDragEnter:_,handlePlaceholderDragLeave:F})=>{const v=r.useRef(t);v.current=t;const w=r.useRef(null),x=r.useRef(null),k=r.useRef(0),L=r.useRef(new Me(Ce));r.useEffect(()=>{const p=document.querySelector(Ge);p&&L.current.setScrollElement(p)},[]);const U=r.useRef(i);r.useEffect(()=>{U.current=i,R(v.current,2,"dragOverPositionRef更新:",i)},[i]);const B=r.useCallback(p=>{if(e.isActive||s.isClicked){p.preventDefault();const O=window.getSelection();O&&O.rangeCount>0&&O.removeAllRanges()}if(e.isActive){T(p.clientX,p.clientY),g(p.clientX,p.clientY),L.current.update(p.clientX,p.clientY);const O=document.elementFromPoint(p.clientX,p.clientY),G=O?.closest("[data-drop-zone]");if(G){document.body.classList.add("droppable");const Q=G.getAttribute("data-column-index"),re=Q?parseInt(Q,10):null;re!==null&&re!==n.dragOverColumn&&m(Y=>({...Y,dragOverColumn:re}));const J=O?.closest("[data-placeholder-index]");if(J){const Y=J.getAttribute("data-placeholder-index"),ge=J.getAttribute("data-placeholder-column");if(Y&&ge){const ce=parseInt(Y,10),he=parseInt(ge,10);_(he,ce)}}else F()}else document.body.classList.remove("droppable"),C(null),m(Q=>({...Q,dragOverColumn:null}))}else if(l&&s.isClicked&&s.panelId){if(o[s.panelId]!=="custom"||c(p.clientX,p.clientY)<10)return;R(v.current,1,"🚀 カスタムドラッグ開始 -",s.panelId);const G=document.querySelector(`[data-panel-id="${s.panelId}"]`);if(G&&x.current){const Q=G.getBoundingClientRect(),re=x.current.x-Q.left,J=x.current.y-Q.top;q(s.panelId,re,J),document.body.classList.add("custom-dragging"),f({isActive:!0,panelId:s.panelId,startX:re,startY:J})}m({isDragging:!0,draggedPanel:s.panelId,dragOverColumn:null}),y(P(s.panelId)),D(p.clientX,p.clientY),M({isClicked:!1,panelId:null}),H(!1),I(),x.current=null,w.current&&(clearTimeout(w.current),w.current=null)}},[e.isActive,s,n.dragOverColumn,o,l,T,m,C,c,P,f,y,D,M,H,I,q,g,_,F]),V=r.useCallback(p=>{if(R(v.current,1,"🐭 カスタムドラッグハンドラー - グローバルマウスアップ",{isActive:e.isActive,panelId:e.panelId,dragMode:e.panelId?o[e.panelId]:"unknown"}),e.isActive){L.current.stop();const O=U.current;if(O){const Q=document.elementFromPoint(p.clientX,p.clientY)?.closest("[data-drop-zone]");if(Q){const re=Q.getAttribute("data-column-key");re&&o[e.panelId]==="custom"?(R(v.current,1,"🔄 カスタムドラッグパネル移動実行:",e.panelId,"→",re),j(e.panelId,re,O.insertIndex)):R(v.current,1,"🚫 カスタムドラッグパネル移動スキップ:",e.panelId,"モード:",o[e.panelId])}}b(),document.body.classList.remove("custom-dragging","droppable"),z(),k.current=0}else if(N(p.clientX,p.clientY)){const G=document.elementFromPoint(p.clientX,p.clientY)?.closest("[data-panel-id]"),Q=G?.getAttribute("data-panel-id")??null;if(!(G&&Q)||o[Q]!=="custom"){w.current&&(clearTimeout(w.current),w.current=null),X(),x.current=null,k.current=0;return}k.current+=1,s.isClicked===!1&&k.current===1?(R(v.current,1,"🖱️ 仮想クリック検出 - ドラッグ待機状態へ:",Q),M({isClicked:!0,panelId:Q}),w.current=window.setTimeout(()=>{R(v.current,1,"⏳ クリック待機状態を自動解除:",Q),X(),x.current=null,k.current=0},2e3)):(R(v.current,1,"🚫 クリック待機状態を解除 - 仮想クリック検出停止:",Q),w.current&&(clearTimeout(w.current),w.current=null),X(),x.current=null,k.current=0,w.current=window.setTimeout(()=>{R(v.current,1,"⏳ 仮想クリック検出再開:",Q)},2e3))}else s.isClicked&&(X(),x.current=null,k.current=0);l&&H(!1)},[e.isActive,e.panelId,s,o,l,j,z,X,N,M,H,b]),d=r.useCallback((p,O)=>{if(o[O]!=="custom"){R(v.current,1,"🚫 カスタムドラッグモードではない - スキップ:",O);return}h(p.clientX,p.clientY),s.isClicked&&s.panelId===O&&(H(!0),w.current!==null&&(clearTimeout(w.current),w.current=null),E(p.clientX,p.clientY),x.current={x:p.clientX,y:p.clientY})},[s,o,h,H,E]);return r.useEffect(()=>()=>{w.current!==null&&clearTimeout(w.current),L.current.stop()},[]),{handleGlobalMouseMove:B,handleGlobalMouseUp:V,handleMouseDown:d}},zt=()=>{const[t,n]=r.useState({isDragging:!1,draggedPanel:null,dragOverColumn:null}),[e,s]=r.useState(null),[o,l]=r.useState(null),[i,f]=r.useState({isActive:!1,panelId:"",startX:0,startY:0}),[m,C]=r.useState({isClicked:!1,panelId:null}),[y,M]=r.useState(!1),H=r.useCallback(()=>{f({isActive:!1,panelId:"",startX:0,startY:0}),n({isDragging:!1,draggedPanel:null,dragOverColumn:null}),s(null),l(null)},[]),P=r.useCallback(()=>{C({isClicked:!1,panelId:null}),M(!1)},[]),j=r.useCallback(c=>{n(c)},[]),D=r.useCallback(c=>{s(c)},[]),T=r.useCallback(c=>{l(c)},[]),h=r.useCallback(c=>{f(c)},[]),E=r.useCallback(c=>{C(c)},[]),N=r.useCallback(c=>{M(c)},[]);return{dragState:t,dragOverPosition:e,originalPanelPosition:o,customDrag:i,clickState:m,isMouseDown:y,setDragState:j,setDragOverPosition:D,setOriginalPanelPosition:T,setCustomDrag:h,setClickState:E,setIsMouseDown:N,resetDragState:H,resetClickState:P}},Wt=()=>{const[t,n]=r.useState({x:0,y:0,isVisible:!1}),e=r.useRef(null),s=r.useRef(0),o=r.useRef(null),l=r.useCallback((P,j)=>{n({x:P,y:j,isVisible:!0})},[]),i=r.useCallback(()=>{n(P=>({...P,isVisible:!1}))},[]),f=r.useCallback((P,j)=>{n(D=>D.x===P&&D.y===j?D:{x:P,y:j,isVisible:D.isVisible})},[]),m=r.useCallback((P,j)=>{s.current=Date.now(),o.current={x:P,y:j}},[]),C=r.useCallback((P,j)=>{e.current={x:P,y:j}},[]),y=r.useCallback((P,j,D=500,T=5)=>Date.now()-(s.current||0)>=D||!o.current?!1:Math.sqrt((P-o.current.x)**2+(j-o.current.y)**2)<T,[]),M=r.useCallback((P,j)=>{if(!e.current)return 0;const D=Math.abs(P-e.current.x),T=Math.abs(j-e.current.y);return Math.sqrt(D*D+T*T)},[]),H=r.useCallback(()=>{e.current=null,s.current=0,o.current=null},[]);return{mousePosition:t,lastClickPosition:e.current,mouseDownTime:s.current,mouseDownPosition:o.current,showMousePosition:l,hideMousePosition:i,updateMousePosition:f,recordMouseDown:m,recordClickPosition:C,isVirtualClick:y,calculateMoveDistance:M,clearMouseTracking:H}},Ht=({debugConfig:t,dragState:n,customDrag:e,dragModes:s,columnPanels:o,dragOverPosition:l,originalPanelPosition:i,setDragState:f,setDragOverPosition:m,setOriginalPanelPosition:C,performPanelMove:y,showMousePosition:M,updateMousePosition:H,resetDragState:P,handlePlaceholderDragEnter:j,handlePlaceholderDragLeave:D,scale:T=1})=>{const h=r.useRef(t);h.current=t;const E=r.useRef(o);E.current=o;const N=r.useRef(n);N.current=n;const c=r.useRef(l);c.current=l;const I=r.useRef(i);I.current=i;const z=r.useRef(T);z.current=T;const X=r.useRef(new Me(Ce));r.useEffect(()=>{const v=document.querySelector(Ge);v&&X.current.setScrollElement(v)},[]);const q=r.useCallback((v,w)=>{if(e.isActive){R(h.current,2,"カスタムドラッグアクティブ中 - 通常ドラッグを無効化:",w),v.preventDefault();return}if(s[w]==="custom"){R(h.current,2,"カスタムドラッグモード - 通常ドラッグを無効化:",w),v.preventDefault();return}R(h.current,1,"ドラッグ開始:",w);const x=Object.keys(E.current);let k=null;for(let L=0;L<x.length;L++){const U=x[L],B=E.current[U].indexOf(w);if(B!==-1){k={columnIndex:L,panelIndex:B};break}}if(C(k),v.dataTransfer){v.dataTransfer.setData("text/plain",w),v.dataTransfer.effectAllowed="move";const L=z.current;if(L<1){const U=v.currentTarget.closest("[data-panel-id]")??v.currentTarget,B=U.getBoundingClientRect(),V=U.offsetWidth,d=U.offsetHeight,p=U.cloneNode(!0);p.removeAttribute("data-panel-id"),p.removeAttribute("id"),vt(U,p),p.style.margin="0",p.style.width=`${V}px`,p.style.height=`${d}px`,p.style.transform=`scale(${L})`,p.style.transformOrigin="top left";const O=document.createElement("div");O.style.position="fixed",O.style.top="0",O.style.left="-10000px",O.style.width=`${V*L}px`,O.style.height=`${d*L}px`,O.style.overflow="hidden",O.style.opacity="0.8",O.style.pointerEvents="none",O.appendChild(p),document.body.appendChild(O),v.dataTransfer.setDragImage(O,v.clientX-B.left,v.clientY-B.top),requestAnimationFrame(()=>O.remove())}}M(v.clientX,v.clientY),requestAnimationFrame(()=>{f({isDragging:!0,draggedPanel:w,dragOverColumn:null})})},[s,e.isActive,C,M,f]),g=r.useCallback(()=>{R(h.current,1,"ドラッグ終了"),X.current.stop(),P()},[P]),b=r.useCallback((v,w)=>{if(v.preventDefault(),v.dataTransfer.dropEffect="move",!N.current.isDragging)return;H(v.clientX,v.clientY),w!==N.current.dragOverColumn&&f(L=>({...L,dragOverColumn:w}));const x=document.elementFromPoint(v.clientX,v.clientY),k=x?.closest("[data-placeholder-index]");if(k){const L=k.getAttribute("data-placeholder-index"),U=k.getAttribute("data-placeholder-column");if(L&&U){const B=parseInt(L,10),V=parseInt(U,10);j(V,B)}}else x?.closest("[data-drop-zone]")||D()},[H,f,j,D]),_=r.useCallback((v,w)=>{v.preventDefault();const x=v.dataTransfer.getData("text/plain"),k=c.current;x&&k&&(R(h.current,1,"🎯 ドロップ完了:",{draggedPanel:x,targetColumn:w,insertPosition:`カラム${k.columnIndex} - 位置${k.insertIndex}`}),y(x,w,k.insertIndex),m(null),g())},[y,m,g]),F=r.useCallback(v=>{const w=v.currentTarget,x=v.relatedTarget;x&&w.contains(x)||(m(null),f(k=>({...k,dragOverColumn:null})))},[m,f]);return r.useEffect(()=>{const v=w=>{N.current.isDragging&&(H(w.clientX,w.clientY),X.current.update(w.clientX,w.clientY))};if(n.isDragging)return document.addEventListener("dragover",v),()=>{document.removeEventListener("dragover",v),X.current.stop()}},[n.isDragging,H]),r.useEffect(()=>()=>{X.current.stop()},[]),{handleDragStart:q,handleDragEnd:g,handleDragOverWithInsert:b,handleDropWithInsert:_,handleColumnDragLeave:F}},Ft=(t,n=1)=>{const[e,s]=r.useState(t),[o,l]=r.useState({}),i=r.useRef({}),f=r.useRef(null),m=r.useRef({x:0,y:0}),C=r.useRef(n);C.current=n;const y=r.useCallback(E=>document.querySelector(`[data-panel-id="${E}"]`),[]),M=r.useCallback((E,N)=>{const c=N.getBoundingClientRect(),I=window.getComputedStyle(N),z={width:Math.round(c.width),height:Math.round(c.height),x:Math.round(c.left),y:Math.round(c.top),minHeight:I.minHeight||"auto",maxHeight:I.maxHeight||"none"},X=i.current[E];(!X||Object.keys(z).some(q=>X[q]!==z[q]))&&(i.current[E]=z,l(q=>({...q,[E]:z})))},[]),H=r.useCallback(E=>{const N=y(E);N&&M(E,N)},[y,M]),P=r.useCallback((E,N)=>{N&&requestAnimationFrame(()=>M(E,N))},[M]),j=r.useCallback((E,N,c)=>{const I=y(E);!I||f.current||(f.current=yt(I,E,C.current),m.current={x:N,y:c})},[y]),D=r.useCallback((E,N)=>{f.current&&wt(f.current,E,N,m.current,C.current)},[]),T=r.useCallback(()=>{f.current&&(f.current.remove(),f.current=null)},[]),h=r.useCallback(E=>{s(N=>({...N,[E]:!N[E]}))},[]);return{panelVisibility:e,panelSizes:o,setPanelVisibility:s,setPanelSizes:l,setPanelRef:P,updatePanelSize:H,togglePanelVisibility:h,getPanelElement:y,createDragImage:j,updateDragImagePosition:D,removeDragImage:T}},go=({initialColumnPanels:t,initialPanelVisibility:n,initialDragModes:e={},debugConfig:s,onPanelMove:o,onDragModeChange:l,onColumnPanelsChange:i,scale:f=1})=>{const m=r.useRef(s);m.current=s;const[C,y]=r.useState(t),[M,H]=r.useState(e),P=r.useRef(C),j=r.useRef(M),D=r.useCallback(x=>{if(typeof x=="function")throw new TypeError("setColumnPanels takes the next arrangement itself, not an updater function");P.current=x,y(x)},[]),T=r.useCallback(x=>{if(typeof x=="function")throw new TypeError("setDragModes takes the next drag modes themselves, not an updater function");j.current=x,H(x)},[]),h=zt(),E=Wt(),N=Ft(n,f),c=r.useRef({mousemove:null,mouseup:null}),I=r.useCallback(x=>{const k=Object.keys(P.current),L=Tt(k,ue);for(let U=0;U<L.length;U++){const B=L[U],V=P.current[B]?.indexOf(x)??-1;if(V!==-1)return{columnIndex:U,panelIndex:V}}return null},[]),z=r.useCallback((x,k,L)=>{R(m.current,1,"🔄 パネル移動実行:",x,"→",k,"@",L);const U=P.current,B=Object.keys(U).find(d=>U[d].includes(x));if(B===void 0){console.error("Source column not found for panel:",x);return}if(!U[k]){console.error("Target column not found:",k);return}const V=Fe(U,x,k,L);V!==null&&(D(V),R(m.current,1,"✅ パネル移動完了:",x,"→",k),!(i===void 0&&o===void 0)&&requestAnimationFrame(()=>{const d=[];try{i?.(V)}catch(p){d.push(p)}try{o?.(x,B,k,L)}catch(p){d.push(p)}if(d.length===1)throw d[0];if(d.length===2)throw new AggregateError(d,"onColumnPanelsChange and onPanelMove both threw")}))},[i,o,D]),X=r.useCallback((x,k)=>{if(!(h.dragState.isDragging||h.customDrag.isActive))return;const L=h.originalPanelPosition;if(L!==null&&He(L,x,k)){R(m.current,1,`元の位置への挿入をスキップ: カラム${x}, 位置${k}`);return}const U=h.dragOverPosition;(!U||U.columnIndex!==x||U.insertIndex!==k)&&(R(m.current,1,`プレースホルダーエンター: カラム${x}, 位置${k}`),h.setDragOverPosition({columnIndex:x,insertIndex:k}),h.setDragState(B=>({...B,dragOverColumn:x})))},[h]),q=r.useCallback((x,k,L)=>{if(h.dragState.isDragging||h.customDrag.isActive){if(h.customDrag.isActive)R(m.current,1,"🚫 カスタムドラッグ - プレースホルダーリーブ: ハイライトを解除します。"),h.setDragOverPosition(null);else if(h.dragState.isDragging&&x&&k!==void 0&&L!==void 0){const U=h.dragOverPosition;if(U&&U.columnIndex===k&&U.insertIndex===L){const B=x.currentTarget,V=x.relatedTarget;V&&B.contains(V)||(R(m.current,1,`ノーマルドラッグ - プレースホルダーリーブ: カラム${k}, 位置${L}。ハイライトを解除します。`),h.setDragOverPosition(null))}}}},[h]),g=It({debugConfig:m.current,dragState:h.dragState,customDrag:h.customDrag,clickState:h.clickState,dragModes:M,isMouseDown:h.isMouseDown,originalPanelPosition:h.originalPanelPosition,dragOverPosition:h.dragOverPosition,setCustomDrag:h.setCustomDrag,setDragState:h.setDragState,setDragOverPosition:h.setDragOverPosition,setOriginalPanelPosition:h.setOriginalPanelPosition,setClickState:h.setClickState,setIsMouseDown:h.setIsMouseDown,findPanelPosition:I,performPanelMove:z,showMousePosition:E.showMousePosition,updateMousePosition:E.updateMousePosition,recordMouseDown:E.recordMouseDown,recordClickPosition:E.recordClickPosition,isVirtualClick:E.isVirtualClick,calculateMoveDistance:E.calculateMoveDistance,clearMouseTracking:E.clearMouseTracking,resetDragState:h.resetDragState,resetClickState:h.resetClickState,createDragImage:N.createDragImage,updateDragImagePosition:N.updateDragImagePosition,removeDragImage:N.removeDragImage,handlePlaceholderDragEnter:X,handlePlaceholderDragLeave:q}),b=Ht({debugConfig:m.current,dragState:h.dragState,customDrag:h.customDrag,dragModes:M,columnPanels:C,dragOverPosition:h.dragOverPosition,originalPanelPosition:h.originalPanelPosition,setDragState:h.setDragState,setDragOverPosition:h.setDragOverPosition,setOriginalPanelPosition:h.setOriginalPanelPosition,performPanelMove:z,showMousePosition:E.showMousePosition,updateMousePosition:E.updateMousePosition,resetDragState:h.resetDragState,handlePlaceholderDragEnter:X,handlePlaceholderDragLeave:q,scale:f}),_=r.useCallback(x=>{c.current.mousemove&&c.current.mousemove(x)},[]),F=r.useCallback(x=>{c.current.mouseup&&c.current.mouseup(x)},[]);r.useEffect(()=>(R(m.current,1,"🔧 グローバルイベントリスナー初期化 - refベース管理開始"),document.addEventListener("mousemove",_),document.addEventListener("mouseup",F),()=>{R(m.current,1,"🔴 グローバルイベントリスナー終了 - refベース管理終了"),document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",F)}),[_,F]),r.useEffect(()=>{const x=!h.clickState.isClicked&&Object.entries(M).some(([,L])=>L==="custom"),k=h.clickState.isClicked&&h.clickState.panelId;if(x||k){const L=x?"パターン1(仮想クリック検出)":"パターン2,3(ドラッグ準備)";R(m.current,1,`🔧 イベントハンドラー設定開始: ${L}`),c.current.mousemove=g.handleGlobalMouseMove,c.current.mouseup=g.handleGlobalMouseUp}else h.customDrag.isActive||h.dragState.isDragging||(c.current.mousemove=null,c.current.mouseup=null)},[h.clickState.isClicked,h.clickState.panelId,M,h.customDrag.isActive,h.dragState.isDragging,g.handleGlobalMouseMove,g.handleGlobalMouseUp]);const v=r.useCallback(x=>{R(m.current,1,"🔄 toggleDragMode called:",{panelId:x});const k=j.current,L=(k[x]??"normal")==="normal"?"custom":"normal";if(T({...k,[x]:L}),l!==void 0)try{l(x,L)}catch(U){console.error("🔄 Error in onDragModeChange:",U)}},[l,T]),w=r.useCallback((x,k)=>{x.stopPropagation(),R(m.current,2,"パネルサイズ情報クリック:",k)},[]);return{columnPanels:C,panelVisibility:N.panelVisibility,dragModes:M,dragState:h.dragState,dragOverPosition:h.dragOverPosition,originalPanelPosition:h.originalPanelPosition,customDrag:h.customDrag,clickState:h.clickState,mousePosition:E.mousePosition,panelSizes:N.panelSizes,setColumnPanels:D,setPanelVisibility:N.setPanelVisibility,setDragModes:T,setPanelRef:N.setPanelRef,handleDragStart:b.handleDragStart,handleDragEnd:b.handleDragEnd,handleMouseDown:g.handleMouseDown,handlePlaceholderDragEnter:X,handlePlaceholderDragLeave:q,handleDragOverWithInsert:b.handleDragOverWithInsert,handleDropWithInsert:b.handleDropWithInsert,handleColumnDragLeave:b.handleColumnDragLeave,handlePanelSizeInfoClick:w,toggleDragMode:v,findPanelPosition:I}},xo=({minColumnWidth:t=350,defaultColumns:n=3,maxColumns:e=6,minColumns:s=1,currentColumnWidths:o={}}={})=>{const[l,i]=r.useState(0),f=r.useRef(0),m=r.useRef(null),[C,y]=r.useState(!1),M=r.useRef(n);r.useEffect(()=>{if(typeof window>"u")return;const j=()=>{const T=window.visualViewport?.width??0,h=document?.documentElement?.clientWidth??0,E=document?.body?.clientWidth??0,N=window.innerWidth??0;return h>0?Math.floor(h):T>0?Math.floor(T):E>0?Math.floor(E):Math.floor(N)},D=()=>{m.current!==null&&cancelAnimationFrame(m.current),m.current=requestAnimationFrame(()=>{const T=j();m.current=null,T!==0&&(Math.abs(f.current-T)<2||(f.current=T,i(T)))})};return D(),window.addEventListener("resize",D),window.addEventListener("orientationchange",D),window.visualViewport?.addEventListener("resize",D),()=>{m.current!==null&&cancelAnimationFrame(m.current),window.removeEventListener("resize",D),window.removeEventListener("orientationchange",D),window.visualViewport?.removeEventListener("resize",D)}},[]);const H=r.useMemo(()=>{if(!C||l===0)return M.current=n,n;const j=Math.max(l-64,0),D=24,T=Object.values(o);let h;if(T.length>0){const E=T.reduce((I,z)=>I+z,0)/T.length,N=Math.max(t,E);h=Math.floor((j+D)/(N+D)),T.reduce((I,z)=>I+z,0)+(T.length-1)*D>j&&T.length>s&&(h=Math.min(h,T.length-1))}else h=Math.floor((j+D)/(t+D));return h=Math.max(s,Math.min(e,h)),M.current===h?M.current:(M.current=h,h)},[C,l,n,t,e,s,o]),P=r.useCallback(()=>{y(j=>!j)},[]);return{responsiveColumnCount:H,isResponsiveMode:C,screenWidth:l,toggleResponsiveMode:P}};const bo=se("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);const vo=se("smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),yo=({isResponsiveMode:t,responsiveColumnCount:n,currentColumnCount:e,screenWidth:s,onToggleResponsive:o})=>a.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-slate-300 bg-white/90 px-3 py-1",children:[a.jsxs("button",{type:"button",onClick:o,className:`flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors ${t?"border border-blue-300 bg-blue-100 text-blue-700":"border border-slate-300 text-slate-600 hover:bg-blue-50 hover:text-blue-600"}`,title:t?"レスポンシブモードを無効化":"レスポンシブモードを有効化",children:[t?a.jsx(vo,{className:"h-3 w-3"}):a.jsx(bo,{className:"h-3 w-3"}),a.jsx("span",{children:t?"レスポンシブ":"固定"})]}),t&&a.jsxs("div",{className:"flex items-center gap-1 text-slate-600 text-xs",children:[a.jsxs("span",{className:"font-mono",children:[s,"px"]}),a.jsx("span",{children:"→"}),a.jsxs("span",{className:"font-semibold text-blue-600",children:[n,"列"]}),n!==e&&a.jsx("span",{className:"text-orange-600",children:"(変更予定)"})]})]}),wo={showDebugPanel:!1,showMousePosition:!1,showPanelSizes:!1,showPlaceholderInfo:!1,showDropZoneOutlines:!1,logLevel:0};A.ColumnControlPanel=co,A.ColumnInsertPanel=io,A.DEFAULT_COLUMN_ID_CONFIG=ue,A.DEFAULT_DEBUG_CONFIG=wo,A.DEFAULT_DRAG_DROP_LAYOUT_LABELS=Un,A.DEFAULT_EDGE_SCROLL_CONFIG=Ce,A.DEFAULT_TOUCH_DRAG_CONFIG=At,A.DebugControlPanel=uo,A.DragDropLayout=so,A.DropZoneDebugOverlay=Xe,A.EdgeScrollManager=Me,A.InsertPlaceholder=Be,A.PANEL_ACTION_ATTRIBUTE=we,A.PANEL_MOVES=ve,A.PANEL_MOVE_SHORTCUTS=Ue,A.PanelSizeDisplay=mt,A.ResizableColumn=Jn,A.ResizeHandle=Ke,A.ResponsiveControl=yo,A.SCROLL_ROOT_SELECTOR=Ge,A.TEMPLATE_PLACEHOLDERS=St,A.availablePanelMoves=gt,A.calculateScrollVector=Ze,A.createColumnIdMapping=mo,A.debugLog=R,A.generateColumnId=De,A.generateColumnIds=et,A.getNextColumnId=ho,A.insertPanelAt=Fe,A.isValidColumnId=fo,A.movePanelInColumns=xt,A.normalizeColumnPanels=Lt,A.panelMoveOfKey=bt,A.parseColumnId=Ne,A.performScroll=jt,A.shownPanelPlace=ye,A.sortColumnIds=Tt,A.useColumnLayout=po,A.useCustomDragHandlers=It,A.useDragDropColumns=go,A.useDragDropState=zt,A.useMouseTracking=Wt,A.useNormalDragHandlers=Ht,A.usePanelManagement=Ft,A.useResponsiveColumns=xo,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})}));
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
|
|
2
2
|
/*! @aiquants/drag-drop-panels standalone CSS — 非 Tailwind ホスト専用。ホストの Tailwind ビルドと混在させないこと */
|
|
3
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-50:oklch(98% .016 73.684);--color-orange-100:oklch(95.4% .038 75.164);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-50:oklch(98.2% .018 155.826);--color-green-300:oklch(87.1% .15 154.449);--color-green-600:oklch(62.7% .194 149.214);--color-cyan-300:oklch(86.5% .127 207.078);--color-sky-50:oklch(97.7% .013 236.62);--color-sky-200:oklch(90.1% .058 230.902);--color-sky-300:oklch(82.8% .111 230.318);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-500:oklch(68.5% .169 237.323);--color-sky-600:oklch(58.8% .158 241.966);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-purple-300:oklch(82.7% .119 306.383);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--radius-md:calc(var(--radius,.5rem) - 2px);--radius-lg:var(--radius,.5rem);--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base;@layer components{.resize-enabled-column{width:var(--column-width,350px);flex-grow:0;flex-shrink:0}.auto-width-column{flex:1}.resizing-cursor{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.column-resizing{opacity:.8;transition:opacity .2s}.column-resizing-active{opacity:1;transition:none;box-shadow:0 0 0 2px #3b82f680}body.resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.custom-dragging,body.custom-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}body.custom-dragging :before,body.custom-dragging :after{cursor:grabbing!important}.panel-draggable[data-dragging=true]{opacity:.2;transition:transform 1s,opacity 1s,box-shadow 1s;transform:rotate(1deg);box-shadow:0 0 0 2px #60a5fa80}.panel.is-moving *{overflow:hidden!important}.panel-with-placeholder[data-panel-hidden=true]{opacity:0;height:0!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}[data-drop-zone=true]>.panel-with-placeholder{margin-top:0;transition:margin .2s}[data-drop-zone=true]>.panel-with-placeholder:not([data-panel-hidden=true])~.panel-with-placeholder:not([data-panel-hidden=true]){margin-top:1rem}.panel-scroll-area{scrollbar-width:thin;scrollbar-color:#0f172a40 transparent}.panel-scroll-area:hover{scrollbar-color:#0f172a59 transparent}.panel-scroll-area::-webkit-scrollbar{width:6px}.panel-scroll-area::-webkit-scrollbar-track{background:0 0}.panel-scroll-area::-webkit-scrollbar-thumb{background-color:#0f172a40;border-radius:9999px}.panel-scroll-area:hover::-webkit-scrollbar-thumb{background-color:#0f172a59}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.resize-handle{cursor:col-resize;z-index:10;justify-content:center;align-items:center;width:12px;transition:background-color .2s;display:flex;position:absolute;top:0;bottom:0}.resize-handle.right{right:-6px}.resize-handle.left{left:-6px}.resize-handle.resizing,.resize-handle:hover{background-color:#0000000d}.resize-handle-bar{background-color:#6366f180;border-radius:999px;width:2px;height:40px}.resize-handle.resizing .resize-handle-bar{background-color:#6366f1e6;box-shadow:0 0 6px #6366f199}.resize-handle-debug-info{color:#fff;white-space:nowrap;pointer-events:none;background:#1e40afd9;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.column-debug-size{color:#fff;pointer-events:none;background:#1e40afd9;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;top:8px;right:12px}}@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-4{right:calc(var(--spacing) * 4)}.right-24{right:calc(var(--spacing) * 24)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:calc(var(--spacing) * 0)}.left-2{left:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-1{grid-column:1}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:calc(var(--spacing) * 1)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-0{height:calc(var(--spacing) * 0)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-\[120px\]{height:120px}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-full{width:100%}.w-px{width:1px}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-\[2rem\]{min-width:2rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.scale-\[1\.02\]{scale:1.02}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-300{border-color:var(--color-amber-300)}.border-blue-300{border-color:var(--color-blue-300)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-700{border-color:var(--color-gray-700)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-red-700{border-color:var(--color-red-700)}.border-sky-300{border-color:var(--color-sky-300)}.border-sky-500{border-color:var(--color-sky-500)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/90{background-color:#3080ffe6}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/90{background-color:color-mix(in oklab, var(--color-blue-500) 90%, transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/10{background-color:#f3f4f61a}@supports (color:color-mix(in lab, red, red)){.bg-gray-100\/10{background-color:color-mix(in oklab, var(--color-gray-100) 10%, transparent)}}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\/90{background-color:#6a7282e6}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/90{background-color:color-mix(in oklab, var(--color-gray-500) 90%, transparent)}}.bg-gray-800{background-color:var(--color-gray-800)}.bg-orange-100{background-color:var(--color-orange-100)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/20{background-color:#ffe2e233}@supports (color:color-mix(in lab, red, red)){.bg-red-100\/20{background-color:color-mix(in oklab, var(--color-red-100) 20%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/90{background-color:#fb2c36e6}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/90{background-color:color-mix(in oklab, var(--color-red-500) 90%, transparent)}}.bg-sky-50\/70{background-color:#f0f9ffb3}@supports (color:color-mix(in lab, red, red)){.bg-sky-50\/70{background-color:color-mix(in oklab, var(--color-sky-50) 70%, transparent)}}.bg-sky-200{background-color:var(--color-sky-200)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/80{background-color:#f1f5f9cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-100\/80{background-color:color-mix(in oklab, var(--color-slate-100) 80%, transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-white{background-color:var(--color-white)}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.bg-white\/30{background-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.bg-white\/70{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab, red, red)){.bg-white\/95{background-color:color-mix(in oklab, var(--color-white) 95%, transparent)}}.bg-yellow-500\/90{background-color:#edb200e6}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/90{background-color:color-mix(in oklab, var(--color-yellow-500) 90%, transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-50{--tw-gradient-from:var(--color-amber-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-sky-500{--tw-gradient-from:var(--color-sky-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-indigo-500{--tw-gradient-to:var(--color-indigo-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-orange-50{--tw-gradient-to:var(--color-orange-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pl-2{padding-left:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-black{color:var(--color-black)}.text-blue-300{color:var(--color-blue-300)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-cyan-300{color:var(--color-cyan-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-300{color:var(--color-green-300)}.text-orange-300{color:var(--color-orange-300)}.text-orange-600{color:var(--color-orange-600)}.text-purple-300{color:var(--color-purple-300)}.text-red-300{color:var(--color-red-300)}.text-red-600{color:var(--color-red-600)}.text-sky-600{color:var(--color-sky-600)}.text-slate-300{color:var(--color-slate-300)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-sky-400{--tw-ring-color:var(--color-sky-400)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-0{--tw-duration:0s;transition-duration:0s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:text-slate-900:is(:where(.group):hover *){color:var(--color-slate-900)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-blue-300:hover{border-color:var(--color-blue-300)}.hover\:border-blue-500:hover{border-color:var(--color-blue-500)}.hover\:border-green-300:hover{border-color:var(--color-green-300)}.hover\:border-orange-300:hover{border-color:var(--color-orange-300)}.hover\:border-red-300:hover{border-color:var(--color-red-300)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-blue-200:hover{background-color:var(--color-blue-200)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-orange-50:hover{background-color:var(--color-orange-50)}.hover\:bg-orange-200:hover{background-color:var(--color-orange-200)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-200:hover{background-color:var(--color-red-200)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:from-sky-600:hover{--tw-gradient-from:var(--color-sky-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:to-indigo-600:hover{--tw-gradient-to:var(--color-indigo-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-600:hover{color:var(--color-green-600)}.hover\:text-orange-600:hover{color:var(--color-orange-600)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:text-slate-600:hover{color:var(--color-slate-600)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (min-width:640px){.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes pulse{50%{opacity:.5}}
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-orange-50:oklch(98% .016 73.684);--color-orange-300:oklch(83.7% .128 66.29);--color-orange-600:oklch(64.6% .222 41.116);--color-yellow-300:oklch(90.5% .182 98.111);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-50:oklch(98.2% .018 155.826);--color-green-300:oklch(87.1% .15 154.449);--color-green-600:oklch(62.7% .194 149.214);--color-cyan-300:oklch(86.5% .127 207.078);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-purple-300:oklch(82.7% .119 306.383);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-tight:1.25;--radius-md:calc(var(--radius,.5rem) - 2px);--radius-lg:var(--radius,.5rem);--radius-xl:.75rem;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-lg:16px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base;@layer components{:where([data-aqdd-scroll-root]){padding-block:var(--aqdd-stage-padding-block,1.5rem);padding-inline:var(--aqdd-stage-padding-inline,1rem 2rem)}@media (min-width:40rem){:where([data-aqdd-scroll-root]){padding-inline:var(--aqdd-stage-padding-inline,1.5rem 2.5rem)}}:where([data-aqdd-columns]){gap:var(--aqdd-column-gap,1.5rem)}:where([data-aqdd-layout],[data-aqdd-panel]){--aqdd-default-panel-surface:#fffc;--aqdd-default-panel-border:#e2e8f0;--aqdd-default-panel-title-color:#334155;--aqdd-default-header-button-color:#475569;--aqdd-default-header-button-hover-color:#0f172a;--aqdd-default-header-button-hover-surface:#f1f5f9;--aqdd-default-header-close-hover-color:#b91c1c;--aqdd-default-custom-badge-color:#9a3412;--aqdd-default-custom-badge-surface:#ffedd5}:where([data-aqdd-panel][data-maximized]){--aqdd-default-panel-surface:#fffffff2}:where([data-aqdd-layout]){--aqdd-default-restore-button-color:#fff;--aqdd-default-restore-button-surface:#0369a1;--aqdd-default-restore-button-hover-surface:#075985}:where([data-aqdd-drop-placeholder]){--aqdd-default-drop-placeholder-color:#075985;--aqdd-default-drop-placeholder-surface:#f0f9ffe6;--aqdd-default-drop-placeholder-target-surface:#bae6fd}:where(.dark [data-aqdd-layout],.dark [data-aqdd-panel]){--aqdd-default-panel-surface:#0f172acc;--aqdd-default-panel-border:#334155;--aqdd-default-panel-title-color:#e2e8f0;--aqdd-default-header-button-color:#94a3b8;--aqdd-default-header-button-hover-color:#f1f5f9;--aqdd-default-header-button-hover-surface:#334155;--aqdd-default-header-close-hover-color:#fca5a5;--aqdd-default-custom-badge-color:#fdba74;--aqdd-default-custom-badge-surface:#431407}:where(.dark [data-aqdd-panel][data-maximized]){--aqdd-default-panel-surface:#0f172af2}:where(.dark [data-aqdd-drop-placeholder]){--aqdd-default-drop-placeholder-color:#bae6fd;--aqdd-default-drop-placeholder-surface:#082f49e6;--aqdd-default-drop-placeholder-target-surface:#075985}:where([data-aqdd-panel],[data-aqdd-hidden-panels],[data-aqdd-empty-column],[data-aqdd-hidden-panel-stand-in]){border-color:var(--aqdd-panel-border,var(--aqdd-default-panel-border));background-color:var(--aqdd-panel-surface,var(--aqdd-default-panel-surface))}:where([data-aqdd-hidden-panels],[data-aqdd-empty-column],[data-aqdd-hidden-panel-stand-in]){color:var(--aqdd-panel-title-color,var(--aqdd-default-panel-title-color))}:where([data-aqdd-restore-panel]){color:var(--aqdd-restore-button-color,var(--aqdd-default-restore-button-color));background-color:var(--aqdd-restore-button-surface,var(--aqdd-default-restore-button-surface))}:where([data-aqdd-restore-panel]:hover){background-color:var(--aqdd-restore-button-hover-surface,var(--aqdd-default-restore-button-hover-surface))}:where([data-aqdd-drop-placeholder=shown],[data-aqdd-drop-placeholder=target]){color:var(--aqdd-drop-placeholder-color,var(--aqdd-default-drop-placeholder-color));border-color:var(--aqdd-drop-placeholder-color,var(--aqdd-default-drop-placeholder-color));background-color:var(--aqdd-drop-placeholder-surface,var(--aqdd-default-drop-placeholder-surface))}:where([data-aqdd-drop-placeholder=target]){background-color:var(--aqdd-drop-placeholder-target-surface,var(--aqdd-default-drop-placeholder-target-surface))}:where([data-aqdd-panel-header]){-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;display:flex}:where([data-aqdd-panel-title]){text-overflow:ellipsis;white-space:nowrap;min-inline-size:min(100%,6em);color:var(--aqdd-panel-title-color,var(--aqdd-default-panel-title-color));flex:6em;overflow:hidden}:where([data-aqdd-panel-controls]),:where([data-aqdd-panel-buttons]){flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.25rem;min-inline-size:0;display:flex}:where([data-aqdd-panel-controls]){margin-inline-start:auto}:where([data-aqdd-panel-buttons]){opacity:0;transition:opacity .15s}:where([data-aqdd-panel]:hover [data-aqdd-panel-buttons]),:where([data-aqdd-panel-buttons]:focus-within){opacity:1}@media (hover:none){:where([data-aqdd-panel-buttons]){opacity:1}}:where([data-aqdd-panel-action]){cursor:pointer;color:var(--aqdd-header-button-color,var(--aqdd-default-header-button-color))}:where([data-aqdd-panel-action]:hover){color:var(--aqdd-header-button-hover-color,var(--aqdd-default-header-button-hover-color));background-color:var(--aqdd-header-button-hover-surface,var(--aqdd-default-header-button-hover-surface))}:where([data-aqdd-panel-action=close]:hover){color:var(--aqdd-header-button-hover-color,var(--aqdd-default-header-close-hover-color))}:where([data-aqdd-custom-badge]),:where([data-aqdd-hidden-panel-badge]),:where([data-aqdd-drag-mode=custom] [data-aqdd-panel-action=drag-mode]){color:var(--aqdd-custom-badge-color,var(--aqdd-default-custom-badge-color));background-color:var(--aqdd-custom-badge-surface,var(--aqdd-default-custom-badge-surface))}:where([data-aqdd-panel-action][aria-disabled=true]){cursor:not-allowed;color:var(--aqdd-header-button-color,var(--aqdd-default-header-button-color));background-color:#0000}:where([data-aqdd-panel-action][aria-disabled=true]>svg){opacity:.382}@media (forced-colors:active){:where([data-aqdd-drag-mode=custom] [data-aqdd-panel-action=drag-mode]){forced-color-adjust:none;color:highlighttext;background-color:highlight}:where([data-aqdd-panel-action][aria-disabled=true]){color:graytext}}:where([data-aqdd-announcer]){clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.resize-enabled-column{width:var(--column-width,350px);flex-grow:0;flex-shrink:0}.auto-width-column{flex:1}.resizing-cursor{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.column-resizing{opacity:.8;transition:opacity .2s}.column-resizing-active{opacity:1;transition:none;box-shadow:0 0 0 2px #3b82f680}body.resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.custom-dragging,body.custom-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}body.custom-dragging :before,body.custom-dragging :after{cursor:grabbing!important}.panel-draggable[data-dragging=true]{opacity:.2;transition:transform 1s,opacity 1s,box-shadow 1s;transform:rotate(1deg);box-shadow:0 0 0 2px #60a5fa80}.panel.is-moving *{overflow:hidden!important}.panel-with-placeholder[data-panel-hidden=true]{opacity:0;height:0!important;margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:0!important}[data-drop-zone=true]>.panel-with-placeholder{margin-top:0;transition:margin .2s}[data-drop-zone=true]>.panel-with-placeholder:not([data-panel-hidden=true])~.panel-with-placeholder:not([data-panel-hidden=true]){margin-top:1rem}.panel-scroll-area{scrollbar-width:thin;scrollbar-color:#0f172a40 transparent}.panel-scroll-area:hover{scrollbar-color:#0f172a59 transparent}.panel-scroll-area::-webkit-scrollbar{width:6px}.panel-scroll-area::-webkit-scrollbar-track{background:0 0}.panel-scroll-area::-webkit-scrollbar-thumb{background-color:#0f172a40;border-radius:9999px}.panel-scroll-area:hover::-webkit-scrollbar-thumb{background-color:#0f172a59}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){:where([data-aqdd-panel-buttons]),.column-resizing,.panel-draggable[data-dragging=true],[data-drop-zone=true]>.panel-with-placeholder{transition:none}}.resize-handle{cursor:col-resize;z-index:10;touch-action:none;justify-content:center;align-items:center;width:12px;transition:background-color .2s;display:flex;position:absolute;top:0;bottom:0}.resize-handle.right{right:-6px}.resize-handle.left{left:-6px}.resize-handle.resizing,.resize-handle:hover{background-color:#0000000d}.resize-handle-bar{background-color:#6366f180;border-radius:999px;width:2px;height:40px}.resize-handle.resizing .resize-handle-bar{background-color:#6366f1e6;box-shadow:0 0 6px #6366f199}.resize-handle-debug-info{color:#fff;white-space:nowrap;pointer-events:none;background:#1e40afd9;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.resize-handle{transition:none}}.column-debug-size{color:#fff;pointer-events:none;background:#1e40afd9;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;top:8px;right:12px}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.-right-1{right:calc(var(--spacing) * -1)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-4{right:calc(var(--spacing) * 4)}.right-24{right:calc(var(--spacing) * 24)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-4{bottom:calc(var(--spacing) * 4)}.left-0{left:calc(var(--spacing) * 0)}.left-2{left:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.col-1{grid-column:1}.col-2{grid-column:2}.col-3{grid-column:3}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-1{margin-left:calc(var(--spacing) * 1)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-0{height:calc(var(--spacing) * 0)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-\[120px\]{height:120px}.h-full{height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-full{width:100%}.w-px{width:1px}.max-w-full{max-width:100%}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-\[2rem\]{min-width:2rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.scale-\[1\.02\]{scale:1.02}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-blue-300{border-color:var(--color-blue-300)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-700{border-color:var(--color-gray-700)}.border-red-300{border-color:var(--color-red-300)}.border-red-500{border-color:var(--color-red-500)}.border-red-700{border-color:var(--color-red-700)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.bg-black\/80{background-color:#000c}@supports (color:color-mix(in lab, red, red)){.bg-black\/80{background-color:color-mix(in oklab, var(--color-black) 80%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\/90{background-color:#3080ffe6}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/90{background-color:color-mix(in oklab, var(--color-blue-500) 90%, transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-100\/10{background-color:#f3f4f61a}@supports (color:color-mix(in lab, red, red)){.bg-gray-100\/10{background-color:color-mix(in oklab, var(--color-gray-100) 10%, transparent)}}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-500\/90{background-color:#6a7282e6}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/90{background-color:color-mix(in oklab, var(--color-gray-500) 90%, transparent)}}.bg-gray-800{background-color:var(--color-gray-800)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-100\/20{background-color:#ffe2e233}@supports (color:color-mix(in lab, red, red)){.bg-red-100\/20{background-color:color-mix(in oklab, var(--color-red-100) 20%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/90{background-color:#fb2c36e6}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/90{background-color:color-mix(in oklab, var(--color-red-500) 90%, transparent)}}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-slate-100\/80{background-color:#f1f5f9cc}@supports (color:color-mix(in lab, red, red)){.bg-slate-100\/80{background-color:color-mix(in oklab, var(--color-slate-100) 80%, transparent)}}.bg-slate-300{background-color:var(--color-slate-300)}.bg-white{background-color:var(--color-white)}.bg-white\/80{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.bg-white\/80{background-color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-white\/90{background-color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.bg-yellow-500\/90{background-color:#edb200e6}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/90{background-color:color-mix(in oklab, var(--color-yellow-500) 90%, transparent)}}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-8{padding:calc(var(--spacing) * 8)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pl-2{padding-left:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-black{color:var(--color-black)}.text-blue-300{color:var(--color-blue-300)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-cyan-300{color:var(--color-cyan-300)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-green-300{color:var(--color-green-300)}.text-orange-300{color:var(--color-orange-300)}.text-orange-600{color:var(--color-orange-600)}.text-purple-300{color:var(--color-purple-300)}.text-red-600{color:var(--color-red-600)}.text-slate-300{color:var(--color-slate-300)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-white{color:var(--color-white)}.text-yellow-300{color:var(--color-yellow-300)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.hover\:border-blue-300:hover{border-color:var(--color-blue-300)}.hover\:border-blue-500:hover{border-color:var(--color-blue-500)}.hover\:border-green-300:hover{border-color:var(--color-green-300)}.hover\:border-orange-300:hover{border-color:var(--color-orange-300)}.hover\:border-red-300:hover{border-color:var(--color-red-300)}.hover\:bg-blue-50:hover{background-color:var(--color-blue-50)}.hover\:bg-blue-200:hover{background-color:var(--color-blue-200)}.hover\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-50:hover{background-color:var(--color-green-50)}.hover\:bg-orange-50:hover{background-color:var(--color-orange-50)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-200:hover{background-color:var(--color-red-200)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:text-green-600:hover{color:var(--color-green-600)}.hover\:text-orange-600:hover{color:var(--color-orange-600)}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}@media (prefers-reduced-motion:no-preference){.motion-safe\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:duration-200{--tw-duration:.2s;transition-duration:.2s}.motion-safe\:duration-300{--tw-duration:.3s;transition-duration:.3s}@media (hover:hover){.motion-safe\:hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@keyframes pulse{50%{opacity:.5}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiquants/drag-drop-panels",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Reusable drag-and-drop panel layout components and utilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"dist",
|
|
32
32
|
"README.md",
|
|
33
|
+
"CHANGELOG.md",
|
|
33
34
|
"LICENSE"
|
|
34
35
|
],
|
|
35
36
|
"engines": {
|