alembic 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -22
  3. data/app/assets/builds/alembic/page_builder.css +1 -1
  4. data/app/assets/builds/alembic/page_builder.js +3 -3
  5. data/app/controllers/alembic/application_controller.rb +0 -16
  6. data/app/controllers/alembic/flows_controller.rb +6 -90
  7. data/app/controllers/alembic/manage/base_controller.rb +1 -0
  8. data/app/controllers/alembic/manage/flows_controller.rb +7 -44
  9. data/app/controllers/alembic/manage/pages_controller.rb +8 -1
  10. data/app/controllers/alembic/manage/previews_controller.rb +4 -19
  11. data/app/controllers/alembic/pages_controller.rb +19 -0
  12. data/app/controllers/concerns/alembic/summarizes.rb +38 -0
  13. data/app/helpers/alembic/pages_helper.rb +39 -0
  14. data/app/models/alembic/flow/definition_summary.rb +9 -0
  15. data/app/models/alembic/flow/run_summary.rb +10 -0
  16. data/app/models/alembic/flow/summaries.rb +36 -5
  17. data/app/models/alembic/flow/summary_version.rb +1 -1
  18. data/app/models/alembic/outputs/grouped.rb +1 -1
  19. data/app/models/alembic/outputs/percentage.rb +1 -1
  20. data/app/models/alembic/outputs/weighted_sum.rb +1 -1
  21. data/app/models/alembic/page/drawing.rb +17 -0
  22. data/app/models/alembic/page/options.rb +46 -0
  23. data/app/models/alembic/page/version.rb +13 -0
  24. data/app/models/alembic/page.rb +32 -0
  25. data/app/views/alembic/flows/complete.html.erb +3 -3
  26. data/app/views/alembic/flows/show.html.erb +6 -6
  27. data/app/views/alembic/manage/flows/edit.html.erb +10 -10
  28. data/app/views/alembic/manage/pages/_block_content.html.erb +1 -1
  29. data/app/views/alembic/manage/pages/index.html.erb +4 -1
  30. data/app/views/alembic/manage/pages/show.html.erb +7 -1
  31. data/app/views/alembic/pages/show.html.erb +5 -0
  32. data/config/routes.rb +8 -19
  33. data/db/migrate/20260825224538_remove_published_version_from_alembic_diagnostics.rb +21 -1
  34. data/db/migrate/20260922120000_add_slug_to_alembic_pages.rb +6 -0
  35. data/db/migrate/20260922130000_create_alembic_page_versions.rb +16 -0
  36. data/db/migrate/20260924220000_move_flows_onto_easy_flow.rb +166 -0
  37. data/lib/alembic/engine.rb +2 -11
  38. data/lib/alembic/version.rb +1 -1
  39. data/lib/alembic.rb +30 -6
  40. metadata +35 -71
  41. data/app/assets/builds/alembic/canvas.js +0 -1
  42. data/app/controllers/alembic/manage/canvas_controller.rb +0 -183
  43. data/app/controllers/alembic/manage/definitions_controller.rb +0 -15
  44. data/app/controllers/alembic/manage/versions_controller.rb +0 -22
  45. data/app/controllers/concerns/alembic/manage/draws_canvas.rb +0 -35
  46. data/app/javascript/alembic/canvas/Canvas.jsx +0 -197
  47. data/app/javascript/alembic/canvas/Connector.jsx +0 -30
  48. data/app/javascript/alembic/canvas/ConnectorLayer.jsx +0 -31
  49. data/app/javascript/alembic/canvas/Control.jsx +0 -42
  50. data/app/javascript/alembic/canvas/Inspector.jsx +0 -44
  51. data/app/javascript/alembic/canvas/Panel.jsx +0 -67
  52. data/app/javascript/alembic/canvas/Placeholder.jsx +0 -24
  53. data/app/javascript/alembic/canvas/Port.jsx +0 -16
  54. data/app/javascript/alembic/canvas/Records.jsx +0 -34
  55. data/app/javascript/alembic/canvas/StepCard.jsx +0 -57
  56. data/app/javascript/alembic/canvas/Toolbar.jsx +0 -19
  57. data/app/javascript/alembic/canvas/TypePicker.jsx +0 -21
  58. data/app/javascript/alembic/canvas/changes.js +0 -5
  59. data/app/javascript/alembic/canvas/choices.js +0 -4
  60. data/app/javascript/alembic/canvas/flow.js +0 -7
  61. data/app/javascript/alembic/canvas/flowSender.js +0 -22
  62. data/app/javascript/alembic/canvas/ids.js +0 -7
  63. data/app/javascript/alembic/canvas/rows.js +0 -2
  64. data/app/javascript/alembic/canvas/styles.js +0 -3
  65. data/app/javascript/alembic/canvas/useConnectors.js +0 -75
  66. data/app/javascript/alembic/canvas/useFlow.js +0 -17
  67. data/app/javascript/alembic/canvas.jsx +0 -13
  68. data/app/models/alembic/asked.rb +0 -3
  69. data/app/models/alembic/choice.rb +0 -7
  70. data/app/models/alembic/flow/admission.rb +0 -19
  71. data/app/models/alembic/flow/canvas.rb +0 -167
  72. data/app/models/alembic/flow/change.rb +0 -18
  73. data/app/models/alembic/flow/condition.rb +0 -24
  74. data/app/models/alembic/flow/definition.rb +0 -132
  75. data/app/models/alembic/flow/digest.rb +0 -116
  76. data/app/models/alembic/flow/document.rb +0 -131
  77. data/app/models/alembic/flow/drawing.rb +0 -15
  78. data/app/models/alembic/flow/edge.rb +0 -9
  79. data/app/models/alembic/flow/edit_history.rb +0 -75
  80. data/app/models/alembic/flow/layout.rb +0 -88
  81. data/app/models/alembic/flow/name.rb +0 -15
  82. data/app/models/alembic/flow/node.rb +0 -5
  83. data/app/models/alembic/flow/output.rb +0 -23
  84. data/app/models/alembic/flow/progress/kept.rb +0 -38
  85. data/app/models/alembic/flow/progress/loose.rb +0 -43
  86. data/app/models/alembic/flow/progress.rb +0 -11
  87. data/app/models/alembic/flow/registry.rb +0 -25
  88. data/app/models/alembic/flow/run.rb +0 -54
  89. data/app/models/alembic/flow/runner.rb +0 -65
  90. data/app/models/alembic/flow/settings.rb +0 -80
  91. data/app/models/alembic/flow/start.rb +0 -13
  92. data/app/models/alembic/flow/step.rb +0 -42
  93. data/app/models/alembic/flow/step_type/declaration.rb +0 -118
  94. data/app/models/alembic/flow/step_type.rb +0 -69
  95. data/app/models/alembic/flow/switch.rb +0 -17
  96. data/app/models/alembic/flow/terminal.rb +0 -13
  97. data/app/models/alembic/flow/validator.rb +0 -171
  98. data/app/models/alembic/flow/version.rb +0 -26
  99. data/app/models/alembic/flow/violation.rb +0 -9
  100. data/app/models/alembic/flow.rb +0 -44
  101. data/app/models/alembic/runner.rb +0 -13
  102. data/app/models/alembic/steps/question.rb +0 -52
  103. data/app/views/alembic/flow/steps/_choosing.html.erb +0 -9
  104. data/app/views/alembic/flows/step.html.erb +0 -27
  105. data/app/views/alembic/manage/definitions/edit.html.erb +0 -13
  106. data/app/views/alembic/manage/flows/index.html.erb +0 -32
  107. data/app/views/alembic/manage/flows/show.html.erb +0 -26
  108. data/app/views/alembic/manage/versions/index.html.erb +0 -41
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 55017b8bfc074b743ba32a6f00cc86d494cf92a561ebdacc2af0ed4d52f9e668
4
- data.tar.gz: 284b1694b63816c270c95e50bb7cb9b4cdb20ecdd9c59435a57220af34e6abf2
3
+ metadata.gz: 0a28b9683aee21510ccc84055b1f946263171af250b924b7fa16b89fe758ae4b
4
+ data.tar.gz: f64da9c1a64cc8a20fd48aa05e773973fc1eee8d3a8ee222d3d4de5de9d21154
5
5
  SHA512:
6
- metadata.gz: f6b17305a5bbe69f8ba3161f59152869d0b2c3218c51f69e7a1e63dc4519b191255375d7fdb911c45902ef1bb1b1b79ef37cfc24af5fce3fba4f82e2f66ff33e
7
- data.tar.gz: 6518af63bfc9d09a03ff507fa3270f02990e234df3e66e09c4e02c1ef4f1a3dd7b0ea7a5440e59daa8b5c81392bea50f7a2d9d334d3e8684ca0dfb7aae4f80a3
6
+ metadata.gz: fffcf2c82312ff28a404fe1d4569572b9908a1f2b9a30295efaf3c869e246fdcf6258125b5295b2b400898f8b0ffb075ca000b0c33686dadf7d7b0d2d19918fd
7
+ data.tar.gz: 6d71eaad3a26a0c2e77a033a16ff6fb791af402a2ce04efaca9c731c84eb53d86253f003d8e4b44b57f3f9de7682e4ad7dadcde8a9278111a653e6137fb55ef0
data/README.md CHANGED
@@ -1,20 +1,18 @@
1
1
  # Alembic
2
2
 
3
- A diagnostics engine built on a general-purpose flow layer: typed steps joined
4
- into a graph, walked by the host application, and summarised separately.
3
+ A diagnostics engine built on [easy_flow](https://github.com/DYB-Development/easy_flow):
4
+ easy_flow stores and runs the flows, and Alembic works out a summary of each
5
+ finished run and builds pages.
5
6
 
6
7
  ## Usage
7
8
 
8
- Alembic ships a builder for authoring flows and a small runtime for walking
9
- them. The flow layer knows nothing about diagnostics — it is step-typed, and a
10
- host application registers whatever step types it needs.
9
+ easy_flow owns the flow layer: the flow document, step types, runs, versions,
10
+ the canvas editor, and the visitor and admin pages. Its README documents that
11
+ interface, including registering your own step types.
11
12
 
12
- **[docs/vocabulary.md](docs/vocabulary.md)** defines every word the flow layer
13
- uses, and says which word to use where two could mean the same thing.
14
-
15
- **[docs/consuming.md](docs/consuming.md)** documents that interface: the flow
16
- document format, the step-type DSL, driving a run, validation, and the summary
17
- layer. Read it if you are embedding Alembic, or writing your own step types.
13
+ **[docs/consuming.md](docs/consuming.md)** documents what Alembic adds:
14
+ installing it, the settings a host gives it, the addresses it serves, the
15
+ summary layer and its output types, and deciding who may see a flow.
18
16
 
19
17
  ## Installation
20
18
  Add this line to your application's Gemfile:
@@ -33,6 +31,21 @@ Or install it yourself as:
33
31
  $ gem install alembic
34
32
  ```
35
33
 
34
+ Alembic's tables refer to easy_flow's, so install easy_flow's migrations first.
35
+ They give every flow a host, and Alembic's flows belong to the host named
36
+ `alembic`:
37
+ ```bash
38
+ $ bin/rails easy_flow:install:migrations
39
+ $ bin/rails alembic:install:migrations
40
+ $ bin/rails db:migrate
41
+ ```
42
+
43
+ Mount Alembic only. It mounts easy_flow's admin pages under its own
44
+ `manage/flows` address:
45
+ ```ruby
46
+ mount Alembic::Engine => "/alembic"
47
+ ```
48
+
36
49
  ## Styling
37
50
 
38
51
  Alembic's views are written in Tailwind utility classes, and they render through
@@ -72,31 +85,32 @@ Remove `@import "../builds/tailwind/alembic";` from
72
85
 
73
86
  Finally, the engine has to render inside a layout that links your compiled CSS.
74
87
  Point `Alembic.layout` (visitor pages) and `Alembic.admin_layout` (the builder)
75
- at your own layouts:
88
+ at your own layouts. They set up the easy_flow host named `alembic` and no other
89
+ host:
76
90
 
77
91
  ```ruby
78
92
  Alembic.layout = "application"
79
93
  Alembic.admin_layout = "admin"
80
94
  ```
81
95
 
82
- ## The flow canvas
96
+ ## The page builder bundle
83
97
 
84
- The builder's flow canvas is a React application — DOM nodes laid out on a
85
- grid with an SVG connector layer, not a graph library — built here and shipped
86
- as a committed bundle — a gem cannot run a JavaScript build on the host's
87
- machine. Host applications need no Node toolchain and no configuration; the
88
- bundle is served by the asset pipeline like any other engine asset.
98
+ The page builder is a React application built here and shipped as a committed
99
+ bundle, since a gem cannot run a JavaScript build on the host's machine. Host
100
+ applications need no Node toolchain; the bundle is served by the asset pipeline
101
+ like any other engine asset. The flow canvas comes from easy_flow.
89
102
 
90
- Working on the canvas source in `app/javascript/alembic` means rebuilding it:
103
+ Working on the page builder source in `app/javascript/alembic` means rebuilding
104
+ it:
91
105
 
92
106
  ```bash
93
107
  $ npm install
94
108
  $ npm run build
95
109
  ```
96
110
 
97
- That writes `app/assets/builds/alembic/canvas.js` and its stylesheet, both of
98
- which are committed. CI rebuilds the bundle and fails if it differs from what
99
- is committed, so the artifact cannot drift away from its source.
111
+ That writes `app/assets/builds/alembic/page_builder.js` and its stylesheet, both
112
+ of which are committed. CI rebuilds the bundle and fails if it differs from what
113
+ is committed.
100
114
 
101
115
  ## Contributing
102
116
  Contribution directions go here.
@@ -1 +1 @@
1
- .react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}@media(hover:none){.react-grid-item>.react-resizable-handle{opacity:1}}[data-block-handle]{cursor:grab;touch-action:none;line-height:1;user-select:none}[data-block-handle]:active{cursor:grabbing}[data-block]{touch-action:pan-y}
1
+ .react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}@media(hover:none){.react-grid-item>.react-resizable-handle{opacity:1}}[data-block]{touch-action:pan-y}[data-block]:hover,[data-block]:focus-within{z-index:2}.ks-remove-target{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:50;display:grid;place-items:center;width:3rem;height:3rem;background-color:Canvas;border:2px dashed currentColor;border-radius:9999px;opacity:.9;user-select:none}
@@ -1,5 +1,5 @@
1
- (()=>{var cs=Object.create;var on=Object.defineProperty;var us=Object.getOwnPropertyDescriptor;var ds=Object.getOwnPropertyNames;var fs=Object.getPrototypeOf,ps=Object.prototype.hasOwnProperty;var Er=(t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(r){throw n=[r],r}};var Mt=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(n){throw e=0,n}},zr=(t,e)=>{for(var n in e)on(t,n,{get:e[n],enumerable:!0})},Or=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ds(e))!ps.call(t,o)&&o!==n&&on(t,o,{get:()=>e[o],enumerable:!(r=us(e,o))||r.enumerable});return t};var sn=(t,e,n)=>(n=t!=null?cs(fs(t)):{},Or(e||!t||!t.__esModule?on(n,"default",{value:t,enumerable:!0}):n,t)),ge=t=>Or(on({},"__esModule",{value:!0}),t);var kn={};zr(kn,{createPortal:()=>hs,createRoot:()=>On,default:()=>Te,flushSync:()=>gs,hydrateRoot:()=>ms,preconnect:()=>ys,prefetchDNS:()=>bs,preinit:()=>vs,preinitModule:()=>ws,preload:()=>Ss,preloadModule:()=>xs,requestFormReset:()=>Ds,unstable_batchedUpdates:()=>Cs,useFormState:()=>Rs,useFormStatus:()=>Es,version:()=>zs});var kr,Te,hs,On,gs,ms,ys,bs,vs,ws,Ss,xs,Ds,Cs,Rs,Es,zs,Ce=Er(()=>{kr=globalThis.ReactDOM,Te=kr,{createPortal:hs,createRoot:On,flushSync:gs,hydrateRoot:ms,preconnect:ys,prefetchDNS:bs,preinit:vs,preinitModule:ws,preload:Ss,preloadModule:xs,requestFormReset:Ds,unstable_batchedUpdates:Cs,useFormState:Rs,useFormStatus:Es,version:zs}=kr});var ne={};zr(ne,{Children:()=>je,Component:()=>Be,Fragment:()=>Os,PureComponent:()=>ks,StrictMode:()=>Ps,Suspense:()=>Ms,cloneElement:()=>He,createContext:()=>Ns,createElement:()=>Pn,createRef:()=>Ls,default:()=>u,forwardRef:()=>_s,isValidElement:()=>Ts,lazy:()=>js,memo:()=>Bs,startTransition:()=>Hs,useCallback:()=>U,useContext:()=>As,useDebugValue:()=>Ws,useDeferredValue:()=>Is,useEffect:()=>qt,useId:()=>qs,useImperativeHandle:()=>Ys,useLayoutEffect:()=>Xs,useMemo:()=>Ct,useReducer:()=>$s,useRef:()=>q,useState:()=>at,useSyncExternalStore:()=>Gs,useTransition:()=>Fs});var Pr,u,je,Be,Os,ks,Ps,Ms,He,Ns,Pn,Ls,_s,Ts,js,Bs,Hs,U,As,Ws,Is,qt,qs,Ys,Xs,Ct,$s,q,at,Gs,Fs,et=Er(()=>{Pr=globalThis.React,u=Pr,{Children:je,Component:Be,Fragment:Os,PureComponent:ks,StrictMode:Ps,Suspense:Ms,cloneElement:He,createContext:Ns,createElement:Pn,createRef:Ls,forwardRef:_s,isValidElement:Ts,lazy:js,memo:Bs,startTransition:Hs,useCallback:U,useContext:As,useDebugValue:Ws,useDeferredValue:Is,useEffect:qt,useId:qs,useImperativeHandle:Ys,useLayoutEffect:Xs,useMemo:Ct,useReducer:$s,useRef:q,useState:at,useSyncExternalStore:Gs,useTransition:Fs}=Pr});var no=Mt((dn,eo)=>{(function(t,e){typeof dn=="object"&&typeof eo<"u"?e(dn):typeof define=="function"&&define.amd?define(["exports"],e):(t=typeof globalThis<"u"?globalThis:t||self,e(t["fast-equals"]={}))})(dn,(function(t){"use strict";function e(f){return function(P,y,x,D,j,F,A){return f(P,y,A)}}function n(f){return function(P,y,x,D){if(!P||!y||typeof P!="object"||typeof y!="object")return f(P,y,x,D);var j=D.get(P),F=D.get(y);if(j&&F)return j===y&&F===P;D.set(P,y),D.set(y,P);var A=f(P,y,x,D);return D.delete(P),D.delete(y),A}}function r(f,m){var P={};for(var y in f)P[y]=f[y];for(var y in m)P[y]=m[y];return P}function o(f){return f.constructor===Object||f.constructor==null}function a(f){return typeof f.then=="function"}function s(f,m){return f===m||f!==f&&m!==m}var i="[object Arguments]",l="[object Boolean]",c="[object Date]",p="[object RegExp]",d="[object Map]",g="[object Number]",z="[object Object]",w="[object Set]",k="[object String]",S=Object.prototype.toString;function b(f){var m=f.areArraysEqual,P=f.areDatesEqual,y=f.areMapsEqual,x=f.areObjectsEqual,D=f.areRegExpsEqual,j=f.areSetsEqual,F=f.createIsNestedEqual,A=F(st);function st(M,L,pt){if(M===L)return!0;if(!M||!L||typeof M!="object"||typeof L!="object")return M!==M&&L!==L;if(o(M)&&o(L))return x(M,L,A,pt);var X=Array.isArray(M),H=Array.isArray(L);if(X||H)return X===H&&m(M,L,A,pt);var $=S.call(M);return $!==S.call(L)?!1:$===c?P(M,L,A,pt):$===p?D(M,L,A,pt):$===d?y(M,L,A,pt):$===w?j(M,L,A,pt):$===z||$===i?a(M)||a(L)?!1:x(M,L,A,pt):$===l||$===g||$===k?s(M.valueOf(),L.valueOf()):!1}return st}function K(f,m,P,y){var x=f.length;if(m.length!==x)return!1;for(;x-- >0;)if(!P(f[x],m[x],x,x,f,m,y))return!1;return!0}var Z=n(K);function it(f,m){return s(f.valueOf(),m.valueOf())}function ut(f,m,P,y){var x=f.size===m.size;if(!x)return!1;if(!f.size)return!0;var D={},j=0;return f.forEach(function(F,A){if(x){var st=!1,M=0;m.forEach(function(L,pt){!st&&!D[M]&&(st=P(A,pt,j,M,f,m,y)&&P(F,L,A,pt,f,m,y))&&(D[M]=!0),M++}),j++,x=st}}),x}var lt=n(ut),ot="_owner",nt=Object.prototype.hasOwnProperty;function ct(f,m,P,y){var x=Object.keys(f),D=x.length;if(Object.keys(m).length!==D)return!1;for(var j;D-- >0;){if(j=x[D],j===ot){var F=!!f.$$typeof,A=!!m.$$typeof;if((F||A)&&F!==A)return!1}if(!nt.call(m,j)||!P(f[j],m[j],j,j,f,m,y))return!1}return!0}var Rt=n(ct);function At(f,m){return f.source===m.source&&f.flags===m.flags}function C(f,m,P,y){var x=f.size===m.size;if(!x)return!1;if(!f.size)return!0;var D={};return f.forEach(function(j,F){if(x){var A=!1,st=0;m.forEach(function(M,L){!A&&!D[st]&&(A=P(j,M,F,L,f,m,y))&&(D[st]=!0),st++}),x=A}}),x}var R=n(C),Y=Object.freeze({areArraysEqual:K,areDatesEqual:it,areMapsEqual:ut,areObjectsEqual:ct,areRegExpsEqual:At,areSetsEqual:C,createIsNestedEqual:e}),Ot=Object.freeze({areArraysEqual:Z,areDatesEqual:it,areMapsEqual:lt,areObjectsEqual:Rt,areRegExpsEqual:At,areSetsEqual:R,createIsNestedEqual:e}),xt=b(Y);function Et(f,m){return xt(f,m,void 0)}var ue=b(r(Y,{createIsNestedEqual:function(){return s}}));function de(f,m){return ue(f,m,void 0)}var Lt=b(Ot);function Vt(f,m){return Lt(f,m,new WeakMap)}var Kt=b(r(Ot,{createIsNestedEqual:function(){return s}}));function fe(f,m){return Kt(f,m,new WeakMap)}function pe(f){return b(r(Y,f(Y)))}function he(f){var m=b(r(Ot,f(Ot)));return(function(P,y,x){return x===void 0&&(x=new WeakMap),m(P,y,x)})}t.circularDeepEqual=Vt,t.circularShallowEqual=fe,t.createCustomCircularEqual=he,t.createCustomEqual=pe,t.deepEqual=Et,t.sameValueZeroEqual=s,t.shallowEqual=de,Object.defineProperty(t,"__esModule",{value:!0})}))});var oo=Mt((Ml,ro)=>{"use strict";var ya="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";ro.exports=ya});var lo=Mt((Nl,io)=>{"use strict";var ba=oo();function so(){}function ao(){}ao.resetWarningCache=so;io.exports=function(){function t(r,o,a,s,i,l){if(l!==ba){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}t.isRequired=t;function e(){return t}var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:ao,resetWarningCache:so};return n.PropTypes=n,n}});var me=Mt((Tl,co)=>{co.exports=lo()();var Ll,_l});var So=Mt(($l,tr)=>{function wo(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(e=0;e<o;e++)t[e]&&(n=wo(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function vo(){for(var t,e,n=0,r="",o=arguments.length;n<o;n++)(t=arguments[n])&&(e=wo(t))&&(r&&(r+=" "),r+=e);return r}tr.exports=vo,tr.exports.clsx=vo});var No=Mt((Gl,Mo)=>{"use strict";var Ia=Object.create,hn=Object.defineProperty,qa=Object.getOwnPropertyDescriptor,Ya=Object.getOwnPropertyNames,Xa=Object.getPrototypeOf,$a=Object.prototype.hasOwnProperty,Ga=(t,e)=>{for(var n in e)hn(t,n,{get:e[n],enumerable:!0})},zo=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ya(e))!$a.call(t,o)&&o!==n&&hn(t,o,{get:()=>e[o],enumerable:!(r=qa(e,o))||r.enumerable});return t},Pe=(t,e,n)=>(n=t!=null?Ia(Xa(t)):{},zo(e||!t||!t.__esModule?hn(n,"default",{value:t,enumerable:!0}):n,t)),Fa=t=>zo(hn({},"__esModule",{value:!0}),t),Oo={};Ga(Oo,{DraggableCore:()=>ve,default:()=>gn});Mo.exports=Fa(Oo);var pn=Pe((et(),ge(ne))),V=Pe(me()),Ua=Pe((Ce(),ge(kn))),Va=So();function lr(t,e){for(let n=0,r=t.length;n<r;n++)if(e.apply(e,[t[n],n,t]))return t[n]}function xo(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Function]"}function Ge(t){return typeof t=="number"&&!isNaN(t)}function vt(t){return parseInt(t,10)}function ke(t,e,n){if(t[e])return new Error(`Invalid prop ${e} passed to ${n} - do not set this, set it on the child.`)}var er=["Moz","Webkit","O","ms"];function Ka(t="transform"){var e,n;if(typeof window>"u")return"";let r=(n=(e=window.document)==null?void 0:e.documentElement)==null?void 0:n.style;if(!r||t in r)return"";for(let o=0;o<er.length;o++)if(ko(t,er[o])in r)return er[o];return""}function ko(t,e){return e?`${e}${Za(t)}`:t}function Za(t){let e="",n=!0;for(let r=0;r<t.length;r++)n?(e+=t[r].toUpperCase(),n=!1):t[r]==="-"?n=!0:e+=t[r];return e}var Ja=Ka(),nr="";function Qa(t,e){var n;nr||(nr=(n=lr(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(o){return xo(t[o])}))!=null?n:"");let r=t[nr];return xo(r)?!!r.call(t,e):!1}function Do(t,e,n){let r=t;do{if(Qa(r,e))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function rr(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.addEventListener?t.addEventListener(e,a,o):t.attachEvent?t.attachEvent("on"+e,a):t["on"+e]=a}function be(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.removeEventListener?t.removeEventListener(e,a,o):t.detachEvent?t.detachEvent("on"+e,a):t["on"+e]=null}function ti(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=vt(n.borderTopWidth),e+=vt(n.borderBottomWidth),e}function ei(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=vt(n.borderLeftWidth),e+=vt(n.borderRightWidth),e}function ni(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=vt(n.paddingTop),e-=vt(n.paddingBottom),e}function ri(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=vt(n.paddingLeft),e-=vt(n.paddingRight),e}function oi(t,e,n){let o=e===e.ownerDocument.body?{left:0,top:0}:e.getBoundingClientRect(),a=(t.clientX+e.scrollLeft-o.left)/n,s=(t.clientY+e.scrollTop-o.top)/n;return{x:a,y:s}}function si(t,e){let n=Po(t,e,"px");return{[ko("transform",Ja)]:n}}function ai(t,e){return Po(t,e,"")}function Po({x:t,y:e},n,r){let o=`translate(${t}${r},${e}${r})`;if(n){let a=`${typeof n.x=="string"?n.x:n.x+r}`,s=`${typeof n.y=="string"?n.y:n.y+r}`;o=`translate(${a}, ${s})`+o}return o}function ii(t,e){return t.targetTouches&&lr(t.targetTouches,n=>e===n.identifier)||t.changedTouches&&lr(t.changedTouches,n=>e===n.identifier)}function li(t){if(t.targetTouches&&t.targetTouches[0])return t.targetTouches[0].identifier;if(t.changedTouches&&t.changedTouches[0])return t.changedTouches[0].identifier}function ci(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0}function ui(t,e){if(!t)return;let n=t.getElementById("react-draggable-style-el");if(!n){n=t.createElement("style"),n.type="text/css",n.id="react-draggable-style-el";let r=e??ci();r&&n.setAttribute("nonce",r),n.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
1
+ (()=>{var ms=Object.create;var sn=Object.defineProperty;var ys=Object.getOwnPropertyDescriptor;var bs=Object.getOwnPropertyNames;var vs=Object.getPrototypeOf,ws=Object.prototype.hasOwnProperty;var Er=(t,e,n)=>()=>{if(n)throw n[0];try{return t&&(e=t(t=0)),e}catch(r){throw n=[r],r}};var _t=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(n){throw e=0,n}},zr=(t,e)=>{for(var n in e)sn(t,n,{get:e[n],enumerable:!0})},kr=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of bs(e))!ws.call(t,o)&&o!==n&&sn(t,o,{get:()=>e[o],enumerable:!(r=ys(e,o))||r.enumerable});return t};var an=(t,e,n)=>(n=t!=null?ms(vs(t)):{},kr(e||!t||!t.__esModule?sn(n,"default",{value:t,enumerable:!0}):n,t)),ge=t=>kr(sn({},"__esModule",{value:!0}),t);var On={};zr(On,{createPortal:()=>xs,createRoot:()=>kn,default:()=>Be,flushSync:()=>Ss,hydrateRoot:()=>Ds,preconnect:()=>Cs,prefetchDNS:()=>Rs,preinit:()=>Es,preinitModule:()=>zs,preload:()=>ks,preloadModule:()=>Os,requestFormReset:()=>Ps,unstable_batchedUpdates:()=>Ms,useFormState:()=>Ls,useFormStatus:()=>Ns,version:()=>_s});var Or,Be,xs,kn,Ss,Ds,Cs,Rs,Es,zs,ks,Os,Ps,Ms,Ls,Ns,_s,Ce=Er(()=>{Or=globalThis.ReactDOM,Be=Or,{createPortal:xs,createRoot:kn,flushSync:Ss,hydrateRoot:Ds,preconnect:Cs,prefetchDNS:Rs,preinit:Es,preinitModule:zs,preload:ks,preloadModule:Os,requestFormReset:Ps,unstable_batchedUpdates:Ms,useFormState:Ls,useFormStatus:Ns,version:_s}=Or});var ie={};zr(ie,{Children:()=>je,Component:()=>He,Fragment:()=>Ts,PureComponent:()=>Bs,StrictMode:()=>js,Suspense:()=>Hs,cloneElement:()=>Ae,createContext:()=>As,createElement:()=>Pn,createRef:()=>Ws,default:()=>u,forwardRef:()=>Is,isValidElement:()=>qs,lazy:()=>Ys,memo:()=>Xs,startTransition:()=>$s,useCallback:()=>Z,useContext:()=>Gs,useDebugValue:()=>Fs,useDeferredValue:()=>Us,useEffect:()=>Ht,useId:()=>Vs,useImperativeHandle:()=>Ks,useLayoutEffect:()=>Zs,useMemo:()=>kt,useReducer:()=>Js,useRef:()=>M,useState:()=>st,useSyncExternalStore:()=>Qs,useTransition:()=>ta});var Pr,u,je,He,Ts,Bs,js,Hs,Ae,As,Pn,Ws,Is,qs,Ys,Xs,$s,Z,Gs,Fs,Us,Ht,Vs,Ks,Zs,kt,Js,M,st,Qs,ta,nt=Er(()=>{Pr=globalThis.React,u=Pr,{Children:je,Component:He,Fragment:Ts,PureComponent:Bs,StrictMode:js,Suspense:Hs,cloneElement:Ae,createContext:As,createElement:Pn,createRef:Ws,forwardRef:Is,isValidElement:qs,lazy:Ys,memo:Xs,startTransition:$s,useCallback:Z,useContext:Gs,useDebugValue:Fs,useDeferredValue:Us,useEffect:Ht,useId:Vs,useImperativeHandle:Ks,useLayoutEffect:Zs,useMemo:kt,useReducer:Js,useRef:M,useState:st,useSyncExternalStore:Qs,useTransition:ta}=Pr});var no=_t((fn,eo)=>{(function(t,e){typeof fn=="object"&&typeof eo<"u"?e(fn):typeof define=="function"&&define.amd?define(["exports"],e):(t=typeof globalThis<"u"?globalThis:t||self,e(t["fast-equals"]={}))})(fn,(function(t){"use strict";function e(d){return function(z,y,D,C,j,K,I){return d(z,y,I)}}function n(d){return function(z,y,D,C){if(!z||!y||typeof z!="object"||typeof y!="object")return d(z,y,D,C);var j=C.get(z),K=C.get(y);if(j&&K)return j===y&&K===z;C.set(z,y),C.set(y,z);var I=d(z,y,D,C);return C.delete(z),C.delete(y),I}}function r(d,m){var z={};for(var y in d)z[y]=d[y];for(var y in m)z[y]=m[y];return z}function o(d){return d.constructor===Object||d.constructor==null}function a(d){return typeof d.then=="function"}function s(d,m){return d===m||d!==d&&m!==m}var i="[object Arguments]",l="[object Boolean]",c="[object Date]",p="[object RegExp]",f="[object Map]",h="[object Number]",E="[object Object]",S="[object Set]",O="[object String]",x=Object.prototype.toString;function b(d){var m=d.areArraysEqual,z=d.areDatesEqual,y=d.areMapsEqual,D=d.areObjectsEqual,C=d.areRegExpsEqual,j=d.areSetsEqual,K=d.createIsNestedEqual,I=K(lt);function lt(P,N,gt){if(P===N)return!0;if(!P||!N||typeof P!="object"||typeof N!="object")return P!==P&&N!==N;if(o(P)&&o(N))return D(P,N,I,gt);var G=Array.isArray(P),W=Array.isArray(N);if(G||W)return G===W&&m(P,N,I,gt);var F=x.call(P);return F!==x.call(N)?!1:F===c?z(P,N,I,gt):F===p?C(P,N,I,gt):F===f?y(P,N,I,gt):F===S?j(P,N,I,gt):F===E||F===i?a(P)||a(N)?!1:D(P,N,I,gt):F===l||F===h||F===O?s(P.valueOf(),N.valueOf()):!1}return lt}function ct(d,m,z,y){var D=d.length;if(m.length!==D)return!1;for(;D-- >0;)if(!z(d[D],m[D],D,D,d,m,y))return!1;return!0}var V=n(ct);function ut(d,m){return s(d.valueOf(),m.valueOf())}function rt(d,m,z,y){var D=d.size===m.size;if(!D)return!1;if(!d.size)return!0;var C={},j=0;return d.forEach(function(K,I){if(D){var lt=!1,P=0;m.forEach(function(N,gt){!lt&&!C[P]&&(lt=z(I,gt,j,P,d,m,y)&&z(K,N,I,gt,d,m,y))&&(C[P]=!0),P++}),j++,D=lt}}),D}var it=n(rt),dt="_owner",$=Object.prototype.hasOwnProperty;function at(d,m,z,y){var D=Object.keys(d),C=D.length;if(Object.keys(m).length!==C)return!1;for(var j;C-- >0;){if(j=D[C],j===dt){var K=!!d.$$typeof,I=!!m.$$typeof;if((K||I)&&K!==I)return!1}if(!$.call(m,j)||!z(d[j],m[j],j,j,d,m,y))return!1}return!0}var Dt=n(at);function Ot(d,m){return d.source===m.source&&d.flags===m.flags}function Tt(d,m,z,y){var D=d.size===m.size;if(!D)return!1;if(!d.size)return!0;var C={};return d.forEach(function(j,K){if(D){var I=!1,lt=0;m.forEach(function(P,N){!I&&!C[lt]&&(I=z(j,P,K,N,d,m,y))&&(C[lt]=!0),lt++}),D=I}}),D}var A=n(Tt),B=Object.freeze({areArraysEqual:ct,areDatesEqual:ut,areMapsEqual:rt,areObjectsEqual:at,areRegExpsEqual:Ot,areSetsEqual:Tt,createIsNestedEqual:e}),Et=Object.freeze({areArraysEqual:V,areDatesEqual:ut,areMapsEqual:it,areObjectsEqual:Dt,areRegExpsEqual:Ot,areSetsEqual:A,createIsNestedEqual:e}),ft=b(B);function bt(d,m){return ft(d,m,void 0)}var Vt=b(r(B,{createIsNestedEqual:function(){return s}}));function Kt(d,m){return Vt(d,m,void 0)}var Pt=b(Et);function qt(d,m){return Pt(d,m,new WeakMap)}var Yt=b(r(Et,{createIsNestedEqual:function(){return s}}));function Zt(d,m){return Yt(d,m,new WeakMap)}function w(d){return b(r(B,d(B)))}function X(d){var m=b(r(Et,d(Et)));return(function(z,y,D){return D===void 0&&(D=new WeakMap),m(z,y,D)})}t.circularDeepEqual=qt,t.circularShallowEqual=Zt,t.createCustomCircularEqual=X,t.createCustomEqual=w,t.deepEqual=bt,t.sameValueZeroEqual=s,t.shallowEqual=Kt,Object.defineProperty(t,"__esModule",{value:!0})}))});var oo=_t((Vl,ro)=>{"use strict";var Ca="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";ro.exports=Ca});var lo=_t((Kl,io)=>{"use strict";var Ra=oo();function so(){}function ao(){}ao.resetWarningCache=so;io.exports=function(){function t(r,o,a,s,i,l){if(l!==Ra){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}t.isRequired=t;function e(){return t}var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:ao,resetWarningCache:so};return n.PropTypes=n,n}});var me=_t((Ql,co)=>{co.exports=lo()();var Zl,Jl});var xo=_t((cc,tr)=>{function wo(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(e=0;e<o;e++)t[e]&&(n=wo(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function vo(){for(var t,e,n=0,r="",o=arguments.length;n<o;n++)(t=arguments[n])&&(e=wo(t))&&(r&&(r+=" "),r+=e);return r}tr.exports=vo,tr.exports.clsx=vo});var Lo=_t((uc,Mo)=>{"use strict";var Ua=Object.create,gn=Object.defineProperty,Va=Object.getOwnPropertyDescriptor,Ka=Object.getOwnPropertyNames,Za=Object.getPrototypeOf,Ja=Object.prototype.hasOwnProperty,Qa=(t,e)=>{for(var n in e)gn(t,n,{get:e[n],enumerable:!0})},zo=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ka(e))!Ja.call(t,o)&&o!==n&&gn(t,o,{get:()=>e[o],enumerable:!(r=Va(e,o))||r.enumerable});return t},Pe=(t,e,n)=>(n=t!=null?Ua(Za(t)):{},zo(e||!t||!t.__esModule?gn(n,"default",{value:t,enumerable:!0}):n,t)),ti=t=>zo(gn({},"__esModule",{value:!0}),t),ko={};Qa(ko,{DraggableCore:()=>ve,default:()=>mn});Mo.exports=ti(ko);var hn=Pe((nt(),ge(ie))),J=Pe(me()),ei=Pe((Ce(),ge(On))),ni=xo();function lr(t,e){for(let n=0,r=t.length;n<r;n++)if(e.apply(e,[t[n],n,t]))return t[n]}function So(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Function]"}function Fe(t){return typeof t=="number"&&!isNaN(t)}function St(t){return parseInt(t,10)}function Oe(t,e,n){if(t[e])return new Error(`Invalid prop ${e} passed to ${n} - do not set this, set it on the child.`)}var er=["Moz","Webkit","O","ms"];function ri(t="transform"){var e,n;if(typeof window>"u")return"";let r=(n=(e=window.document)==null?void 0:e.documentElement)==null?void 0:n.style;if(!r||t in r)return"";for(let o=0;o<er.length;o++)if(Oo(t,er[o])in r)return er[o];return""}function Oo(t,e){return e?`${e}${oi(t)}`:t}function oi(t){let e="",n=!0;for(let r=0;r<t.length;r++)n?(e+=t[r].toUpperCase(),n=!1):t[r]==="-"?n=!0:e+=t[r];return e}var si=ri(),nr="";function ai(t,e){var n;nr||(nr=(n=lr(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(o){return So(t[o])}))!=null?n:"");let r=t[nr];return So(r)?!!r.call(t,e):!1}function Do(t,e,n){let r=t;do{if(ai(r,e))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function rr(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.addEventListener?t.addEventListener(e,a,o):t.attachEvent?t.attachEvent("on"+e,a):t["on"+e]=a}function be(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.removeEventListener?t.removeEventListener(e,a,o):t.detachEvent?t.detachEvent("on"+e,a):t["on"+e]=null}function ii(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=St(n.borderTopWidth),e+=St(n.borderBottomWidth),e}function li(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=St(n.borderLeftWidth),e+=St(n.borderRightWidth),e}function ci(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=St(n.paddingTop),e-=St(n.paddingBottom),e}function ui(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=St(n.paddingLeft),e-=St(n.paddingRight),e}function di(t,e,n){let o=e===e.ownerDocument.body?{left:0,top:0}:e.getBoundingClientRect(),a=(t.clientX+e.scrollLeft-o.left)/n,s=(t.clientY+e.scrollTop-o.top)/n;return{x:a,y:s}}function fi(t,e){let n=Po(t,e,"px");return{[Oo("transform",si)]:n}}function pi(t,e){return Po(t,e,"")}function Po({x:t,y:e},n,r){let o=`translate(${t}${r},${e}${r})`;if(n){let a=`${typeof n.x=="string"?n.x:n.x+r}`,s=`${typeof n.y=="string"?n.y:n.y+r}`;o=`translate(${a}, ${s})`+o}return o}function hi(t,e){return t.targetTouches&&lr(t.targetTouches,n=>e===n.identifier)||t.changedTouches&&lr(t.changedTouches,n=>e===n.identifier)}function gi(t){if(t.targetTouches&&t.targetTouches[0])return t.targetTouches[0].identifier;if(t.changedTouches&&t.changedTouches[0])return t.changedTouches[0].identifier}function mi(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0}function yi(t,e){if(!t)return;let n=t.getElementById("react-draggable-style-el");if(!n){n=t.createElement("style"),n.type="text/css",n.id="react-draggable-style-el";let r=e??mi();r&&n.setAttribute("nonce",r),n.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
2
2
  `,n.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
3
- `,t.getElementsByTagName("head")[0].appendChild(n)}t.body&&di(t.body,"react-draggable-transparent-selection")}function Co(t){window.requestAnimationFrame?window.requestAnimationFrame(()=>{Ro(t)}):Ro(t)}function Ro(t){if(t)try{t.body&&fi(t.body,"react-draggable-transparent-selection");let e=t.selection;if(e)e.empty();else{let n=(t.defaultView||window).getSelection();n&&n.type!=="Caret"&&n.removeAllRanges()}}catch{}}function di(t,e){t.classList?t.classList.add(e):t.className.match(new RegExp(`(?:^|\\s)${e}(?!\\S)`))||(t.className+=` ${e}`)}function fi(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(`(?:^|\\s)${e}(?!\\S)`,"g"),"")}function pi(t,e,n){if(!t.props.bounds)return[e,n];let{bounds:r}=t.props;r=typeof r=="string"?r:mi(r);let o=cr(t);if(typeof r=="string"){let{ownerDocument:a}=o,s=a.defaultView;if(!s)throw new Error("Cannot resolve the owner window of the draggable node.");let i;if(r==="parent"?i=o.parentNode:i=o.getRootNode().querySelector(r),!(i instanceof s.HTMLElement))throw new Error('Bounds selector "'+r+'" could not find an element.');let l=i,c=s.getComputedStyle(o),p=s.getComputedStyle(l);r={left:-o.offsetLeft+vt(p.paddingLeft)+vt(c.marginLeft),top:-o.offsetTop+vt(p.paddingTop)+vt(c.marginTop),right:ri(l)-ei(o)-o.offsetLeft+vt(p.paddingRight)-vt(c.marginRight),bottom:ni(l)-ti(o)-o.offsetTop+vt(p.paddingBottom)-vt(c.marginBottom)}}return Ge(r.right)&&(e=Math.min(e,r.right)),Ge(r.bottom)&&(n=Math.min(n,r.bottom)),Ge(r.left)&&(e=Math.max(e,r.left)),Ge(r.top)&&(n=Math.max(n,r.top)),[e,n]}function Eo(t,e,n){let r=Math.round(e/t[0])*t[0],o=Math.round(n/t[1])*t[1];return[r,o]}function hi(t){return t.props.axis==="both"||t.props.axis==="x"}function gi(t){return t.props.axis==="both"||t.props.axis==="y"}function or(t,e,n){let r=typeof e=="number"?ii(t,e):null;if(typeof e=="number"&&!r)return null;let o=cr(n),a=n.props.offsetParent||o.offsetParent||o.ownerDocument.body;return oi(r||t,a,n.props.scale)}function sr(t,e,n){let r=!Ge(t.lastX),o=cr(t);return r?{node:o,deltaX:0,deltaY:0,lastX:e,lastY:n,x:e,y:n}:{node:o,deltaX:e-t.lastX,deltaY:n-t.lastY,lastX:t.lastX,lastY:t.lastY,x:e,y:n}}function ar(t,e){let n=t.props.scale;return{node:e.node,x:t.state.x+e.deltaX/n,y:t.state.y+e.deltaY/n,deltaX:e.deltaX/n,deltaY:e.deltaY/n,lastX:t.state.x,lastY:t.state.y}}function mi(t){return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}function cr(t){let e=t.findDOMNode();if(!e)throw new Error("<DraggableCore>: Unmounted during event!");return e}var ir=Pe((et(),ge(ne))),bt=Pe(me()),yi=Pe((Ce(),ge(kn))),bi=typeof process<"u"&&process.env.DRAGGABLE_DEBUG?console.log.bind(console):function(){},Xt=bi,Ht={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},le=Ht.mouse,ve=class extends ir.Component{constructor(){super(...arguments),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,this.touchIdentifier=null,this.mounted=!1,this.handleDragStart=t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&(typeof t.button=="number"&&t.button!==0||t.ctrlKey))return!1;let e=this.findDOMNode();if(!e||!e.ownerDocument||!e.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");let{ownerDocument:n}=e;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!Do(t.target,this.props.handle,e)||this.props.cancel&&Do(t.target,this.props.cancel,e))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();let r=li(t);this.touchIdentifier=r;let o=or(t,r,this);if(o==null)return;let{x:a,y:s}=o,i=sr(this,a,s);Xt("DraggableCore: handleDragStart: %j",i),Xt("calling",this.props.onStart),!(this.props.onStart(t,i)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&ui(n,this.props.nonce),this.dragging=!0,this.lastX=a,this.lastY=s,rr(n,le.move,this.handleDrag),rr(n,le.stop,this.handleDragStop))},this.handleDrag=t=>{let e=or(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let s=n-this.lastX,i=r-this.lastY;if([s,i]=Eo(this.props.grid,s,i),!s&&!i)return;n=this.lastX+s,r=this.lastY+i}let o=sr(this,n,r);if(Xt("DraggableCore: handleDrag: %j",o),this.props.onDrag(t,o)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{let s=document.createEvent("MouseEvents");s.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(s)}return}this.lastX=n,this.lastY=r},this.handleDragStop=t=>{if(!this.dragging)return;let e=or(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let i=n-this.lastX||0,l=r-this.lastY||0;[i,l]=Eo(this.props.grid,i,l),n=this.lastX+i,r=this.lastY+l}let o=sr(this,n,r);if(this.props.onStop(t,o)===!1||this.mounted===!1)return!1;let s=this.findDOMNode();s&&this.props.enableUserSelectHack&&Co(s.ownerDocument),Xt("DraggableCore: handleDragStop: %j",o),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&(Xt("DraggableCore: Removing handlers"),be(s.ownerDocument,le.move,this.handleDrag),be(s.ownerDocument,le.stop,this.handleDragStop))},this.onMouseDown=t=>(le=Ht.mouse,this.handleDragStart(t)),this.onMouseUp=t=>(le=Ht.mouse,this.handleDragStop(t)),this.onTouchStart=t=>(le=Ht.touch,this.handleDragStart(t)),this.onTouchEnd=t=>(le=Ht.touch,this.handleDragStop(t))}componentDidMount(){this.mounted=!0;let t=this.findDOMNode();t&&rr(t,Ht.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;let t=this.findDOMNode();if(t){let{ownerDocument:e}=t;be(e,Ht.mouse.move,this.handleDrag),be(e,Ht.touch.move,this.handleDrag),be(e,Ht.mouse.stop,this.handleDragStop),be(e,Ht.touch.stop,this.handleDragStop),be(t,Ht.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&Co(e)}}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=yi.default;return typeof e.findDOMNode=="function"?e.findDOMNode(this):(Xt("react-draggable: ReactDOM.findDOMNode is not available in React 19+. You must provide a nodeRef prop. See: https://github.com/react-grid-layout/react-draggable#noderef"),null)}render(){return ir.cloneElement(ir.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};ve.displayName="DraggableCore";ve.propTypes={allowAnyClick:bt.default.bool,allowMobileScroll:bt.default.bool,children:bt.default.node.isRequired,disabled:bt.default.bool,enableUserSelectHack:bt.default.bool,offsetParent:function(t,e){if(t[e]&&t[e].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:bt.default.arrayOf(bt.default.number),handle:bt.default.string,cancel:bt.default.string,nodeRef:bt.default.object,nonce:bt.default.string,onStart:bt.default.func,onDrag:bt.default.func,onStop:bt.default.func,onMouseDown:bt.default.func,scale:bt.default.number,className:ke,style:ke,transform:ke};ve.defaultProps={allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1};var gn=class extends pn.Component{constructor(t){super(t),this.onDragStart=(e,n)=>{if(Xt("Draggable: onDragStart: %j",n),this.props.onStart(e,ar(this,n))===!1)return!1;this.setState({dragging:!0,dragged:!0})},this.onDrag=(e,n)=>{if(!this.state.dragging)return!1;Xt("Draggable: onDrag: %j",n);let r=ar(this,n),o={x:r.x,y:r.y,slackX:0,slackY:0};if(this.props.bounds){let{x:s,y:i}=o;o.x+=this.state.slackX,o.y+=this.state.slackY;let[l,c]=pi(this,o.x,o.y);o.x=l,o.y=c,o.slackX=this.state.slackX+(s-o.x),o.slackY=this.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-this.state.x,r.deltaY=o.y-this.state.y}if(this.props.onDrag(e,r)===!1)return!1;this.setState(o)},this.onDragStop=(e,n)=>{if(!this.state.dragging||this.props.onStop(e,ar(this,n))===!1)return!1;Xt("Draggable: onDragStop: %j",n);let o={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){let{x:s,y:i}=this.props.position;o.x=s,o.y=i}this.setState(o)},this.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,prevPropsPosition:{...t.position},slackX:0,slackY:0,isElementSVG:!1},t.position&&!(t.onDrag||t.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}static getDerivedStateFromProps({position:t},{prevPropsPosition:e}){return t&&(!e||t.x!==e.x||t.y!==e.y)?(Xt("Draggable: getDerivedStateFromProps %j",{position:t,prevPropsPosition:e}),{x:t.x,y:t.y,prevPropsPosition:{...t}}):null}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=Ua.default;return typeof e.findDOMNode=="function"?e.findDOMNode(this):null}render(){let{axis:t,bounds:e,children:n,defaultPosition:r,defaultClassName:o,defaultClassNameDragging:a,defaultClassNameDragged:s,position:i,positionOffset:l,scale:c,...p}=this.props,d={},g=null,w=!!!i||this.state.dragging,k=i||r,S={x:hi(this)&&w?this.state.x:k.x,y:gi(this)&&w?this.state.y:k.y};this.state.isElementSVG?g=ai(S,l):d=si(S,l);let b=pn.Children.only(n),K=(0,Va.clsx)(b.props.className||"",o,{[a]:this.state.dragging,[s]:this.state.dragged});return pn.createElement(ve,{...p,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop},pn.cloneElement(b,{className:K,style:{...b.props.style,...d},transform:g}))}};gn.displayName="Draggable";gn.propTypes={...ve.propTypes,axis:V.default.oneOf(["both","x","y","none"]),bounds:V.default.oneOfType([V.default.shape({left:V.default.number,right:V.default.number,top:V.default.number,bottom:V.default.number}),V.default.string,V.default.oneOf([!1])]),defaultClassName:V.default.string,defaultClassNameDragging:V.default.string,defaultClassNameDragged:V.default.string,defaultPosition:V.default.shape({x:V.default.number,y:V.default.number}),positionOffset:V.default.shape({x:V.default.oneOfType([V.default.number,V.default.string]),y:V.default.oneOfType([V.default.number,V.default.string])}),position:V.default.shape({x:V.default.number,y:V.default.number}),className:ke,style:ke,transform:ke};gn.defaultProps={...ve.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1}});var dr=Mt((Vl,mn)=>{"use strict";var ur=No(),vi=ur.DraggableCore,Lo=ur.default||ur;mn.exports=Lo;mn.exports.default=Lo;mn.exports.DraggableCore=vi});var jo=Mt(fr=>{"use strict";fr.__esModule=!0;fr.cloneElement=Ri;var wi=Si((et(),ge(ne)));function Si(t){return t&&t.__esModule?t:{default:t}}function _o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function To(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?_o(Object(n),!0).forEach(function(r){xi(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_o(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function xi(t,e,n){return(e=Di(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Di(t){var e=Ci(t,"string");return typeof e=="symbol"?e:e+""}function Ci(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ri(t,e){return e.style&&t.props.style&&(e.style=To(To({},t.props.style),e.style)),e.className&&t.props.className&&(e.className=t.props.className+" "+e.className),wi.default.cloneElement(t,e)}});var pr=Mt(yn=>{"use strict";yn.__esModule=!0;yn.resizableProps=void 0;var E=Ei(me()),Zl=dr();function Ei(t){return t&&t.__esModule?t:{default:t}}var Jl=yn.resizableProps={axis:E.default.oneOf(["both","x","y","none"]),className:E.default.string,children:E.default.element.isRequired,draggableOpts:E.default.shape({allowAnyClick:E.default.bool,cancel:E.default.string,children:E.default.node,disabled:E.default.bool,enableUserSelectHack:E.default.bool,offsetParent:typeof Element<"u"?E.default.instanceOf(Element):E.default.any,grid:E.default.arrayOf(E.default.number),handle:E.default.string,nodeRef:E.default.object,onStart:E.default.func,onDrag:E.default.func,onStop:E.default.func,onMouseDown:E.default.func,scale:E.default.number}),height:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];let r=e[0];return r.axis==="both"||r.axis==="y"?E.default.number.isRequired(...e):E.default.number(...e)},handle:E.default.oneOfType([E.default.node,E.default.func]),handleSize:E.default.arrayOf(E.default.number),lockAspectRatio:E.default.bool,maxConstraints:E.default.arrayOf(E.default.number),minConstraints:E.default.arrayOf(E.default.number),onResizeStop:E.default.func,onResizeStart:E.default.func,onResize:E.default.func,resizeHandles:E.default.arrayOf(E.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:E.default.number,width:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];let r=e[0];return r.axis==="both"||r.axis==="x"?E.default.number.isRequired(...e):E.default.number(...e)}}});var mr=Mt(bn=>{"use strict";bn.__esModule=!0;bn.default=void 0;var Me=Ho((et(),ge(ne))),zi=dr(),Oi=jo(),ki=pr(),Pi=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function Ho(t,e){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(Ho=function(o,a){if(!a&&o&&o.__esModule)return o;var s,i,l={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return l;if(s=a?r:n){if(s.has(o))return s.get(o);s.set(o,l)}for(let c in o)c!=="default"&&{}.hasOwnProperty.call(o,c)&&((i=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,c))&&(i.get||i.set)?s(l,c,i):l[c]=o[c]);return l})(t,e)}function gr(){return gr=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},gr.apply(null,arguments)}function Mi(t,e){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.indexOf(r)!==-1)continue;n[r]=t[r]}return n}function Bo(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function hr(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Bo(Object(n),!0).forEach(function(r){Ni(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Bo(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ni(t,e,n){return(e=Li(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Li(t){var e=_i(t,"string");return typeof e=="symbol"?e:e+""}function _i(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Fe=class extends Me.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(e,n){let r=this.props,o=r.minConstraints,a=r.maxConstraints,s=r.lockAspectRatio;if(!o&&!a&&!s)return[e,n];if(s){let g=this.props.width/this.props.height,z=e-this.props.width,w=n-this.props.height;Math.abs(z)>Math.abs(w*g)?n=e/g:e=n*g}let i=e,l=n,c=this.slack||[0,0],p=c[0],d=c[1];return e+=p,n+=d,o&&(e=Math.max(o[0],e),n=Math.max(o[1],n)),a&&(e=Math.min(a[0],e),n=Math.min(a[1],n)),this.slack=[p+(i-e),d+(l-n)],[e,n]}resizeHandler(e,n){return(r,o)=>{var a,s,i,l;let c=o.node,p=o.deltaX,d=o.deltaY;e==="onResizeStart"&&this.resetData();let g=(this.props.axis==="both"||this.props.axis==="x")&&n!=="n"&&n!=="s",z=(this.props.axis==="both"||this.props.axis==="y")&&n!=="e"&&n!=="w";if(!g&&!z)return;let w=n[0],k=n[n.length-1],S=c.getBoundingClientRect();if(this.lastHandleRect!=null){if(k==="w"){let Rt=S.left-this.lastHandleRect.left;p+=Rt}if(w==="n"){let Rt=S.top-this.lastHandleRect.top;d+=Rt}}this.lastHandleRect=S,k==="w"&&(p=-p),w==="n"&&(d=-d);let b=(a=(s=this.lastSize)==null?void 0:s.width)!=null?a:this.props.width,K=(i=(l=this.lastSize)==null?void 0:l.height)!=null?i:this.props.height,Z=b+(g?p/this.props.transformScale:0),it=K+(z?d/this.props.transformScale:0);var ut=this.runConstraints(Z,it);if(Z=ut[0],it=ut[1],e==="onResizeStop"&&this.lastSize){var lt=this.lastSize;Z=lt.width,it=lt.height}let ot=Z!==b||it!==K;e!=="onResizeStop"&&(this.lastSize={width:Z,height:it});let nt=typeof this.props[e]=="function"?this.props[e]:null;nt&&!(e==="onResize"&&!ot)&&(r.persist==null||r.persist(),nt(r,{node:c,size:{width:Z,height:it},handle:n})),e==="onResizeStop"&&this.resetData()}}renderResizeHandle(e,n){let r=this.props.handle;if(!r)return Me.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e,ref:n});if(typeof r=="function")return r(e,n);let o=typeof r.type=="string",a=hr({ref:n},o?{}:{handleAxis:e});return Me.cloneElement(r,a)}render(){let e=this.props,n=e.children,r=e.className,o=e.draggableOpts,a=e.width,s=e.height,i=e.handle,l=e.handleSize,c=e.lockAspectRatio,p=e.axis,d=e.minConstraints,g=e.maxConstraints,z=e.onResize,w=e.onResizeStop,k=e.onResizeStart,S=e.resizeHandles,b=e.transformScale,K=Mi(e,Pi);return(0,Oi.cloneElement)(n,hr(hr({},K),{},{className:(r?r+" ":"")+"react-resizable",children:[...Me.Children.toArray(n.props.children),...S.map(Z=>{var it;let ut=(it=this.handleRefs[Z])!=null?it:this.handleRefs[Z]=Me.createRef();return Me.createElement(zi.DraggableCore,gr({},o,{nodeRef:ut,key:"resizableHandle-"+Z,onStop:this.resizeHandler("onResizeStop",Z),onStart:this.resizeHandler("onResizeStart",Z),onDrag:this.resizeHandler("onResize",Z)}),this.renderResizeHandle(Z,ut))})]}))}};bn.default=Fe;Fe.propTypes=ki.resizableProps;Fe.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1}});var qo=Mt(Sn=>{"use strict";Sn.__esModule=!0;Sn.default=void 0;var yr=Io((et(),ge(ne))),Ti=Wo(me()),ji=Wo(mr()),Bi=pr(),Hi=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function Wo(t){return t&&t.__esModule?t:{default:t}}function Io(t,e){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(Io=function(o,a){if(!a&&o&&o.__esModule)return o;var s,i,l={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return l;if(s=a?r:n){if(s.has(o))return s.get(o);s.set(o,l)}for(let c in o)c!=="default"&&{}.hasOwnProperty.call(o,c)&&((i=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,c))&&(i.get||i.set)?s(l,c,i):l[c]=o[c]);return l})(t,e)}function br(){return br=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},br.apply(null,arguments)}function Ao(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function vn(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Ao(Object(n),!0).forEach(function(r){Ai(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ao(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ai(t,e,n){return(e=Wi(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Wi(t){var e=Ii(t,"string");return typeof e=="symbol"?e:e+""}function Ii(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function qi(t,e){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.indexOf(r)!==-1)continue;n[r]=t[r]}return n}var wn=class extends yr.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(e,n)=>{let r=n.size;this.props.onResize?(e.persist==null||e.persist(),this.setState(r,()=>this.props.onResize&&this.props.onResize(e,n))):this.setState(r)}}static getDerivedStateFromProps(e,n){return n.propsWidth!==e.width||n.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null}render(){let e=this.props,n=e.handle,r=e.handleSize,o=e.onResize,a=e.onResizeStart,s=e.onResizeStop,i=e.draggableOpts,l=e.minConstraints,c=e.maxConstraints,p=e.lockAspectRatio,d=e.axis,g=e.width,z=e.height,w=e.resizeHandles,k=e.style,S=e.transformScale,b=qi(e,Hi);return yr.createElement(ji.default,{axis:d,draggableOpts:i,handle:n,handleSize:r,height:this.state.height,lockAspectRatio:p,maxConstraints:c,minConstraints:l,onResizeStart:a,onResize:this.onResize,onResizeStop:s,resizeHandles:w,transformScale:S,width:this.state.width},yr.createElement("div",br({},b,{style:vn(vn({},k),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};Sn.default=wn;wn.propTypes=vn(vn({},Bi.resizableProps),{},{children:Ti.default.element})});var Yo=Mt((nc,xn)=>{"use strict";xn.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")};xn.exports.Resizable=mr().default;xn.exports.ResizableBox=qo().default});Ce();et();var Mr=new Map,an=new Map,Nr=(t,e)=>Mr.set(t,e),Lr=()=>{an.forEach(t=>t.unmount()),an.clear()},_r=(t,e)=>t.querySelectorAll("[data-react-ui]").forEach(n=>{if(an.has(n))return;let r=Mr.get(n.dataset.reactUi),o=e(n);an.set(n,o),o.render(u.createElement(r,JSON.parse(n.dataset.props)))});var Tr=(t,e)=>{let n=()=>_r(t,e);t.addEventListener("turbo:load",n),t.addEventListener("turbo:frame-load",n),t.addEventListener("turbo:before-cache",Lr),t.readyState==="loading"?t.addEventListener("DOMContentLoaded",n):n()};et();et();var Re=(...t)=>t.filter(Boolean).join(" ");var Us={primary:"ks-button-primary",secondary:"ks-button-secondary",danger:"ks-button-danger"},Vs={sm:"ks-button-sm",md:"ks-button-md",lg:"ks-button-lg"},Ks=({variant:t="primary",size:e="md",className:n,children:r,...o})=>{let a=o.href?"a":"button";return u.createElement(a,{...o,className:Re("ks-button",Us[t],Vs[e],n)},r)},Mn=Ks;et();var Zs=({maxWidth:t="full",padding:e="standard",topOffset:n,className:r,children:o})=>u.createElement("div",{className:Re(e!=="none"&&"ks-page",n&&`ks-page-offset-${n}`,t!=="full"&&`ks-page-${t}`,r)},o),jr=Zs;et();var Js=({title:t,subtitle:e,actions:n,className:r})=>u.createElement("div",{className:Re("ks-page-header",r)},u.createElement("div",null,u.createElement("h1",{className:"ks-page-header-title"},t),e&&u.createElement("p",{className:"ks-page-header-subtitle"},e)),n&&u.createElement("div",{className:"page-header-actions ks-page-header-actions"},n)),Br=Js;et();function oe(t){let{margin:e,containerPadding:n,containerWidth:r,cols:o}=t;return(r-e[0]*(o-1)-n[0]*2)/o}function jt(t,e,n){return Number.isFinite(t)?Math.round(e*t+Math.max(0,t-1)*n):t}function We(t,e,n,r,o,a,s){let{margin:i,containerPadding:l,rowHeight:c}=t,p=oe(t),d,g,z,w;if(s?(d=Math.round(s.width),g=Math.round(s.height)):(d=jt(r,p,i[0]),g=jt(o,c,i[1])),a?(z=Math.round(a.top),w=Math.round(a.left)):s?(z=Math.round(s.top),w=Math.round(s.left)):(z=Math.round((c+i[1])*n+l[1]),w=Math.round((p+i[0])*e+l[0])),!a&&!s){if(Number.isFinite(r)){let S=Math.round((p+i[0])*(e+r)+l[0])-w-d;S!==i[0]&&(d+=S-i[0])}if(Number.isFinite(o)){let S=Math.round((c+i[1])*(n+o)+l[1])-z-g;S!==i[1]&&(g+=S-i[1])}}return{top:z,left:w,width:d,height:g}}function Ar(t,e,n,r,o){let{margin:a,containerPadding:s,cols:i,rowHeight:l,maxRows:c}=t,p=oe(t),d=Math.round((n-s[0])/(p+a[0])),g=Math.round((e-s[1])/(l+a[1]));return d=Ae(d,0,i-r),g=Ae(g,0,c-o),{x:d,y:g}}function Ie(t,e,n){let{margin:r,containerPadding:o,rowHeight:a}=t,s=oe(t),i=Math.round((n-o[0])/(s+r[0])),l=Math.round((e-o[1])/(a+r[1]));return{x:i,y:l}}function Wr(t,e,n){let{margin:r,rowHeight:o}=t,a=oe(t),s=Math.max(1,Math.round((e+r[0])/(a+r[0]))),i=Math.max(1,Math.round((n+r[1])/(o+r[1])));return{w:s,h:i}}function Ae(t,e,n){return Math.max(Math.min(t,n),e)}function cn(t,e){return!(t.i===e.i||t.x+t.w<=e.x||t.x>=e.x+e.w||t.y+t.h<=e.y||t.y>=e.y+e.h)}function se(t,e){for(let n=0;n<t.length;n++){let r=t[n];if(r!==void 0&&cn(r,e))return r}}function Nn(t,e){return t.filter(n=>cn(n,e))}function Qs(t,e){return e==="horizontal"?Ln(t):e==="vertical"||e==="wrap"?ln(t):[...t]}function ln(t){return[...t].sort((e,n)=>e.y!==n.y?e.y-n.y:e.x-n.x)}function Ln(t){return[...t].sort((e,n)=>e.x!==n.x?e.x-n.x:e.y-n.y)}function qe(t){let e=0;for(let n=0;n<t.length;n++){let r=t[n];if(r!==void 0){let o=r.y+r.h;o>e&&(e=o)}}return e}function ae(t,e){for(let n=0;n<t.length;n++){let r=t[n];if(r!==void 0&&r.i===e)return r}}function Ye(t){return t.filter(e=>e.static===!0)}function Gt(t){return{i:t.i,x:t.x,y:t.y,w:t.w,h:t.h,minW:t.minW,maxW:t.maxW,minH:t.minH,maxH:t.maxH,moved:!!t.moved,static:!!t.static,isDraggable:t.isDraggable,isResizable:t.isResizable,resizeHandles:t.resizeHandles,constraints:t.constraints,isBounded:t.isBounded}}function Ee(t){let e=new Array(t.length);for(let n=0;n<t.length;n++){let r=t[n];r!==void 0&&(e[n]=Gt(r))}return e}function ta(t,e){let n=new Array(t.length);for(let r=0;r<t.length;r++){let o=t[r];o!==void 0&&(e.i===o.i?n[r]=e:n[r]=o)}return n}function Ir(t,e,n){let r=ae(t,e);return r?(r=n(Gt(r)),[ta(t,r),r]):[[...t],null]}function _n(t,e){let n=Ye(t);for(let r=0;r<t.length;r++){let o=t[r];if(o!==void 0)if(o.x+o.w>e.cols&&(o.x=e.cols-o.w),o.x<0&&(o.x=0,o.w=e.cols),!o.static)n.push(o);else for(;se(n,o);)o.y++}return t}function re(t,e,n,r,o,a,s,i,l){if(e.static&&e.isDraggable!==!0)return[...t];if(e.y===r&&e.x===n)return[...t];let c=e.x,p=e.y;typeof n=="number"&&(e.x=n),typeof r=="number"&&(e.y=r),e.moved=!0;let d=Qs(t,s);(s==="vertical"&&typeof r=="number"?p>=r:s==="horizontal"&&typeof n=="number"&&c>=n)&&(d=d.reverse());let z=Nn(d,e),w=z.length>0;if(w&&l)return Ee(t);if(w&&a)return e.x=c,e.y=p,e.moved=!1,t;let k=[...t];for(let S=0;S<z.length;S++){let b=z[S];b!==void 0&&(b.moved||(b.static?k=Hr(k,b,e,o,s):k=Hr(k,e,b,o,s)))}return k}function Hr(t,e,n,r,o,a){let s=o==="horizontal",i=o==="vertical",l=e.static;if(r){r=!1;let d={x:s?Math.max(e.x-n.w,0):n.x,y:i?Math.max(e.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"},g=se(t,d),z=g!==void 0&&g.y+g.h>e.y,w=g!==void 0&&e.x+e.w>g.x;if(!g)return re(t,n,s?d.x:void 0,i?d.y:void 0,r,l,o);if(z&&i)return re(t,n,void 0,n.y+1,r,l,o);if(z&&o===null)return e.y=n.y,n.y=n.y+n.h,[...t];if(w&&s)return re(t,e,n.x,void 0,r,l,o)}let c=s?n.x+1:void 0,p=i?n.y+1:void 0;return c===void 0&&p===void 0?[...t]:re(t,n,c,p,r,l,o)}function ze(t,e,n){return Math.max(e,Math.min(n,t))}var ea={name:"gridBounds",constrainPosition(t,e,n,{cols:r,maxRows:o}){return{x:ze(e,0,Math.max(0,r-t.w)),y:ze(n,0,Math.max(0,o-t.h))}},constrainSize(t,e,n,r,{cols:o,maxRows:a}){let s=r==="w"||r==="nw"||r==="sw"?t.x+t.w:o-t.x,i=r==="n"||r==="nw"||r==="ne"?t.y+t.h:a-t.y;return{w:ze(e,1,Math.max(1,s)),h:ze(n,1,Math.max(1,i))}}},na={name:"minMaxSize",constrainSize(t,e,n){return{w:ze(e,t.minW??1,t.maxW??1/0),h:ze(n,t.minH??1,t.maxH??1/0)}}};var Tn=[ea,na];function Xe(t,e,n,r,o){let a={x:n,y:r};for(let s of t)s.constrainPosition&&(a=s.constrainPosition(e,a.x,a.y,o));if(e.constraints)for(let s of e.constraints)s.constrainPosition&&(a=s.constrainPosition(e,a.x,a.y,o));return a}function qr(t,e,n,r,o,a){let s={w:n,h:r};for(let i of t)i.constrainSize&&(s=i.constrainSize(e,s.w,s.h,o,a));if(e.constraints)for(let i of e.constraints)i.constrainSize&&(s=i.constrainSize(e,s.w,s.h,o,a));return s}function jn({top:t,left:e,width:n,height:r}){let o=`translate(${e}px,${t}px)`;return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:`${n}px`,height:`${r}px`,position:"absolute"}}function Yr({top:t,left:e,width:n,height:r}){return{top:`${t}px`,left:`${e}px`,width:`${n}px`,height:`${r}px`,position:"absolute"}}function Bn(t){return t*100+"%"}function ra(t,e,n,r){return t+n>r?e:n}function Xr(t,e,n){return t<0?e:n}function oa(t){return Math.max(0,t)}function un(t){return Math.max(0,t)}var Hn=(t,e,n)=>{let{left:r,height:o,width:a}=e,s=t.top-(o-t.height);return{left:r,width:a,height:Xr(s,t.height,o),top:un(s)}},An=(t,e,n)=>{let{top:r,left:o,height:a,width:s}=e;return{top:r,height:a,width:ra(t.left,t.width,s,n),left:oa(o)}},Wn=(t,e,n)=>{let{top:r,height:o,width:a}=e,s=t.left+t.width-a;return s<0?{height:o,width:t.left+t.width,top:un(r),left:0}:{height:o,width:a,top:un(r),left:s}},In=(t,e,n)=>{let{top:r,left:o,height:a,width:s}=e;return{width:s,left:o,height:Xr(r,t.height,a),top:un(r)}},sa=(t,e,n)=>Hn(t,An(t,e,n)),aa=(t,e,n)=>Hn(t,Wn(t,e)),ia=(t,e,n)=>In(t,An(t,e,n)),la=(t,e,n)=>In(t,Wn(t,e)),ca={n:Hn,ne:sa,e:An,se:ia,s:In,sw:la,w:Wn,nw:aa};function $r(t,e,n,r){let o=ca[t];return o?o(e,{...e,...n},r):n}var ua={type:"transform",scale:1,calcStyle(t){return jn(t)}};var Gr=ua,Fr={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},Ur={enabled:!0,bounded:!1,threshold:3},Vr={enabled:!0,handles:["se"]},Kr={enabled:!1,defaultItem:{w:1,h:1}};function qn(t,e,n,r,o){let a=r==="x"?"w":"h";e[r]+=1;let s=t.findIndex(l=>l.i===e.i),i=o??Ye(t).length>0;for(let l=s+1;l<t.length;l++){let c=t[l];if(c!==void 0&&!c.static){if(!i&&c.y>e.y+e.h)break;cn(e,c)&&qn(t,c,n+e[a],r,i)}}e[r]=n}function da(t,e,n,r){for(e.x=Math.max(e.x,0),e.y=Math.max(e.y,0),e.y=Math.min(r,e.y);e.y>0&&!se(t,e);)e.y--;let o;for(;(o=se(t,e))!==void 0;)qn(n,e,o.y+o.h,"y");return e.y=Math.max(e.y,0),e}function fa(t,e,n,r){for(e.x=Math.max(e.x,0),e.y=Math.max(e.y,0);e.x>0&&!se(t,e);)e.x--;let o;for(;(o=se(t,e))!==void 0;)if(qn(r,e,o.x+o.w,"x"),e.x+e.w>n)for(e.x=n-e.w,e.y++;e.x>0&&!se(t,e);)e.x--;return e.x=Math.max(e.x,0),e}var Zr={type:"vertical",allowOverlap:!1,compact(t,e){let n=Ye(t),r=qe(n),o=ln(t),a=new Array(t.length);for(let s=0;s<o.length;s++){let i=o[s];if(i===void 0)continue;let l=Gt(i);l.static||(l=da(n,l,o,r),r=Math.max(r,l.y+l.h),n.push(l));let c=t.indexOf(i);a[c]=l,l.moved=!1}return a}},Jr={type:"horizontal",allowOverlap:!1,compact(t,e){let n=Ye(t),r=Ln(t),o=new Array(t.length);for(let a=0;a<r.length;a++){let s=r[a];if(s===void 0)continue;let i=Gt(s);i.static||(i=fa(n,i,e,r),n.push(i));let l=t.indexOf(s);o[l]=i,i.moved=!1}return o}},Qr={type:null,allowOverlap:!1,compact(t,e){return Ee(t)}},pa={...Zr,allowOverlap:!0,compact(t,e){return Ee(t)}},ha={...Jr,allowOverlap:!0,compact(t,e){return Ee(t)}},ga={...Qr,allowOverlap:!0};function to(t,e=!1,n=!1){let r;return e?t==="vertical"?r=pa:t==="horizontal"?r=ha:r=ga:t==="vertical"?r=Zr:t==="horizontal"?r=Jr:r=Qr,n?{...r,preventCollision:n}:r}et();function ma(t){let e=typeof globalThis.getComputedStyle=="function"?globalThis.getComputedStyle(t):null;if(!e)return t.clientWidth;let n=o=>{let a=Number.parseFloat(o);return Number.isFinite(a)?a:0},r=Number.parseFloat(e.width);return Number.isFinite(r)?Math.max(0,r):Math.max(0,t.clientWidth-n(e.paddingLeft)-n(e.paddingRight))}function Yn(t={}){let{measureBeforeMount:e=!1,initialWidth:n=1280}=t,[r,o]=at(n),[a,s]=at(!e),i=q(null),l=q(null),c=U(()=>{let p=i.current;if(p){let d=Math.round(ma(p));o(g=>g===d?g:d),a||s(!0)}},[a]);return qt(()=>{let p=i.current;if(p){if(c(),typeof ResizeObserver<"u"){let d=null;return l.current=new ResizeObserver(g=>{let z=g[0];if(z){let w=Math.round(z.contentRect.width);d!==null&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{o(k=>k===w?k:w),d=null})}}),l.current.observe(p),()=>{d!==null&&cancelAnimationFrame(d),l.current&&(l.current.disconnect(),l.current=null)}}return()=>{l.current&&(l.current.disconnect(),l.current=null)}}},[c]),{width:r,mounted:a,containerRef:i,measureWidth:c}}et();et();var G=sn(me(),1);Ce();function uo(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(e=0;e<o;e++)t[e]&&(n=uo(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function Xn(){for(var t,e,n=0,r="",o=arguments.length;n<o;n++)(t=arguments[n])&&(e=uo(t))&&(r&&(r+=" "),r+=e);return r}var $n=Xn;et();var gt=sn(me(),1);Ce();function Jn(t,e){for(let n=0,r=t.length;n<r;n++)if(e.apply(e,[t[n],n,t]))return t[n]}function fo(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Function]"}function $e(t){return typeof t=="number"&&!isNaN(t)}function yt(t){return parseInt(t,10)}function Oe(t,e,n){if(t[e])return new Error(`Invalid prop ${e} passed to ${n} - do not set this, set it on the child.`)}var Gn=["Moz","Webkit","O","ms"];function va(t="transform"){var e,n;if(typeof window>"u")return"";let r=(n=(e=window.document)==null?void 0:e.documentElement)==null?void 0:n.style;if(!r||t in r)return"";for(let o=0;o<Gn.length;o++)if(yo(t,Gn[o])in r)return Gn[o];return""}function yo(t,e){return e?`${e}${wa(t)}`:t}function wa(t){let e="",n=!0;for(let r=0;r<t.length;r++)n?(e+=t[r].toUpperCase(),n=!1):t[r]==="-"?n=!0:e+=t[r];return e}var Sa=va(),Fn="";function xa(t,e){var n;Fn||(Fn=(n=Jn(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(o){return fo(t[o])}))!=null?n:"");let r=t[Fn];return fo(r)?!!r.call(t,e):!1}function po(t,e,n){let r=t;do{if(xa(r,e))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function Un(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.addEventListener?t.addEventListener(e,a,o):t.attachEvent?t.attachEvent("on"+e,a):t["on"+e]=a}function ye(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.removeEventListener?t.removeEventListener(e,a,o):t.detachEvent?t.detachEvent("on"+e,a):t["on"+e]=null}function Da(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=yt(n.borderTopWidth),e+=yt(n.borderBottomWidth),e}function Ca(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=yt(n.borderLeftWidth),e+=yt(n.borderRightWidth),e}function Ra(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=yt(n.paddingTop),e-=yt(n.paddingBottom),e}function Ea(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=yt(n.paddingLeft),e-=yt(n.paddingRight),e}function za(t,e,n){let o=e===e.ownerDocument.body?{left:0,top:0}:e.getBoundingClientRect(),a=(t.clientX+e.scrollLeft-o.left)/n,s=(t.clientY+e.scrollTop-o.top)/n;return{x:a,y:s}}function Oa(t,e){let n=bo(t,e,"px");return{[yo("transform",Sa)]:n}}function ka(t,e){return bo(t,e,"")}function bo({x:t,y:e},n,r){let o=`translate(${t}${r},${e}${r})`;if(n){let a=`${typeof n.x=="string"?n.x:n.x+r}`,s=`${typeof n.y=="string"?n.y:n.y+r}`;o=`translate(${a}, ${s})`+o}return o}function Pa(t,e){return t.targetTouches&&Jn(t.targetTouches,n=>e===n.identifier)||t.changedTouches&&Jn(t.changedTouches,n=>e===n.identifier)}function Ma(t){if(t.targetTouches&&t.targetTouches[0])return t.targetTouches[0].identifier;if(t.changedTouches&&t.changedTouches[0])return t.changedTouches[0].identifier}function Na(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0}function La(t,e){if(!t)return;let n=t.getElementById("react-draggable-style-el");if(!n){n=t.createElement("style"),n.type="text/css",n.id="react-draggable-style-el";let r=e??Na();r&&n.setAttribute("nonce",r),n.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
3
+ `,t.getElementsByTagName("head")[0].appendChild(n)}t.body&&bi(t.body,"react-draggable-transparent-selection")}function Co(t){window.requestAnimationFrame?window.requestAnimationFrame(()=>{Ro(t)}):Ro(t)}function Ro(t){if(t)try{t.body&&vi(t.body,"react-draggable-transparent-selection");let e=t.selection;if(e)e.empty();else{let n=(t.defaultView||window).getSelection();n&&n.type!=="Caret"&&n.removeAllRanges()}}catch{}}function bi(t,e){t.classList?t.classList.add(e):t.className.match(new RegExp(`(?:^|\\s)${e}(?!\\S)`))||(t.className+=` ${e}`)}function vi(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(`(?:^|\\s)${e}(?!\\S)`,"g"),"")}function wi(t,e,n){if(!t.props.bounds)return[e,n];let{bounds:r}=t.props;r=typeof r=="string"?r:Di(r);let o=cr(t);if(typeof r=="string"){let{ownerDocument:a}=o,s=a.defaultView;if(!s)throw new Error("Cannot resolve the owner window of the draggable node.");let i;if(r==="parent"?i=o.parentNode:i=o.getRootNode().querySelector(r),!(i instanceof s.HTMLElement))throw new Error('Bounds selector "'+r+'" could not find an element.');let l=i,c=s.getComputedStyle(o),p=s.getComputedStyle(l);r={left:-o.offsetLeft+St(p.paddingLeft)+St(c.marginLeft),top:-o.offsetTop+St(p.paddingTop)+St(c.marginTop),right:ui(l)-li(o)-o.offsetLeft+St(p.paddingRight)-St(c.marginRight),bottom:ci(l)-ii(o)-o.offsetTop+St(p.paddingBottom)-St(c.marginBottom)}}return Fe(r.right)&&(e=Math.min(e,r.right)),Fe(r.bottom)&&(n=Math.min(n,r.bottom)),Fe(r.left)&&(e=Math.max(e,r.left)),Fe(r.top)&&(n=Math.max(n,r.top)),[e,n]}function Eo(t,e,n){let r=Math.round(e/t[0])*t[0],o=Math.round(n/t[1])*t[1];return[r,o]}function xi(t){return t.props.axis==="both"||t.props.axis==="x"}function Si(t){return t.props.axis==="both"||t.props.axis==="y"}function or(t,e,n){let r=typeof e=="number"?hi(t,e):null;if(typeof e=="number"&&!r)return null;let o=cr(n),a=n.props.offsetParent||o.offsetParent||o.ownerDocument.body;return di(r||t,a,n.props.scale)}function sr(t,e,n){let r=!Fe(t.lastX),o=cr(t);return r?{node:o,deltaX:0,deltaY:0,lastX:e,lastY:n,x:e,y:n}:{node:o,deltaX:e-t.lastX,deltaY:n-t.lastY,lastX:t.lastX,lastY:t.lastY,x:e,y:n}}function ar(t,e){let n=t.props.scale;return{node:e.node,x:t.state.x+e.deltaX/n,y:t.state.y+e.deltaY/n,deltaX:e.deltaX/n,deltaY:e.deltaY/n,lastX:t.state.x,lastY:t.state.y}}function Di(t){return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}function cr(t){let e=t.findDOMNode();if(!e)throw new Error("<DraggableCore>: Unmounted during event!");return e}var ir=Pe((nt(),ge(ie))),xt=Pe(me()),Ci=Pe((Ce(),ge(On))),Ri=typeof process<"u"&&process.env.DRAGGABLE_DEBUG?console.log.bind(console):function(){},Ft=Ri,It={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},pe=It.mouse,ve=class extends ir.Component{constructor(){super(...arguments),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,this.touchIdentifier=null,this.mounted=!1,this.handleDragStart=t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&(typeof t.button=="number"&&t.button!==0||t.ctrlKey))return!1;let e=this.findDOMNode();if(!e||!e.ownerDocument||!e.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");let{ownerDocument:n}=e;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!Do(t.target,this.props.handle,e)||this.props.cancel&&Do(t.target,this.props.cancel,e))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();let r=gi(t);this.touchIdentifier=r;let o=or(t,r,this);if(o==null)return;let{x:a,y:s}=o,i=sr(this,a,s);Ft("DraggableCore: handleDragStart: %j",i),Ft("calling",this.props.onStart),!(this.props.onStart(t,i)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&yi(n,this.props.nonce),this.dragging=!0,this.lastX=a,this.lastY=s,rr(n,pe.move,this.handleDrag),rr(n,pe.stop,this.handleDragStop))},this.handleDrag=t=>{let e=or(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let s=n-this.lastX,i=r-this.lastY;if([s,i]=Eo(this.props.grid,s,i),!s&&!i)return;n=this.lastX+s,r=this.lastY+i}let o=sr(this,n,r);if(Ft("DraggableCore: handleDrag: %j",o),this.props.onDrag(t,o)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{let s=document.createEvent("MouseEvents");s.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(s)}return}this.lastX=n,this.lastY=r},this.handleDragStop=t=>{if(!this.dragging)return;let e=or(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let i=n-this.lastX||0,l=r-this.lastY||0;[i,l]=Eo(this.props.grid,i,l),n=this.lastX+i,r=this.lastY+l}let o=sr(this,n,r);if(this.props.onStop(t,o)===!1||this.mounted===!1)return!1;let s=this.findDOMNode();s&&this.props.enableUserSelectHack&&Co(s.ownerDocument),Ft("DraggableCore: handleDragStop: %j",o),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&(Ft("DraggableCore: Removing handlers"),be(s.ownerDocument,pe.move,this.handleDrag),be(s.ownerDocument,pe.stop,this.handleDragStop))},this.onMouseDown=t=>(pe=It.mouse,this.handleDragStart(t)),this.onMouseUp=t=>(pe=It.mouse,this.handleDragStop(t)),this.onTouchStart=t=>(pe=It.touch,this.handleDragStart(t)),this.onTouchEnd=t=>(pe=It.touch,this.handleDragStop(t))}componentDidMount(){this.mounted=!0;let t=this.findDOMNode();t&&rr(t,It.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;let t=this.findDOMNode();if(t){let{ownerDocument:e}=t;be(e,It.mouse.move,this.handleDrag),be(e,It.touch.move,this.handleDrag),be(e,It.mouse.stop,this.handleDragStop),be(e,It.touch.stop,this.handleDragStop),be(t,It.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&Co(e)}}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=Ci.default;return typeof e.findDOMNode=="function"?e.findDOMNode(this):(Ft("react-draggable: ReactDOM.findDOMNode is not available in React 19+. You must provide a nodeRef prop. See: https://github.com/react-grid-layout/react-draggable#noderef"),null)}render(){return ir.cloneElement(ir.Children.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};ve.displayName="DraggableCore";ve.propTypes={allowAnyClick:xt.default.bool,allowMobileScroll:xt.default.bool,children:xt.default.node.isRequired,disabled:xt.default.bool,enableUserSelectHack:xt.default.bool,offsetParent:function(t,e){if(t[e]&&t[e].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:xt.default.arrayOf(xt.default.number),handle:xt.default.string,cancel:xt.default.string,nodeRef:xt.default.object,nonce:xt.default.string,onStart:xt.default.func,onDrag:xt.default.func,onStop:xt.default.func,onMouseDown:xt.default.func,scale:xt.default.number,className:Oe,style:Oe,transform:Oe};ve.defaultProps={allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1};var mn=class extends hn.Component{constructor(t){super(t),this.onDragStart=(e,n)=>{if(Ft("Draggable: onDragStart: %j",n),this.props.onStart(e,ar(this,n))===!1)return!1;this.setState({dragging:!0,dragged:!0})},this.onDrag=(e,n)=>{if(!this.state.dragging)return!1;Ft("Draggable: onDrag: %j",n);let r=ar(this,n),o={x:r.x,y:r.y,slackX:0,slackY:0};if(this.props.bounds){let{x:s,y:i}=o;o.x+=this.state.slackX,o.y+=this.state.slackY;let[l,c]=wi(this,o.x,o.y);o.x=l,o.y=c,o.slackX=this.state.slackX+(s-o.x),o.slackY=this.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-this.state.x,r.deltaY=o.y-this.state.y}if(this.props.onDrag(e,r)===!1)return!1;this.setState(o)},this.onDragStop=(e,n)=>{if(!this.state.dragging||this.props.onStop(e,ar(this,n))===!1)return!1;Ft("Draggable: onDragStop: %j",n);let o={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){let{x:s,y:i}=this.props.position;o.x=s,o.y=i}this.setState(o)},this.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,prevPropsPosition:{...t.position},slackX:0,slackY:0,isElementSVG:!1},t.position&&!(t.onDrag||t.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}static getDerivedStateFromProps({position:t},{prevPropsPosition:e}){return t&&(!e||t.x!==e.x||t.y!==e.y)?(Ft("Draggable: getDerivedStateFromProps %j",{position:t,prevPropsPosition:e}),{x:t.x,y:t.y,prevPropsPosition:{...t}}):null}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=ei.default;return typeof e.findDOMNode=="function"?e.findDOMNode(this):null}render(){let{axis:t,bounds:e,children:n,defaultPosition:r,defaultClassName:o,defaultClassNameDragging:a,defaultClassNameDragged:s,position:i,positionOffset:l,scale:c,...p}=this.props,f={},h=null,S=!!!i||this.state.dragging,O=i||r,x={x:xi(this)&&S?this.state.x:O.x,y:Si(this)&&S?this.state.y:O.y};this.state.isElementSVG?h=pi(x,l):f=fi(x,l);let b=hn.Children.only(n),ct=(0,ni.clsx)(b.props.className||"",o,{[a]:this.state.dragging,[s]:this.state.dragged});return hn.createElement(ve,{...p,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop},hn.cloneElement(b,{className:ct,style:{...b.props.style,...f},transform:h}))}};mn.displayName="Draggable";mn.propTypes={...ve.propTypes,axis:J.default.oneOf(["both","x","y","none"]),bounds:J.default.oneOfType([J.default.shape({left:J.default.number,right:J.default.number,top:J.default.number,bottom:J.default.number}),J.default.string,J.default.oneOf([!1])]),defaultClassName:J.default.string,defaultClassNameDragging:J.default.string,defaultClassNameDragged:J.default.string,defaultPosition:J.default.shape({x:J.default.number,y:J.default.number}),positionOffset:J.default.shape({x:J.default.oneOfType([J.default.number,J.default.string]),y:J.default.oneOfType([J.default.number,J.default.string])}),position:J.default.shape({x:J.default.number,y:J.default.number}),className:Oe,style:Oe,transform:Oe};mn.defaultProps={...ve.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1}});var dr=_t((pc,yn)=>{"use strict";var ur=Lo(),Ei=ur.DraggableCore,No=ur.default||ur;yn.exports=No;yn.exports.default=No;yn.exports.DraggableCore=Ei});var Bo=_t(fr=>{"use strict";fr.__esModule=!0;fr.cloneElement=Li;var zi=ki((nt(),ge(ie)));function ki(t){return t&&t.__esModule?t:{default:t}}function _o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function To(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?_o(Object(n),!0).forEach(function(r){Oi(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_o(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Oi(t,e,n){return(e=Pi(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Pi(t){var e=Mi(t,"string");return typeof e=="symbol"?e:e+""}function Mi(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Li(t,e){return e.style&&t.props.style&&(e.style=To(To({},t.props.style),e.style)),e.className&&t.props.className&&(e.className=t.props.className+" "+e.className),zi.default.cloneElement(t,e)}});var pr=_t(bn=>{"use strict";bn.__esModule=!0;bn.resizableProps=void 0;var R=Ni(me()),gc=dr();function Ni(t){return t&&t.__esModule?t:{default:t}}var mc=bn.resizableProps={axis:R.default.oneOf(["both","x","y","none"]),className:R.default.string,children:R.default.element.isRequired,draggableOpts:R.default.shape({allowAnyClick:R.default.bool,cancel:R.default.string,children:R.default.node,disabled:R.default.bool,enableUserSelectHack:R.default.bool,offsetParent:typeof Element<"u"?R.default.instanceOf(Element):R.default.any,grid:R.default.arrayOf(R.default.number),handle:R.default.string,nodeRef:R.default.object,onStart:R.default.func,onDrag:R.default.func,onStop:R.default.func,onMouseDown:R.default.func,scale:R.default.number}),height:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];let r=e[0];return r.axis==="both"||r.axis==="y"?R.default.number.isRequired(...e):R.default.number(...e)},handle:R.default.oneOfType([R.default.node,R.default.func]),handleSize:R.default.arrayOf(R.default.number),lockAspectRatio:R.default.bool,maxConstraints:R.default.arrayOf(R.default.number),minConstraints:R.default.arrayOf(R.default.number),onResizeStop:R.default.func,onResizeStart:R.default.func,onResize:R.default.func,resizeHandles:R.default.arrayOf(R.default.oneOf(["s","w","e","n","sw","nw","se","ne"])),transformScale:R.default.number,width:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];let r=e[0];return r.axis==="both"||r.axis==="x"?R.default.number.isRequired(...e):R.default.number(...e)}}});var mr=_t(vn=>{"use strict";vn.__esModule=!0;vn.default=void 0;var Me=Ho((nt(),ge(ie))),_i=dr(),Ti=Bo(),Bi=pr(),ji=["children","className","draggableOpts","width","height","handle","handleSize","lockAspectRatio","axis","minConstraints","maxConstraints","onResize","onResizeStop","onResizeStart","resizeHandles","transformScale"];function Ho(t,e){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(Ho=function(o,a){if(!a&&o&&o.__esModule)return o;var s,i,l={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return l;if(s=a?r:n){if(s.has(o))return s.get(o);s.set(o,l)}for(let c in o)c!=="default"&&{}.hasOwnProperty.call(o,c)&&((i=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,c))&&(i.get||i.set)?s(l,c,i):l[c]=o[c]);return l})(t,e)}function gr(){return gr=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},gr.apply(null,arguments)}function Hi(t,e){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.indexOf(r)!==-1)continue;n[r]=t[r]}return n}function jo(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function hr(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?jo(Object(n),!0).forEach(function(r){Ai(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):jo(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Ai(t,e,n){return(e=Wi(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Wi(t){var e=Ii(t,"string");return typeof e=="symbol"?e:e+""}function Ii(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Ue=class extends Me.Component{constructor(){super(...arguments),this.handleRefs={},this.lastHandleRect=null,this.slack=null,this.lastSize=null}componentWillUnmount(){this.resetData()}resetData(){this.lastHandleRect=this.slack=this.lastSize=null}runConstraints(e,n){let r=this.props,o=r.minConstraints,a=r.maxConstraints,s=r.lockAspectRatio;if(!o&&!a&&!s)return[e,n];if(s){let h=this.props.width/this.props.height,E=e-this.props.width,S=n-this.props.height;Math.abs(E)>Math.abs(S*h)?n=e/h:e=n*h}let i=e,l=n,c=this.slack||[0,0],p=c[0],f=c[1];return e+=p,n+=f,o&&(e=Math.max(o[0],e),n=Math.max(o[1],n)),a&&(e=Math.min(a[0],e),n=Math.min(a[1],n)),this.slack=[p+(i-e),f+(l-n)],[e,n]}resizeHandler(e,n){return(r,o)=>{var a,s,i,l;let c=o.node,p=o.deltaX,f=o.deltaY;e==="onResizeStart"&&this.resetData();let h=(this.props.axis==="both"||this.props.axis==="x")&&n!=="n"&&n!=="s",E=(this.props.axis==="both"||this.props.axis==="y")&&n!=="e"&&n!=="w";if(!h&&!E)return;let S=n[0],O=n[n.length-1],x=c.getBoundingClientRect();if(this.lastHandleRect!=null){if(O==="w"){let Dt=x.left-this.lastHandleRect.left;p+=Dt}if(S==="n"){let Dt=x.top-this.lastHandleRect.top;f+=Dt}}this.lastHandleRect=x,O==="w"&&(p=-p),S==="n"&&(f=-f);let b=(a=(s=this.lastSize)==null?void 0:s.width)!=null?a:this.props.width,ct=(i=(l=this.lastSize)==null?void 0:l.height)!=null?i:this.props.height,V=b+(h?p/this.props.transformScale:0),ut=ct+(E?f/this.props.transformScale:0);var rt=this.runConstraints(V,ut);if(V=rt[0],ut=rt[1],e==="onResizeStop"&&this.lastSize){var it=this.lastSize;V=it.width,ut=it.height}let dt=V!==b||ut!==ct;e!=="onResizeStop"&&(this.lastSize={width:V,height:ut});let $=typeof this.props[e]=="function"?this.props[e]:null;$&&!(e==="onResize"&&!dt)&&(r.persist==null||r.persist(),$(r,{node:c,size:{width:V,height:ut},handle:n})),e==="onResizeStop"&&this.resetData()}}renderResizeHandle(e,n){let r=this.props.handle;if(!r)return Me.createElement("span",{className:"react-resizable-handle react-resizable-handle-"+e,ref:n});if(typeof r=="function")return r(e,n);let o=typeof r.type=="string",a=hr({ref:n},o?{}:{handleAxis:e});return Me.cloneElement(r,a)}render(){let e=this.props,n=e.children,r=e.className,o=e.draggableOpts,a=e.width,s=e.height,i=e.handle,l=e.handleSize,c=e.lockAspectRatio,p=e.axis,f=e.minConstraints,h=e.maxConstraints,E=e.onResize,S=e.onResizeStop,O=e.onResizeStart,x=e.resizeHandles,b=e.transformScale,ct=Hi(e,ji);return(0,Ti.cloneElement)(n,hr(hr({},ct),{},{className:(r?r+" ":"")+"react-resizable",children:[...Me.Children.toArray(n.props.children),...x.map(V=>{var ut;let rt=(ut=this.handleRefs[V])!=null?ut:this.handleRefs[V]=Me.createRef();return Me.createElement(_i.DraggableCore,gr({},o,{nodeRef:rt,key:"resizableHandle-"+V,onStop:this.resizeHandler("onResizeStop",V),onStart:this.resizeHandler("onResizeStart",V),onDrag:this.resizeHandler("onResize",V)}),this.renderResizeHandle(V,rt))})]}))}};vn.default=Ue;Ue.propTypes=Bi.resizableProps;Ue.defaultProps={axis:"both",handleSize:[20,20],lockAspectRatio:!1,minConstraints:[20,20],maxConstraints:[1/0,1/0],resizeHandles:["se"],transformScale:1}});var qo=_t(Sn=>{"use strict";Sn.__esModule=!0;Sn.default=void 0;var yr=Io((nt(),ge(ie))),qi=Wo(me()),Yi=Wo(mr()),Xi=pr(),$i=["handle","handleSize","onResize","onResizeStart","onResizeStop","draggableOpts","minConstraints","maxConstraints","lockAspectRatio","axis","width","height","resizeHandles","style","transformScale"];function Wo(t){return t&&t.__esModule?t:{default:t}}function Io(t,e){if(typeof WeakMap=="function")var n=new WeakMap,r=new WeakMap;return(Io=function(o,a){if(!a&&o&&o.__esModule)return o;var s,i,l={__proto__:null,default:o};if(o===null||typeof o!="object"&&typeof o!="function")return l;if(s=a?r:n){if(s.has(o))return s.get(o);s.set(o,l)}for(let c in o)c!=="default"&&{}.hasOwnProperty.call(o,c)&&((i=(s=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,c))&&(i.get||i.set)?s(l,c,i):l[c]=o[c]);return l})(t,e)}function br(){return br=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},br.apply(null,arguments)}function Ao(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),n.push.apply(n,r)}return n}function wn(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Ao(Object(n),!0).forEach(function(r){Gi(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ao(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Gi(t,e,n){return(e=Fi(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Fi(t){var e=Ui(t,"string");return typeof e=="symbol"?e:e+""}function Ui(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Vi(t,e){if(t==null)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.indexOf(r)!==-1)continue;n[r]=t[r]}return n}var xn=class extends yr.Component{constructor(){super(...arguments),this.state={width:this.props.width,height:this.props.height,propsWidth:this.props.width,propsHeight:this.props.height},this.onResize=(e,n)=>{let r=n.size;this.props.onResize?(e.persist==null||e.persist(),this.setState(r,()=>this.props.onResize&&this.props.onResize(e,n))):this.setState(r)}}static getDerivedStateFromProps(e,n){return n.propsWidth!==e.width||n.propsHeight!==e.height?{width:e.width,height:e.height,propsWidth:e.width,propsHeight:e.height}:null}render(){let e=this.props,n=e.handle,r=e.handleSize,o=e.onResize,a=e.onResizeStart,s=e.onResizeStop,i=e.draggableOpts,l=e.minConstraints,c=e.maxConstraints,p=e.lockAspectRatio,f=e.axis,h=e.width,E=e.height,S=e.resizeHandles,O=e.style,x=e.transformScale,b=Vi(e,$i);return yr.createElement(Yi.default,{axis:f,draggableOpts:i,handle:n,handleSize:r,height:this.state.height,lockAspectRatio:p,maxConstraints:c,minConstraints:l,onResizeStart:a,onResize:this.onResize,onResizeStop:s,resizeHandles:S,transformScale:x,width:this.state.width},yr.createElement("div",br({},b,{style:wn(wn({},O),{},{width:this.state.width+"px",height:this.state.height+"px"})})))}};Sn.default=xn;xn.propTypes=wn(wn({},Xi.resizableProps),{},{children:qi.default.element})});var Yo=_t((wc,Dn)=>{"use strict";Dn.exports=function(){throw new Error("Don't instantiate Resizable directly! Use require('react-resizable').Resizable")};Dn.exports.Resizable=mr().default;Dn.exports.ResizableBox=qo().default});Ce();nt();var Mr=new Map,ln=new Map,Lr=(t,e)=>Mr.set(t,e),Nr=()=>{ln.forEach(t=>t.unmount()),ln.clear()},_r=(t,e)=>t.querySelectorAll("[data-react-ui]").forEach(n=>{if(ln.has(n))return;let r=Mr.get(n.dataset.reactUi),o=e(n);ln.set(n,o),o.render(u.createElement(r,JSON.parse(n.dataset.props)))});var Tr=(t,e)=>{let n=()=>_r(t,e);t.addEventListener("turbo:load",n),t.addEventListener("turbo:frame-load",n),t.addEventListener("turbo:before-cache",Nr),t.readyState==="loading"?t.addEventListener("DOMContentLoaded",n):n()};nt();nt();var Re=(...t)=>t.filter(Boolean).join(" ");var ea={primary:"ks-button-primary",secondary:"ks-button-secondary",danger:"ks-button-danger"},na={sm:"ks-button-sm",md:"ks-button-md",lg:"ks-button-lg"},ra=({variant:t="primary",size:e="md",className:n,children:r,...o})=>{let a=o.href?"a":"button";return u.createElement(a,{...o,className:Re("ks-button",ea[t],na[e],n)},r)},Mn=ra;nt();var oa=({maxWidth:t="full",padding:e="standard",topOffset:n,className:r,children:o})=>u.createElement("div",{className:Re(e!=="none"&&"ks-page",n&&`ks-page-offset-${n}`,t!=="full"&&`ks-page-${t}`,r)},o),Br=oa;nt();var sa=({title:t,subtitle:e,actions:n,className:r})=>u.createElement("div",{className:Re("ks-page-header",r)},u.createElement("div",null,u.createElement("h1",{className:"ks-page-header-title"},t),e&&u.createElement("p",{className:"ks-page-header-subtitle"},e)),n&&u.createElement("div",{className:"page-header-actions ks-page-header-actions"},n)),jr=sa;nt();function ce(t){let{margin:e,containerPadding:n,containerWidth:r,cols:o}=t;return(r-e[0]*(o-1)-n[0]*2)/o}function At(t,e,n){return Number.isFinite(t)?Math.round(e*t+Math.max(0,t-1)*n):t}function Ie(t,e,n,r,o,a,s){let{margin:i,containerPadding:l,rowHeight:c}=t,p=ce(t),f,h,E,S;if(s?(f=Math.round(s.width),h=Math.round(s.height)):(f=At(r,p,i[0]),h=At(o,c,i[1])),a?(E=Math.round(a.top),S=Math.round(a.left)):s?(E=Math.round(s.top),S=Math.round(s.left)):(E=Math.round((c+i[1])*n+l[1]),S=Math.round((p+i[0])*e+l[0])),!a&&!s){if(Number.isFinite(r)){let x=Math.round((p+i[0])*(e+r)+l[0])-S-f;x!==i[0]&&(f+=x-i[0])}if(Number.isFinite(o)){let x=Math.round((c+i[1])*(n+o)+l[1])-E-h;x!==i[1]&&(h+=x-i[1])}}return{top:E,left:S,width:f,height:h}}function Ar(t,e,n,r,o){let{margin:a,containerPadding:s,cols:i,rowHeight:l,maxRows:c}=t,p=ce(t),f=Math.round((n-s[0])/(p+a[0])),h=Math.round((e-s[1])/(l+a[1]));return f=We(f,0,i-r),h=We(h,0,c-o),{x:f,y:h}}function qe(t,e,n){let{margin:r,containerPadding:o,rowHeight:a}=t,s=ce(t),i=Math.round((n-o[0])/(s+r[0])),l=Math.round((e-o[1])/(a+r[1]));return{x:i,y:l}}function Wr(t,e,n){let{margin:r,rowHeight:o}=t,a=ce(t),s=Math.max(1,Math.round((e+r[0])/(a+r[0]))),i=Math.max(1,Math.round((n+r[1])/(o+r[1])));return{w:s,h:i}}function We(t,e,n){return Math.max(Math.min(t,n),e)}function un(t,e){return!(t.i===e.i||t.x+t.w<=e.x||t.x>=e.x+e.w||t.y+t.h<=e.y||t.y>=e.y+e.h)}function ue(t,e){for(let n=0;n<t.length;n++){let r=t[n];if(r!==void 0&&un(r,e))return r}}function Ln(t,e){return t.filter(n=>un(n,e))}function aa(t,e){return e==="horizontal"?Nn(t):e==="vertical"||e==="wrap"?cn(t):[...t]}function cn(t){return[...t].sort((e,n)=>e.y!==n.y?e.y-n.y:e.x-n.x)}function Nn(t){return[...t].sort((e,n)=>e.x!==n.x?e.x-n.x:e.y-n.y)}function Ye(t){let e=0;for(let n=0;n<t.length;n++){let r=t[n];if(r!==void 0){let o=r.y+r.h;o>e&&(e=o)}}return e}function de(t,e){for(let n=0;n<t.length;n++){let r=t[n];if(r!==void 0&&r.i===e)return r}}function Xe(t){return t.filter(e=>e.static===!0)}function Qt(t){return{i:t.i,x:t.x,y:t.y,w:t.w,h:t.h,minW:t.minW,maxW:t.maxW,minH:t.minH,maxH:t.maxH,moved:!!t.moved,static:!!t.static,isDraggable:t.isDraggable,isResizable:t.isResizable,resizeHandles:t.resizeHandles,constraints:t.constraints,isBounded:t.isBounded}}function Ee(t){let e=new Array(t.length);for(let n=0;n<t.length;n++){let r=t[n];r!==void 0&&(e[n]=Qt(r))}return e}function ia(t,e){let n=new Array(t.length);for(let r=0;r<t.length;r++){let o=t[r];o!==void 0&&(e.i===o.i?n[r]=e:n[r]=o)}return n}function Ir(t,e,n){let r=de(t,e);return r?(r=n(Qt(r)),[ia(t,r),r]):[[...t],null]}function _n(t,e){let n=Xe(t);for(let r=0;r<t.length;r++){let o=t[r];if(o!==void 0)if(o.x+o.w>e.cols&&(o.x=e.cols-o.w),o.x<0&&(o.x=0,o.w=e.cols),!o.static)n.push(o);else for(;ue(n,o);)o.y++}return t}function le(t,e,n,r,o,a,s,i,l){if(e.static&&e.isDraggable!==!0)return[...t];if(e.y===r&&e.x===n)return[...t];let c=e.x,p=e.y;typeof n=="number"&&(e.x=n),typeof r=="number"&&(e.y=r),e.moved=!0;let f=aa(t,s);(s==="vertical"&&typeof r=="number"?p>=r:s==="horizontal"&&typeof n=="number"&&c>=n)&&(f=f.reverse());let E=Ln(f,e),S=E.length>0;if(S&&l)return Ee(t);if(S&&a)return e.x=c,e.y=p,e.moved=!1,t;let O=[...t];for(let x=0;x<E.length;x++){let b=E[x];b!==void 0&&(b.moved||(b.static?O=Hr(O,b,e,o,s):O=Hr(O,e,b,o,s)))}return O}function Hr(t,e,n,r,o,a){let s=o==="horizontal",i=o==="vertical",l=e.static;if(r){r=!1;let f={x:s?Math.max(e.x-n.w,0):n.x,y:i?Math.max(e.y-n.h,0):n.y,w:n.w,h:n.h,i:"-1"},h=ue(t,f),E=h!==void 0&&h.y+h.h>e.y,S=h!==void 0&&e.x+e.w>h.x;if(!h)return le(t,n,s?f.x:void 0,i?f.y:void 0,r,l,o);if(E&&i)return le(t,n,void 0,n.y+1,r,l,o);if(E&&o===null)return e.y=n.y,n.y=n.y+n.h,[...t];if(S&&s)return le(t,e,n.x,void 0,r,l,o)}let c=s?n.x+1:void 0,p=i?n.y+1:void 0;return c===void 0&&p===void 0?[...t]:le(t,n,c,p,r,l,o)}function ze(t,e,n){return Math.max(e,Math.min(n,t))}var la={name:"gridBounds",constrainPosition(t,e,n,{cols:r,maxRows:o}){return{x:ze(e,0,Math.max(0,r-t.w)),y:ze(n,0,Math.max(0,o-t.h))}},constrainSize(t,e,n,r,{cols:o,maxRows:a}){let s=r==="w"||r==="nw"||r==="sw"?t.x+t.w:o-t.x,i=r==="n"||r==="nw"||r==="ne"?t.y+t.h:a-t.y;return{w:ze(e,1,Math.max(1,s)),h:ze(n,1,Math.max(1,i))}}},ca={name:"minMaxSize",constrainSize(t,e,n){return{w:ze(e,t.minW??1,t.maxW??1/0),h:ze(n,t.minH??1,t.maxH??1/0)}}};var Tn=[la,ca];function $e(t,e,n,r,o){let a={x:n,y:r};for(let s of t)s.constrainPosition&&(a=s.constrainPosition(e,a.x,a.y,o));if(e.constraints)for(let s of e.constraints)s.constrainPosition&&(a=s.constrainPosition(e,a.x,a.y,o));return a}function qr(t,e,n,r,o,a){let s={w:n,h:r};for(let i of t)i.constrainSize&&(s=i.constrainSize(e,s.w,s.h,o,a));if(e.constraints)for(let i of e.constraints)i.constrainSize&&(s=i.constrainSize(e,s.w,s.h,o,a));return s}function Bn({top:t,left:e,width:n,height:r}){let o=`translate(${e}px,${t}px)`;return{transform:o,WebkitTransform:o,MozTransform:o,msTransform:o,OTransform:o,width:`${n}px`,height:`${r}px`,position:"absolute"}}function Yr({top:t,left:e,width:n,height:r}){return{top:`${t}px`,left:`${e}px`,width:`${n}px`,height:`${r}px`,position:"absolute"}}function jn(t){return t*100+"%"}function ua(t,e,n,r){return t+n>r?e:n}function Xr(t,e,n){return t<0?e:n}function da(t){return Math.max(0,t)}function dn(t){return Math.max(0,t)}var Hn=(t,e,n)=>{let{left:r,height:o,width:a}=e,s=t.top-(o-t.height);return{left:r,width:a,height:Xr(s,t.height,o),top:dn(s)}},An=(t,e,n)=>{let{top:r,left:o,height:a,width:s}=e;return{top:r,height:a,width:ua(t.left,t.width,s,n),left:da(o)}},Wn=(t,e,n)=>{let{top:r,height:o,width:a}=e,s=t.left+t.width-a;return s<0?{height:o,width:t.left+t.width,top:dn(r),left:0}:{height:o,width:a,top:dn(r),left:s}},In=(t,e,n)=>{let{top:r,left:o,height:a,width:s}=e;return{width:s,left:o,height:Xr(r,t.height,a),top:dn(r)}},fa=(t,e,n)=>Hn(t,An(t,e,n)),pa=(t,e,n)=>Hn(t,Wn(t,e)),ha=(t,e,n)=>In(t,An(t,e,n)),ga=(t,e,n)=>In(t,Wn(t,e)),ma={n:Hn,ne:fa,e:An,se:ha,s:In,sw:ga,w:Wn,nw:pa};function $r(t,e,n,r){let o=ma[t];return o?o(e,{...e,...n},r):n}var ya={type:"transform",scale:1,calcStyle(t){return Bn(t)}};var Gr=ya,Fr={cols:12,rowHeight:150,margin:[10,10],containerPadding:null,maxRows:1/0},Ur={enabled:!0,bounded:!1,threshold:3},Vr={enabled:!0,handles:["se"]},Kr={enabled:!1,defaultItem:{w:1,h:1}};function qn(t,e,n,r,o){let a=r==="x"?"w":"h";e[r]+=1;let s=t.findIndex(l=>l.i===e.i),i=o??Xe(t).length>0;for(let l=s+1;l<t.length;l++){let c=t[l];if(c!==void 0&&!c.static){if(!i&&c.y>e.y+e.h)break;un(e,c)&&qn(t,c,n+e[a],r,i)}}e[r]=n}function ba(t,e,n,r){for(e.x=Math.max(e.x,0),e.y=Math.max(e.y,0),e.y=Math.min(r,e.y);e.y>0&&!ue(t,e);)e.y--;let o;for(;(o=ue(t,e))!==void 0;)qn(n,e,o.y+o.h,"y");return e.y=Math.max(e.y,0),e}function va(t,e,n,r){for(e.x=Math.max(e.x,0),e.y=Math.max(e.y,0);e.x>0&&!ue(t,e);)e.x--;let o;for(;(o=ue(t,e))!==void 0;)if(qn(r,e,o.x+o.w,"x"),e.x+e.w>n)for(e.x=n-e.w,e.y++;e.x>0&&!ue(t,e);)e.x--;return e.x=Math.max(e.x,0),e}var Zr={type:"vertical",allowOverlap:!1,compact(t,e){let n=Xe(t),r=Ye(n),o=cn(t),a=new Array(t.length);for(let s=0;s<o.length;s++){let i=o[s];if(i===void 0)continue;let l=Qt(i);l.static||(l=ba(n,l,o,r),r=Math.max(r,l.y+l.h),n.push(l));let c=t.indexOf(i);a[c]=l,l.moved=!1}return a}},Jr={type:"horizontal",allowOverlap:!1,compact(t,e){let n=Xe(t),r=Nn(t),o=new Array(t.length);for(let a=0;a<r.length;a++){let s=r[a];if(s===void 0)continue;let i=Qt(s);i.static||(i=va(n,i,e,r),n.push(i));let l=t.indexOf(s);o[l]=i,i.moved=!1}return o}},Qr={type:null,allowOverlap:!1,compact(t,e){return Ee(t)}},wa={...Zr,allowOverlap:!0,compact(t,e){return Ee(t)}},xa={...Jr,allowOverlap:!0,compact(t,e){return Ee(t)}},Sa={...Qr,allowOverlap:!0};function to(t,e=!1,n=!1){let r;return e?t==="vertical"?r=wa:t==="horizontal"?r=xa:r=Sa:t==="vertical"?r=Zr:t==="horizontal"?r=Jr:r=Qr,n?{...r,preventCollision:n}:r}nt();function Da(t){let e=typeof globalThis.getComputedStyle=="function"?globalThis.getComputedStyle(t):null;if(!e)return t.clientWidth;let n=o=>{let a=Number.parseFloat(o);return Number.isFinite(a)?a:0},r=Number.parseFloat(e.width);return Number.isFinite(r)?Math.max(0,r):Math.max(0,t.clientWidth-n(e.paddingLeft)-n(e.paddingRight))}function Yn(t={}){let{measureBeforeMount:e=!1,initialWidth:n=1280}=t,[r,o]=st(n),[a,s]=st(!e),i=M(null),l=M(null),c=Z(()=>{let p=i.current;if(p){let f=Math.round(Da(p));o(h=>h===f?h:f),a||s(!0)}},[a]);return Ht(()=>{let p=i.current;if(p){if(c(),typeof ResizeObserver<"u"){let f=null;return l.current=new ResizeObserver(h=>{let E=h[0];if(E){let S=Math.round(E.contentRect.width);f!==null&&cancelAnimationFrame(f),f=requestAnimationFrame(()=>{o(O=>O===S?O:S),f=null})}}),l.current.observe(p),()=>{f!==null&&cancelAnimationFrame(f),l.current&&(l.current.disconnect(),l.current=null)}}return()=>{l.current&&(l.current.disconnect(),l.current=null)}}},[c]),{width:r,mounted:a,containerRef:i,measureWidth:c}}nt();nt();var U=an(me(),1);Ce();function uo(t){var e,n,r="";if(typeof t=="string"||typeof t=="number")r+=t;else if(typeof t=="object")if(Array.isArray(t)){var o=t.length;for(e=0;e<o;e++)t[e]&&(n=uo(t[e]))&&(r&&(r+=" "),r+=n)}else for(n in t)t[n]&&(r&&(r+=" "),r+=n);return r}function Xn(){for(var t,e,n=0,r="",o=arguments.length;n<o;n++)(t=arguments[n])&&(e=uo(t))&&(r&&(r+=" "),r+=e);return r}var $n=Xn;nt();var yt=an(me(),1);Ce();function Jn(t,e){for(let n=0,r=t.length;n<r;n++)if(e.apply(e,[t[n],n,t]))return t[n]}function fo(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Function]"}function Ge(t){return typeof t=="number"&&!isNaN(t)}function wt(t){return parseInt(t,10)}function ke(t,e,n){if(t[e])return new Error(`Invalid prop ${e} passed to ${n} - do not set this, set it on the child.`)}var Gn=["Moz","Webkit","O","ms"];function Ea(t="transform"){var e,n;if(typeof window>"u")return"";let r=(n=(e=window.document)==null?void 0:e.documentElement)==null?void 0:n.style;if(!r||t in r)return"";for(let o=0;o<Gn.length;o++)if(yo(t,Gn[o])in r)return Gn[o];return""}function yo(t,e){return e?`${e}${za(t)}`:t}function za(t){let e="",n=!0;for(let r=0;r<t.length;r++)n?(e+=t[r].toUpperCase(),n=!1):t[r]==="-"?n=!0:e+=t[r];return e}var ka=Ea(),Fn="";function Oa(t,e){var n;Fn||(Fn=(n=Jn(["matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector"],function(o){return fo(t[o])}))!=null?n:"");let r=t[Fn];return fo(r)?!!r.call(t,e):!1}function po(t,e,n){let r=t;do{if(Oa(r,e))return!0;if(r===n)return!1;r=r.parentNode}while(r);return!1}function Un(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.addEventListener?t.addEventListener(e,a,o):t.attachEvent?t.attachEvent("on"+e,a):t["on"+e]=a}function ye(t,e,n,r){if(!t)return;let o={capture:!0,...r},a=n;t.removeEventListener?t.removeEventListener(e,a,o):t.detachEvent?t.detachEvent("on"+e,a):t["on"+e]=null}function Pa(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=wt(n.borderTopWidth),e+=wt(n.borderBottomWidth),e}function Ma(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e+=wt(n.borderLeftWidth),e+=wt(n.borderRightWidth),e}function La(t){let e=t.clientHeight,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=wt(n.paddingTop),e-=wt(n.paddingBottom),e}function Na(t){let e=t.clientWidth,n=t.ownerDocument.defaultView.getComputedStyle(t);return e-=wt(n.paddingLeft),e-=wt(n.paddingRight),e}function _a(t,e,n){let o=e===e.ownerDocument.body?{left:0,top:0}:e.getBoundingClientRect(),a=(t.clientX+e.scrollLeft-o.left)/n,s=(t.clientY+e.scrollTop-o.top)/n;return{x:a,y:s}}function Ta(t,e){let n=bo(t,e,"px");return{[yo("transform",ka)]:n}}function Ba(t,e){return bo(t,e,"")}function bo({x:t,y:e},n,r){let o=`translate(${t}${r},${e}${r})`;if(n){let a=`${typeof n.x=="string"?n.x:n.x+r}`,s=`${typeof n.y=="string"?n.y:n.y+r}`;o=`translate(${a}, ${s})`+o}return o}function ja(t,e){return t.targetTouches&&Jn(t.targetTouches,n=>e===n.identifier)||t.changedTouches&&Jn(t.changedTouches,n=>e===n.identifier)}function Ha(t){if(t.targetTouches&&t.targetTouches[0])return t.targetTouches[0].identifier;if(t.changedTouches&&t.changedTouches[0])return t.changedTouches[0].identifier}function Aa(){return typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0}function Wa(t,e){if(!t)return;let n=t.getElementById("react-draggable-style-el");if(!n){n=t.createElement("style"),n.type="text/css",n.id="react-draggable-style-el";let r=e??Aa();r&&n.setAttribute("nonce",r),n.innerHTML=`.react-draggable-transparent-selection *::-moz-selection {all: inherit;}
4
4
  `,n.innerHTML+=`.react-draggable-transparent-selection *::selection {all: inherit;}
5
- `,t.getElementsByTagName("head")[0].appendChild(n)}t.body&&_a(t.body,"react-draggable-transparent-selection")}function ho(t){window.requestAnimationFrame?window.requestAnimationFrame(()=>{go(t)}):go(t)}function go(t){if(t)try{t.body&&Ta(t.body,"react-draggable-transparent-selection");let e=t.selection;if(e)e.empty();else{let n=(t.defaultView||window).getSelection();n&&n.type!=="Caret"&&n.removeAllRanges()}}catch{}}function _a(t,e){t.classList?t.classList.add(e):t.className.match(new RegExp(`(?:^|\\s)${e}(?!\\S)`))||(t.className+=` ${e}`)}function Ta(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(`(?:^|\\s)${e}(?!\\S)`,"g"),"")}function ja(t,e,n){if(!t.props.bounds)return[e,n];let{bounds:r}=t.props;r=typeof r=="string"?r:Aa(r);let o=Qn(t);if(typeof r=="string"){let{ownerDocument:a}=o,s=a.defaultView;if(!s)throw new Error("Cannot resolve the owner window of the draggable node.");let i;if(r==="parent"?i=o.parentNode:i=o.getRootNode().querySelector(r),!(i instanceof s.HTMLElement))throw new Error('Bounds selector "'+r+'" could not find an element.');let l=i,c=s.getComputedStyle(o),p=s.getComputedStyle(l);r={left:-o.offsetLeft+yt(p.paddingLeft)+yt(c.marginLeft),top:-o.offsetTop+yt(p.paddingTop)+yt(c.marginTop),right:Ea(l)-Ca(o)-o.offsetLeft+yt(p.paddingRight)-yt(c.marginRight),bottom:Ra(l)-Da(o)-o.offsetTop+yt(p.paddingBottom)-yt(c.marginBottom)}}return $e(r.right)&&(e=Math.min(e,r.right)),$e(r.bottom)&&(n=Math.min(n,r.bottom)),$e(r.left)&&(e=Math.max(e,r.left)),$e(r.top)&&(n=Math.max(n,r.top)),[e,n]}function mo(t,e,n){let r=Math.round(e/t[0])*t[0],o=Math.round(n/t[1])*t[1];return[r,o]}function Ba(t){return t.props.axis==="both"||t.props.axis==="x"}function Ha(t){return t.props.axis==="both"||t.props.axis==="y"}function Vn(t,e,n){let r=typeof e=="number"?Pa(t,e):null;if(typeof e=="number"&&!r)return null;let o=Qn(n),a=n.props.offsetParent||o.offsetParent||o.ownerDocument.body;return za(r||t,a,n.props.scale)}function Kn(t,e,n){let r=!$e(t.lastX),o=Qn(t);return r?{node:o,deltaX:0,deltaY:0,lastX:e,lastY:n,x:e,y:n}:{node:o,deltaX:e-t.lastX,deltaY:n-t.lastY,lastX:t.lastX,lastY:t.lastY,x:e,y:n}}function Zn(t,e){let n=t.props.scale;return{node:e.node,x:t.state.x+e.deltaX/n,y:t.state.y+e.deltaY/n,deltaX:e.deltaX/n,deltaY:e.deltaY/n,lastX:t.state.x,lastY:t.state.y}}function Aa(t){return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}function Qn(t){let e=t.findDOMNode();if(!e)throw new Error("<DraggableCore>: Unmounted during event!");return e}var Wa=typeof process<"u"&&process.env.DRAGGABLE_DEBUG?console.log.bind(console):function(){},Yt=Wa,Bt={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},ie=Bt.mouse,Ft=class extends Be{constructor(){super(...arguments),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,this.touchIdentifier=null,this.mounted=!1,this.handleDragStart=t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&(typeof t.button=="number"&&t.button!==0||t.ctrlKey))return!1;let e=this.findDOMNode();if(!e||!e.ownerDocument||!e.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");let{ownerDocument:n}=e;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!po(t.target,this.props.handle,e)||this.props.cancel&&po(t.target,this.props.cancel,e))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();let r=Ma(t);this.touchIdentifier=r;let o=Vn(t,r,this);if(o==null)return;let{x:a,y:s}=o,i=Kn(this,a,s);Yt("DraggableCore: handleDragStart: %j",i),Yt("calling",this.props.onStart),!(this.props.onStart(t,i)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&La(n,this.props.nonce),this.dragging=!0,this.lastX=a,this.lastY=s,Un(n,ie.move,this.handleDrag),Un(n,ie.stop,this.handleDragStop))},this.handleDrag=t=>{let e=Vn(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let s=n-this.lastX,i=r-this.lastY;if([s,i]=mo(this.props.grid,s,i),!s&&!i)return;n=this.lastX+s,r=this.lastY+i}let o=Kn(this,n,r);if(Yt("DraggableCore: handleDrag: %j",o),this.props.onDrag(t,o)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{let s=document.createEvent("MouseEvents");s.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(s)}return}this.lastX=n,this.lastY=r},this.handleDragStop=t=>{if(!this.dragging)return;let e=Vn(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let i=n-this.lastX||0,l=r-this.lastY||0;[i,l]=mo(this.props.grid,i,l),n=this.lastX+i,r=this.lastY+l}let o=Kn(this,n,r);if(this.props.onStop(t,o)===!1||this.mounted===!1)return!1;let s=this.findDOMNode();s&&this.props.enableUserSelectHack&&ho(s.ownerDocument),Yt("DraggableCore: handleDragStop: %j",o),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&(Yt("DraggableCore: Removing handlers"),ye(s.ownerDocument,ie.move,this.handleDrag),ye(s.ownerDocument,ie.stop,this.handleDragStop))},this.onMouseDown=t=>(ie=Bt.mouse,this.handleDragStart(t)),this.onMouseUp=t=>(ie=Bt.mouse,this.handleDragStop(t)),this.onTouchStart=t=>(ie=Bt.touch,this.handleDragStart(t)),this.onTouchEnd=t=>(ie=Bt.touch,this.handleDragStop(t))}componentDidMount(){this.mounted=!0;let t=this.findDOMNode();t&&Un(t,Bt.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;let t=this.findDOMNode();if(t){let{ownerDocument:e}=t;ye(e,Bt.mouse.move,this.handleDrag),ye(e,Bt.touch.move,this.handleDrag),ye(e,Bt.mouse.stop,this.handleDragStop),ye(e,Bt.touch.stop,this.handleDragStop),ye(t,Bt.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&ho(e)}}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=Te;return typeof e.findDOMNode=="function"?e.findDOMNode(this):(Yt("react-draggable: ReactDOM.findDOMNode is not available in React 19+. You must provide a nodeRef prop. See: https://github.com/react-grid-layout/react-draggable#noderef"),null)}render(){return He(je.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};Ft.displayName="DraggableCore";Ft.propTypes={allowAnyClick:gt.default.bool,allowMobileScroll:gt.default.bool,children:gt.default.node.isRequired,disabled:gt.default.bool,enableUserSelectHack:gt.default.bool,offsetParent:function(t,e){if(t[e]&&t[e].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:gt.default.arrayOf(gt.default.number),handle:gt.default.string,cancel:gt.default.string,nodeRef:gt.default.object,nonce:gt.default.string,onStart:gt.default.func,onDrag:gt.default.func,onStop:gt.default.func,onMouseDown:gt.default.func,scale:gt.default.number,className:Oe,style:Oe,transform:Oe};Ft.defaultProps={allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1};var fn=class extends Be{constructor(t){super(t),this.onDragStart=(e,n)=>{if(Yt("Draggable: onDragStart: %j",n),this.props.onStart(e,Zn(this,n))===!1)return!1;this.setState({dragging:!0,dragged:!0})},this.onDrag=(e,n)=>{if(!this.state.dragging)return!1;Yt("Draggable: onDrag: %j",n);let r=Zn(this,n),o={x:r.x,y:r.y,slackX:0,slackY:0};if(this.props.bounds){let{x:s,y:i}=o;o.x+=this.state.slackX,o.y+=this.state.slackY;let[l,c]=ja(this,o.x,o.y);o.x=l,o.y=c,o.slackX=this.state.slackX+(s-o.x),o.slackY=this.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-this.state.x,r.deltaY=o.y-this.state.y}if(this.props.onDrag(e,r)===!1)return!1;this.setState(o)},this.onDragStop=(e,n)=>{if(!this.state.dragging||this.props.onStop(e,Zn(this,n))===!1)return!1;Yt("Draggable: onDragStop: %j",n);let o={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){let{x:s,y:i}=this.props.position;o.x=s,o.y=i}this.setState(o)},this.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,prevPropsPosition:{...t.position},slackX:0,slackY:0,isElementSVG:!1},t.position&&!(t.onDrag||t.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}static getDerivedStateFromProps({position:t},{prevPropsPosition:e}){return t&&(!e||t.x!==e.x||t.y!==e.y)?(Yt("Draggable: getDerivedStateFromProps %j",{position:t,prevPropsPosition:e}),{x:t.x,y:t.y,prevPropsPosition:{...t}}):null}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=Te;return typeof e.findDOMNode=="function"?e.findDOMNode(this):null}render(){let{axis:t,bounds:e,children:n,defaultPosition:r,defaultClassName:o,defaultClassNameDragging:a,defaultClassNameDragged:s,position:i,positionOffset:l,scale:c,...p}=this.props,d={},g=null,w=!!!i||this.state.dragging,k=i||r,S={x:Ba(this)&&w?this.state.x:k.x,y:Ha(this)&&w?this.state.y:k.y};this.state.isElementSVG?g=ka(S,l):d=Oa(S,l);let b=je.only(n),K=Xn(b.props.className||"",o,{[a]:this.state.dragging,[s]:this.state.dragged});return Pn(Ft,{...p,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop},He(b,{className:K,style:{...b.props.style,...d},transform:g}))}};fn.displayName="Draggable";fn.propTypes={...Ft.propTypes,axis:G.default.oneOf(["both","x","y","none"]),bounds:G.default.oneOfType([G.default.shape({left:G.default.number,right:G.default.number,top:G.default.number,bottom:G.default.number}),G.default.string,G.default.oneOf([!1])]),defaultClassName:G.default.string,defaultClassNameDragging:G.default.string,defaultClassNameDragged:G.default.string,defaultPosition:G.default.shape({x:G.default.number,y:G.default.number}),positionOffset:G.default.shape({x:G.default.oneOfType([G.default.number,G.default.string]),y:G.default.oneOfType([G.default.number,G.default.string])}),position:G.default.shape({x:G.default.number,y:G.default.number}),className:Oe,style:Oe,transform:Oe};fn.defaultProps={...Ft.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1};var Uo=sn(Yo(),1);var Xo=globalThis.React,rc=Xo.Fragment,ce=(t,e,n)=>Xo.createElement(t,n===void 0?e:{...e,key:n}),$o=ce;var we=sn(no(),1);function vr(t){let{children:e,cols:n,containerWidth:r,margin:o,containerPadding:a,rowHeight:s,maxRows:i,isDraggable:l,isResizable:c,isBounded:p,static:d,useCSSTransforms:g=!0,usePercentages:z=!1,transformScale:w=1,positionStrategy:k,dragThreshold:S=0,droppingPosition:b,className:K="",style:Z,handle:it="",cancel:ut="",x:lt,y:ot,w:nt,h:ct,minW:Rt=1,maxW:At=1/0,minH:C=1,maxH:R=1/0,i:Y,resizeHandles:Ot,resizeHandle:xt,constraints:Et=Tn,layoutItem:ue,layout:de=[],onDragStart:Lt,onDrag:Vt,onDragStop:Kt,onResizeStart:fe,onResize:pe,onResizeStop:he}=t,[f,m]=at(!1),[P,y]=at(!1),x=q(null),D=q({left:0,top:0}),j=q({top:0,left:0,width:0,height:0}),F=q(void 0),A=q(de);A.current=de;let st=q(null),M=q(null),L=q(!1),pt=q({x:0,y:0}),X=q(!1),H=Ct(()=>({cols:n,containerPadding:a,containerWidth:r,margin:o,maxRows:i,rowHeight:s}),[n,a,r,o,i,s]),$=Ct(()=>({cols:n,maxRows:i,containerWidth:r,containerHeight:0,rowHeight:s,margin:o,layout:[]}),[n,i,r,s,o]),ht=U(()=>({...$,layout:A.current}),[$]),_t=Ct(()=>ue??{i:Y,x:lt,y:ot,w:nt,h:ct,minW:Rt,maxW:At,minH:C,maxH:R},[ue,Y,lt,ot,nt,ct,Rt,At,C,R]),Ve=U(_=>{if(k?.calcStyle)return k.calcStyle(_);if(g)return jn(_);let B=Yr(_);return z?{...B,left:Bn(_.left/r),width:Bn(_.width/r)}:B},[k,g,z,r]),Wt=U((_,{node:B})=>{if(!Lt)return;let{offsetParent:rt}=B;if(!rt)return;let W=rt.getBoundingClientRect(),dt=B.getBoundingClientRect(),wt=dt.left/w,Dt=W.left/w,St=dt.top/w,kt=W.top/w,Pt;if(k?.calcDragPosition){let O=_;Pt=k.calcDragPosition(O.clientX,O.clientY,O.clientX-dt.left,O.clientY-dt.top)}else Pt={left:wt-Dt+rt.scrollLeft,top:St-kt+rt.scrollTop};if(D.current=Pt,S>0){let O=_;pt.current={x:O.clientX,y:O.clientY},L.current=!0,X.current=!1,m(!0);return}m(!0);let te=Ie(H,Pt.top,Pt.left),{x:ee,y:h}=Xe(Et,_t,te.x,te.y,ht());Lt(Y,ee,h,{e:_,node:B,newPosition:Pt})},[Lt,w,H,k,S,Et,_t,ht,Y]),Se=U((_,{node:B,deltaX:rt,deltaY:W})=>{if(!Vt||!f)return;let dt=_;if(L.current&&!X.current){let ee=dt.clientX-pt.current.x,h=dt.clientY-pt.current.y;if(Math.hypot(ee,h)<S)return;if(X.current=!0,L.current=!1,Lt){let v=Ie(H,D.current.top,D.current.left),{x:N,y:I}=Xe(Et,_t,v.x,v.y,ht());Lt(Y,N,I,{e:_,node:B,newPosition:D.current})}}let wt=D.current.top+W,Dt=D.current.left+rt;if(p){let{offsetParent:ee}=B;if(ee){let h=ee.clientHeight-jt(ct,s,o[1]);wt=Ae(wt,0,h);let O=oe(H),v=r-jt(nt,O,o[0]);Dt=Ae(Dt,0,v)}}let St={top:wt,left:Dt};D.current=St;let kt=Ie(H,wt,Dt),{x:Pt,y:te}=Xe(Et,_t,kt.x,kt.y,ht());Vt(Y,Pt,te,{e:_,node:B,newPosition:St})},[Vt,Lt,f,S,p,ct,s,o,H,r,nt,Y,Et,_t,ht]),Zt=U((_,{node:B})=>{if(!Kt||!f)return;let rt=L.current;if(L.current=!1,X.current=!1,pt.current={x:0,y:0},rt){m(!1),D.current={left:0,top:0};return}let{left:W,top:dt}=D.current,wt={top:dt,left:W};m(!1),D.current={left:0,top:0};let Dt=Ie(H,dt,W),{x:St,y:kt}=Xe(Et,_t,Dt.x,Dt.y,ht());Kt(Y,St,kt,{e:_,node:B,newPosition:wt})},[Kt,f,H,Et,_t,ht,Y]);st.current=Wt,M.current=Se;let Tt=U((_,{node:B,size:rt,handle:W},dt,wt)=>{let Dt=wt==="onResizeStart"?fe:wt==="onResize"?pe:he;if(!Dt)return;let St;B?St=$r(W,dt,rt,r):St={...rt,top:dt.top,left:dt.left},j.current=St;let kt=Wr(H,St.width,St.height),{w:Pt,h:te}=qr(Et,_t,kt.w,kt.h,W,ht());Dt(Y,Pt,te,{e:_.nativeEvent??_,node:B,size:St,handle:W})},[fe,pe,he,r,H,Y,Et,_t,ht]),xe=U((_,B)=>{y(!0);let rt=We(H,lt,ot,nt,ct),W={...B,handle:B.handle};Tt(_,W,rt,"onResizeStart")},[Tt,H,lt,ot,nt,ct]),De=U((_,B)=>{let rt=We(H,lt,ot,nt,ct),W={...B,handle:B.handle};Tt(_,W,rt,"onResize")},[Tt,H,lt,ot,nt,ct]),Jt=U((_,B)=>{y(!1),j.current={top:0,left:0,width:0,height:0};let rt=We(H,lt,ot,nt,ct),W={...B,handle:B.handle};Tt(_,W,rt,"onResizeStop")},[Tt,H,lt,ot,nt,ct]);qt(()=>{if(!b)return;let _=x.current;if(!_)return;let B=F.current||{left:0,top:0},rt=f&&(b.left!==B.left||b.top!==B.top);if(f){if(rt){let W=b.left-D.current.left,dt=b.top-D.current.top,wt={node:_,deltaX:W,deltaY:dt,lastX:D.current.left,lastY:D.current.top,x:b.left,y:b.top};M.current?.(b.e,wt)}}else{let W={node:_,deltaX:b.left,deltaY:b.top,lastX:0,lastY:0,x:b.left,y:b.top};st.current?.(b.e,W)}F.current=b},[b,f,Y]);let It=We(H,lt,ot,nt,ct,f?D.current:null,P?j.current:null),Ne=u.Children.only(e),Le=oe(H),Ke=[jt(Rt,Le,o[0]),jt(C,s,o[1])],Ze=[jt(At,Le,o[0]),jt(R,s,o[1])],zt=Ne.props,Rn=zt.className,Je=zt.style,Qt=u.cloneElement(Ne,{ref:x,className:$n("react-grid-item",Rn,K,{static:d,resizing:P,"react-draggable":l,"react-draggable-dragging":f,dropping:!!b,cssTransforms:g}),style:{...Z,...Je,...Ve(It)}}),Qe=xt;return Qt=ce(Uo.Resizable,{draggableOpts:{disabled:!c},className:c?void 0:"react-resizable-hide",width:It.width,height:It.height,minConstraints:Ke,maxConstraints:Ze,onResizeStart:xe,onResize:De,onResizeStop:Jt,transformScale:w,resizeHandles:Ot,handle:Qe,children:Qt}),Qt=ce(Ft,{disabled:!l,onStart:Wt,onDrag:Se,onStop:Zt,handle:it,cancel:".react-resizable-handle"+(ut?","+ut:""),scale:w,nodeRef:x,children:Qt}),Qt}var Ut=()=>{},Go="react-grid-layout",Vo=!1;try{Vo=/firefox/i.test(navigator.userAgent)}catch{}function Yi(t,e){let n=u.Children.toArray(t),r=u.Children.toArray(e);if(n.length!==r.length)return!1;for(let o=0;o<n.length;o++){let a=n[o],s=r[o];if(a?.key!==s?.key)return!1}return!0}function Fo(t,e,n,r){let o=[],a=new Set;u.Children.forEach(e,i=>{if(!u.isValidElement(i)||i.key===null)return;let l=String(i.key);a.add(l);let c=t.find(p=>p.i===l);if(c)o.push(Gt(c));else{let d=i.props["data-grid"];d?o.push({i:l,x:d.x??0,y:d.y??0,w:d.w??1,h:d.h??1,minW:d.minW,maxW:d.maxW,minH:d.minH,maxH:d.maxH,static:d.static,isDraggable:d.isDraggable,isResizable:d.isResizable,resizeHandles:d.resizeHandles,isBounded:d.isBounded}):o.push({i:l,x:0,y:qe(o),w:1,h:1})}});let s=_n(o,{cols:n});return r.compact(s,n)}function Ue(t){let{children:e,width:n,gridConfig:r,dragConfig:o,resizeConfig:a,dropConfig:s,positionStrategy:i=Gr,compactor:l,constraints:c=Tn,layout:p=[],droppingItem:d,autoSize:g=!0,className:z="",style:w={},innerRef:k,onLayoutChange:S=Ut,onDragStart:b=Ut,onDrag:K=Ut,onDragStop:Z=Ut,onResizeStart:it=Ut,onResize:ut=Ut,onResizeStop:lt=Ut,onDrop:ot=Ut,onDropDragOver:nt=Ut}=t,ct=Ct(()=>({...Fr,...r}),[r]),Rt=Ct(()=>({...Ur,...o}),[o]),At=Ct(()=>({...Vr,...a}),[a]),C=Ct(()=>({...Kr,...s}),[s]),{cols:R,rowHeight:Y,maxRows:Ot,margin:xt,containerPadding:Et}=ct,{enabled:ue,bounded:de,handle:Lt,cancel:Vt,threshold:Kt}=Rt,{enabled:fe,handles:pe,handleComponent:he}=At,{enabled:f,defaultItem:m,onDragOver:P}=C,y=l??to("vertical"),x=y.type,D=y.allowOverlap,j=y.preventCollision??!1,F=Ct(()=>d??{i:"__dropping-elem__",...m},[d,m]),A=i.type==="transform",st=i.scale,M=Et??xt,[L,pt]=at(!1),[X,H]=at(()=>Fo(p,e,R,y)),[$,ht]=at(null),[_t,Ve]=at(!1),[Wt,Se]=at(null),[Zt,Tt]=at(),xe=q(null),De=q(null),Jt=q(null),It=q(0),Ne=q(X),Le=q(p),Ke=q(e),Ze=q(x),zt=q(X);zt.current=X,qt(()=>{pt(!0),(0,we.deepEqual)(X,p)||S(X)},[]),qt(()=>{if($||Wt)return;let h=!(0,we.deepEqual)(p,Le.current),O=!Yi(e,Ke.current),v=x!==Ze.current;if(h||O||v){let I=Fo(h?p:X,e,R,y);(0,we.deepEqual)(I,X)||H(I)}Le.current=p,Ke.current=e,Ze.current=x},[p,e,R,x,y,$,Wt,X]),qt(()=>{if(!$&&!(0,we.deepEqual)(X,Ne.current)){Ne.current=X;let h=X.filter(O=>O.i!==F.i);S(h)}},[X,$,S,F.i]);let Rn=Ct(()=>{if(!g)return;let h=qe(X),O=M[1];return h*Y+(h-1)*xt[1]+O*2+"px"},[g,X,Y,xt,M]),Je=U((h,O,v,N)=>{let I=zt.current,T=ae(I,h);if(!T)return;let J={w:T.w,h:T.h,x:T.x,y:T.y,i:h};xe.current=Gt(T),Jt.current=I,ht(J),b(I,T,T,null,N.e,N.node)},[b]),Qt=U((h,O,v,N)=>{let I=zt.current,T=xe.current,J=ae(I,h);if(!J)return;let ft={w:J.w,h:J.h,x:J.x,y:J.y,i:h},Q=re(I,J,O,v,!0,j,x,R,D);K(Q,T,J,ft,N.e,N.node),H(y.compact(Q,R)),ht(ft)},[j,x,R,D,y,K]),Qe=U((h,O,v,N)=>{if(!$)return;let I=zt.current,T=xe.current,J=ae(I,h);if(!J)return;let ft=re(I,J,O,v,!0,j,x,R,D),Q=y.compact(ft,R);Z(Q,T,J,null,N.e,N.node);let mt=Jt.current;xe.current=null,Jt.current=null,ht(null),H(Q),mt&&!(0,we.deepEqual)(mt,Q)&&S(Q)},[$,j,x,R,D,y,Z,S]),_=U((h,O,v,N)=>{let I=zt.current,T=ae(I,h);T&&(De.current=Gt(T),Jt.current=I,Ve(!0),it(I,T,T,null,N.e,N.node))},[it]),B=U((h,O,v,N)=>{let I=zt.current,T=De.current,{handle:J}=N,ft=!1,Q,mt,[tn,$t]=Ir(I,h,tt=>(Q=tt.x,mt=tt.y,["sw","w","nw","n","ne"].includes(J)&&(["sw","nw","w"].includes(J)&&(Q=tt.x+(tt.w-O),O=tt.x!==Q&&Q<0?tt.w:O,Q=Q<0?0:Q),["ne","n","nw"].includes(J)&&(mt=tt.y+(tt.h-v),v=tt.y!==mt&&mt<0?tt.h:v,mt=mt<0?0:mt),ft=!0),j&&!D&&Nn(I,{...tt,w:O,h:v,x:Q??tt.x,y:mt??tt.y}).filter(nn=>nn.i!==tt.i).length>0&&(mt=tt.y,v=tt.h,Q=tt.x,O=tt.w,ft=!1),tt.w=O,tt.h=v,tt));if(!$t)return;let _e=tn;ft&&Q!==void 0&&mt!==void 0&&(_e=re(tn,$t,Q,mt,!0,j,x,R,D));let en={w:$t.w,h:$t.h,x:$t.x,y:$t.y,i:h,static:!0};ut(_e,T,$t,en,N.e,N.node),H(y.compact(_e,R)),ht(en)},[j,x,R,D,y,ut]),rt=U((h,O,v,N)=>{let I=zt.current,T=De.current,J=ae(I,h),ft=y.compact(I,R);lt(ft,T,J??null,null,N.e,N.node);let Q=Jt.current;De.current=null,Jt.current=null,ht(null),Ve(!1),H(ft),Q&&!(0,we.deepEqual)(Q,ft)&&S(ft)},[R,y,lt,S]),W=U(()=>{let h=zt.current;if(!h.some(N=>N.i===F.i)){Se(null),ht(null),Tt(void 0);return}let v=y.compact(h.filter(N=>N.i!==F.i),R);H(v),Se(null),ht(null),Tt(void 0)},[F.i,R,y]),dt=U(h=>{if(h.preventDefault(),h.stopPropagation(),Vo&&!h.nativeEvent.target?.classList.contains(Go))return!1;let O=P?P(h.nativeEvent):nt(h);if(O===!1)return Wt&&W(),!1;let{dragOffsetX:v=0,dragOffsetY:N=0,...I}=O??{},T={...F,...I},J=h.currentTarget.getBoundingClientRect(),ft={cols:R,margin:xt,maxRows:Ot,rowHeight:Y,containerWidth:n,containerPadding:M},Q=oe(ft),mt=jt(T.w,Q,xt[0]),tn=jt(T.h,Y,xt[1]),$t=mt/2,_e=tn/2,en=h.clientX-J.left+v-$t,tt=h.clientY-J.top+N-_e,En=Math.max(0,en),nn=Math.max(0,tt),rn={left:En/st,top:nn/st,e:h.nativeEvent};if(Wt)Zt&&(Zt.left!==rn.left||Zt.top!==rn.top)&&Tt(rn);else{let zn=Ar(ft,nn,En,T.w,T.h);Se(ce("div",{},T.i)),Tt(rn);let is=zt.current.filter(ls=>ls.i!==T.i);H([...is,{...T,x:zn.x,y:zn.y,static:!1,isDraggable:!0}])}},[Wt,Zt,F,P,nt,W,st,R,xt,Ot,Y,n,M]),wt=U(h=>{h.preventDefault(),h.stopPropagation(),It.current--,It.current<0&&(It.current=0),It.current===0&&W()},[W]),Dt=U(h=>{h.preventDefault(),h.stopPropagation(),It.current++},[]),St=U(h=>{h.preventDefault(),h.stopPropagation();let O=zt.current,v=O.find(N=>N.i===F.i);It.current=0,W(),ot(O,v,h.nativeEvent)},[F.i,W,ot]),kt=U((h,O)=>{if(!h||!h.key)return null;let v=ae(X,String(h.key));if(!v)return null;let N=typeof v.isDraggable=="boolean"?v.isDraggable:!v.static&&ue,I=typeof v.isResizable=="boolean"?v.isResizable:!v.static&&fe,T=v.resizeHandles||[...pe],J=N&&de&&v.isBounded!==!1,ft=he;return ce(vr,{containerWidth:n,cols:R,margin:xt,containerPadding:M,maxRows:Ot,rowHeight:Y,cancel:Vt,handle:Lt,onDragStart:Je,onDrag:Qt,onDragStop:Qe,onResizeStart:_,onResize:B,onResizeStop:rt,isDraggable:N,isResizable:I,isBounded:J,useCSSTransforms:A&&L,usePercentages:!L,transformScale:st,positionStrategy:i,dragThreshold:Kt,w:v.w,h:v.h,x:v.x,y:v.y,i:v.i,minH:v.minH,minW:v.minW,maxH:v.maxH,maxW:v.maxW,static:v.static,droppingPosition:O?Zt:void 0,resizeHandles:T,resizeHandle:ft,constraints:c,layoutItem:v,layout:X,children:h},v.i)},[X,n,R,xt,M,Ot,Y,Vt,Lt,Je,Qt,Qe,_,B,rt,ue,fe,de,A,L,st,i,Kt,Zt,pe,he,c]),Pt=()=>$?ce(vr,{w:$.w,h:$.h,x:$.x,y:$.y,i:$.i,className:`react-grid-placeholder ${_t?"placeholder-resizing":""}`,containerWidth:n,cols:R,margin:xt,containerPadding:M,maxRows:Ot,rowHeight:Y,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:A,transformScale:st,constraints:c,layout:X,children:ce("div",{})}):null,te=$n(Go,z),ee={height:Rn,...w};return $o("div",{ref:k,className:te,style:ee,onDrop:f?St:void 0,onDragLeave:f?wt:void 0,onDragEnter:f?Dt:void 0,onDragOver:f?dt:void 0,children:[u.Children.map(e,h=>u.isValidElement(h)?kt(h):null),f&&Wt&&kt(Wt,!0),Pt()]})}et();var Nt=(...t)=>t.filter(Boolean).join(" ");var $i=({type:t="info",title:e,message:n,onDismiss:r,className:o})=>u.createElement("div",{className:Nt("ks-alert",`ks-alert-${t}`,o),role:"alert"},u.createElement("div",{className:"ks-alert-body"},u.createElement("div",{className:"ks-alert-content"},e&&u.createElement("p",{className:"ks-alert-title"},e),u.createElement("p",{className:e?"ks-alert-message-titled":"ks-alert-message"},n)),r&&u.createElement("button",{type:"button",className:"ks-alert-dismiss","aria-label":"Dismiss",onClick:r},"\xD7"))),Ko=$i;et();var Gi={primary:"ks-button-primary",secondary:"ks-button-secondary",danger:"ks-button-danger"},Fi={sm:"ks-button-sm",md:"ks-button-md",lg:"ks-button-lg"},Ui=({variant:t="primary",size:e="md",className:n,children:r,...o})=>{let a=o.href?"a":"button";return u.createElement(a,{...o,className:Nt("ks-button",Gi[t],Fi[e],n)},r)},wr=Ui;et();var Vi=({as:t="input",disabled:e,className:n,...r})=>u.createElement(t,{...r,disabled:e,className:Nt("ks-input",e&&"ks-input-disabled",n)}),Sr=Vi;et();var Dn=(t,e)=>({className:n,children:r,...o})=>u.createElement(t,{...o,className:Nt(e,n)},r),xr=Dn("label","ks-label"),Tc=Dn("p","ks-hint"),jc=Dn("p","ks-error"),Bc=Dn("span","ks-required");et();var Ki=({as:t="div",className:e,children:n,...r})=>u.createElement(t,{...r,className:Nt("ks-panel",e)},n),Zo=Ki;et();var Zi=({title:t,subtitle:e,action:n,spacing:r="md",className:o,children:a})=>u.createElement("div",{className:Nt(`ks-section-${r}`,o)},t&&u.createElement("div",{className:"ks-section-header"},u.createElement("div",null,u.createElement("h2",{className:"ks-section-title"},t),e&&u.createElement("p",{className:"ks-section-subtitle"},e)),n&&u.createElement("a",{href:n.href,className:"ks-section-action"},n.label)),a),Jo=Zi;et();var Ji="Your change was not saved because the server could not be reached.",Qo=({base:t,token:e,fetch:n,version:r,layout:o,onLayout:a,onError:s})=>{let i=r??o?.version,l=o,c=Promise.resolve(),p=async(d,g,z)=>{let w=await n(t+d,{method:g,headers:{"Content-Type":"application/json","X-CSRF-Token":e},body:z&&JSON.stringify({...z,version:i})}).catch(()=>null);if(!w)return s(Ji),l&&a({...l});let k=await w.json().catch(()=>({}));s(w.ok?null:k.error);let S=await(await n(t+"/layout",{headers:{Accept:"application/json"}})).json();i=S.version,l=S,a(S)};return(d,g,z)=>c=c.then(()=>p(d,g,z))};var Qi=(t,e,n)=>{let[r,o]=at(n),[a,s]=at(null),i=Ct(()=>Qo({base:t,token:e,fetch:(...l)=>window.fetch(...l),layout:n,onLayout:o,onError:s}),[t,e]);return{layout:r,error:a,send:i}},ts=Qi;var es=(t,e)=>t("/blocks","POST",{type:e}),ns=(t,e,{x:n,y:r})=>t("/blocks","POST",{type:e,x:n,y:r}),Dr=(t,e)=>t("/blocks","PATCH",{layout:e.map(({i:n,x:r,y:o,w:a,h:s})=>({id:n,x:r,y:o,w:a,h:s}))}),rs=(t,e,n)=>t(`/blocks/${e}`,"PATCH",{content:n}),os=(t,e)=>t(`/blocks/${e}`,"DELETE"),ss=(t,e)=>t.map(({id:n,x:r,y:o,w:a,h:s,type:i})=>{let l=e.find(d=>d.key===i)??{},c={minW:l.min_width,maxW:l.max_width,minH:l.min_height,maxH:l.max_height},p=Object.fromEntries(Object.entries(c).filter(([,d])=>d!=null));return{i:n,x:r,y:o,w:a,h:s,...p,...l.resizable===!1&&{isResizable:!1},...l.fixed&&{isDraggable:!1}}});var tl={columns:12,row_height:60,gap:10},el=["e","s","se"],Cn=(t,e)=>t.find(n=>n.key===e),nl=(t,e)=>Cn(t,e)?.name??`Unknown block type (${e})`,rl=(t,e)=>t.filter(n=>n.name.toLowerCase().includes(e.trim().toLowerCase())),ol=t=>t.reduce((e,n)=>{let r=n.group??"";return(e.find(a=>a.name===r)??e[e.push({name:r,types:[]})-1]).types.push(n),e},[]),sl=(t,e)=>{let n=document.createElement("div");return n.dataset.blockContent=t,n.innerHTML=e,n},al=({id:t,name:e,html:n})=>{let r=q(null),[o,a]=at(!1);return qt(()=>{let s=document.querySelector(`[data-block-content="${t}"]`)??(n?sl(t,n):null);s&&s.parentElement!==r.current&&r.current.appendChild(s),a(!!s)},[t,n]),u.createElement(u.Fragment,null,o?null:e,u.createElement("div",{ref:r,className:"grow"}))},as=(t,e)=>t.once&&e.some(n=>n.type===t.key);function Cr({base:t,token:e,emptyMessage:n,...r}){let{layout:o,error:a,send:s}=ts(t,e,r),{block_types:i=[],blocks:l=[],grid:c={},contents:p={}}=o,{columns:d,row_height:g,gap:z}={...tl,...c},{width:w,containerRef:k,mounted:S}=Yn({measureBeforeMount:!0}),b=ss(l,i),K=q(null),[Z,it]=at(""),[ut,lt]=at(null),ot=l.find(C=>C.id===ut),nt=Cn(i,ot?.type)?.fields??[],ct=C=>R=>{K.current=C,R.dataTransfer.setData("text/plain",C.key)},Rt={enabled:!0,onDragOver:()=>K.current?{w:K.current.width,h:K.current.height}:!1},At=(C,R)=>{K.current&&ns(s,K.current.key,R),K.current=null};return u.createElement("div",{className:"lg:grid lg:grid-cols-[16rem_minmax(0,1fr)] lg:gap-6"},u.createElement(Jo,{title:"Blocks",spacing:"sm"},u.createElement(xr,{htmlFor:"ks-blocks-search"},"Search blocks"),u.createElement(Sr,{id:"ks-blocks-search",type:"search",value:Z,onChange:C=>it(C.target.value),className:"mb-2"}),i.length===0?u.createElement("p",null,"There are no blocks to add."):ol(rl(i,Z)).map(C=>u.createElement(u.Fragment,{key:C.name},C.name&&u.createElement("h3",{className:"ks-section-title"},C.name),u.createElement("ul",null,C.types.map(R=>u.createElement("li",{key:R.key,"data-block-type":R.key,className:"flex items-center justify-between gap-2 py-1",draggable:"true",onDragStart:ct(R)},u.createElement("span",null,R.name,R.description&&u.createElement("span",{className:"ks-section-subtitle block"},R.description)),u.createElement(wr,{variant:"secondary",size:"sm",type:"button",disabled:as(R,l),onClick:()=>es(s,R.key)},as(R,l)?"Added":"Add"))))))),u.createElement(Zo,{"data-block-grid-panel":!0},a&&u.createElement(Ko,{type:"error",message:a,className:"mb-3"}),l.length===0&&u.createElement("p",null,n),nt.length>0&&u.createElement("div",{"data-block-fields":!0,className:"mb-3"},nt.map(C=>u.createElement("div",{key:C.key,className:"mb-2"},u.createElement(xr,{htmlFor:`ks-block-field-${C.key}`},C.label),u.createElement(Sr,{key:`${ut}-${C.key}`,id:`ks-block-field-${C.key}`,type:"text",defaultValue:ot.content?.[C.key]??"",onBlur:R=>rs(s,ut,{...ot.content,[C.key]:R.target.value})})))),u.createElement("div",{ref:k,"data-block-grid":!0,style:{overflow:"hidden",visibility:S?"visible":"hidden"}},u.createElement(Ue,{width:w,layout:b,gridConfig:{cols:d,rowHeight:g,margin:[z,z]},resizeConfig:{enabled:!0,handles:el},dragConfig:{handle:"[data-block-handle]",cancel:"[data-remove-block]"},dropConfig:Rt,onDrop:At,onDragStop:C=>Dr(s,C),onResizeStop:C=>Dr(s,C)},l.map(C=>u.createElement("div",{key:C.id,"data-block":C.id,onClick:()=>lt(C.id),className:"ks-panel p-3 flex items-start justify-between gap-2"},!Cn(i,C.type)?.fixed&&u.createElement("span",{"data-block-handle":!0,className:"ks-block-handle","aria-hidden":"true"},"\u283F"),u.createElement(al,{id:C.id,name:nl(i,C.type),html:p[C.id]}),!Cn(i,C.type)?.fixed&&u.createElement(wr,{variant:"secondary",size:"sm",type:"button","data-remove-block":!0,onClick:()=>os(s,C.id)},"Remove")))))))}function Rr({base:t,token:e,name:n,pages:r,block_types:o,blocks:a,version:s}){return u.createElement(jr,null,u.createElement("div",{className:"sm:hidden mb-4 flex items-center justify-between gap-3"},u.createElement("h1",{className:"ks-page-header-title"},n),u.createElement(Mn,{href:r,size:"sm"},"All pages")),u.createElement(Br,{title:n,actions:u.createElement(Mn,{href:r,"data-all-pages":!0},"All pages")}),u.createElement(Cr,{base:t,token:e,block_types:o,blocks:a,version:s,emptyMessage:"This page has no blocks yet."}))}Nr("alembic/page-builder",Rr);Tr(document,On);})();
5
+ `,t.getElementsByTagName("head")[0].appendChild(n)}t.body&&Ia(t.body,"react-draggable-transparent-selection")}function ho(t){window.requestAnimationFrame?window.requestAnimationFrame(()=>{go(t)}):go(t)}function go(t){if(t)try{t.body&&qa(t.body,"react-draggable-transparent-selection");let e=t.selection;if(e)e.empty();else{let n=(t.defaultView||window).getSelection();n&&n.type!=="Caret"&&n.removeAllRanges()}}catch{}}function Ia(t,e){t.classList?t.classList.add(e):t.className.match(new RegExp(`(?:^|\\s)${e}(?!\\S)`))||(t.className+=` ${e}`)}function qa(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(new RegExp(`(?:^|\\s)${e}(?!\\S)`,"g"),"")}function Ya(t,e,n){if(!t.props.bounds)return[e,n];let{bounds:r}=t.props;r=typeof r=="string"?r:Ga(r);let o=Qn(t);if(typeof r=="string"){let{ownerDocument:a}=o,s=a.defaultView;if(!s)throw new Error("Cannot resolve the owner window of the draggable node.");let i;if(r==="parent"?i=o.parentNode:i=o.getRootNode().querySelector(r),!(i instanceof s.HTMLElement))throw new Error('Bounds selector "'+r+'" could not find an element.');let l=i,c=s.getComputedStyle(o),p=s.getComputedStyle(l);r={left:-o.offsetLeft+wt(p.paddingLeft)+wt(c.marginLeft),top:-o.offsetTop+wt(p.paddingTop)+wt(c.marginTop),right:Na(l)-Ma(o)-o.offsetLeft+wt(p.paddingRight)-wt(c.marginRight),bottom:La(l)-Pa(o)-o.offsetTop+wt(p.paddingBottom)-wt(c.marginBottom)}}return Ge(r.right)&&(e=Math.min(e,r.right)),Ge(r.bottom)&&(n=Math.min(n,r.bottom)),Ge(r.left)&&(e=Math.max(e,r.left)),Ge(r.top)&&(n=Math.max(n,r.top)),[e,n]}function mo(t,e,n){let r=Math.round(e/t[0])*t[0],o=Math.round(n/t[1])*t[1];return[r,o]}function Xa(t){return t.props.axis==="both"||t.props.axis==="x"}function $a(t){return t.props.axis==="both"||t.props.axis==="y"}function Vn(t,e,n){let r=typeof e=="number"?ja(t,e):null;if(typeof e=="number"&&!r)return null;let o=Qn(n),a=n.props.offsetParent||o.offsetParent||o.ownerDocument.body;return _a(r||t,a,n.props.scale)}function Kn(t,e,n){let r=!Ge(t.lastX),o=Qn(t);return r?{node:o,deltaX:0,deltaY:0,lastX:e,lastY:n,x:e,y:n}:{node:o,deltaX:e-t.lastX,deltaY:n-t.lastY,lastX:t.lastX,lastY:t.lastY,x:e,y:n}}function Zn(t,e){let n=t.props.scale;return{node:e.node,x:t.state.x+e.deltaX/n,y:t.state.y+e.deltaY/n,deltaX:e.deltaX/n,deltaY:e.deltaY/n,lastX:t.state.x,lastY:t.state.y}}function Ga(t){return{left:t.left,top:t.top,right:t.right,bottom:t.bottom}}function Qn(t){let e=t.findDOMNode();if(!e)throw new Error("<DraggableCore>: Unmounted during event!");return e}var Fa=typeof process<"u"&&process.env.DRAGGABLE_DEBUG?console.log.bind(console):function(){},Gt=Fa,Wt={touch:{start:"touchstart",move:"touchmove",stop:"touchend"},mouse:{start:"mousedown",move:"mousemove",stop:"mouseup"}},fe=Wt.mouse,te=class extends He{constructor(){super(...arguments),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,this.touchIdentifier=null,this.mounted=!1,this.handleDragStart=t=>{if(this.props.onMouseDown(t),!this.props.allowAnyClick&&(typeof t.button=="number"&&t.button!==0||t.ctrlKey))return!1;let e=this.findDOMNode();if(!e||!e.ownerDocument||!e.ownerDocument.body)throw new Error("<DraggableCore> not mounted on DragStart!");let{ownerDocument:n}=e;if(this.props.disabled||!(t.target instanceof n.defaultView.Node)||this.props.handle&&!po(t.target,this.props.handle,e)||this.props.cancel&&po(t.target,this.props.cancel,e))return;t.type==="touchstart"&&!this.props.allowMobileScroll&&t.preventDefault();let r=Ha(t);this.touchIdentifier=r;let o=Vn(t,r,this);if(o==null)return;let{x:a,y:s}=o,i=Kn(this,a,s);Gt("DraggableCore: handleDragStart: %j",i),Gt("calling",this.props.onStart),!(this.props.onStart(t,i)===!1||this.mounted===!1)&&(this.props.enableUserSelectHack&&Wa(n,this.props.nonce),this.dragging=!0,this.lastX=a,this.lastY=s,Un(n,fe.move,this.handleDrag),Un(n,fe.stop,this.handleDragStop))},this.handleDrag=t=>{let e=Vn(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let s=n-this.lastX,i=r-this.lastY;if([s,i]=mo(this.props.grid,s,i),!s&&!i)return;n=this.lastX+s,r=this.lastY+i}let o=Kn(this,n,r);if(Gt("DraggableCore: handleDrag: %j",o),this.props.onDrag(t,o)===!1||this.mounted===!1){try{this.handleDragStop(new MouseEvent("mouseup"))}catch{let s=document.createEvent("MouseEvents");s.initMouseEvent("mouseup",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),this.handleDragStop(s)}return}this.lastX=n,this.lastY=r},this.handleDragStop=t=>{if(!this.dragging)return;let e=Vn(t,this.touchIdentifier,this);if(e==null)return;let{x:n,y:r}=e;if(Array.isArray(this.props.grid)){let i=n-this.lastX||0,l=r-this.lastY||0;[i,l]=mo(this.props.grid,i,l),n=this.lastX+i,r=this.lastY+l}let o=Kn(this,n,r);if(this.props.onStop(t,o)===!1||this.mounted===!1)return!1;let s=this.findDOMNode();s&&this.props.enableUserSelectHack&&ho(s.ownerDocument),Gt("DraggableCore: handleDragStop: %j",o),this.dragging=!1,this.lastX=NaN,this.lastY=NaN,s&&(Gt("DraggableCore: Removing handlers"),ye(s.ownerDocument,fe.move,this.handleDrag),ye(s.ownerDocument,fe.stop,this.handleDragStop))},this.onMouseDown=t=>(fe=Wt.mouse,this.handleDragStart(t)),this.onMouseUp=t=>(fe=Wt.mouse,this.handleDragStop(t)),this.onTouchStart=t=>(fe=Wt.touch,this.handleDragStart(t)),this.onTouchEnd=t=>(fe=Wt.touch,this.handleDragStop(t))}componentDidMount(){this.mounted=!0;let t=this.findDOMNode();t&&Un(t,Wt.touch.start,this.onTouchStart,{passive:!1})}componentWillUnmount(){this.mounted=!1;let t=this.findDOMNode();if(t){let{ownerDocument:e}=t;ye(e,Wt.mouse.move,this.handleDrag),ye(e,Wt.touch.move,this.handleDrag),ye(e,Wt.mouse.stop,this.handleDragStop),ye(e,Wt.touch.stop,this.handleDragStop),ye(t,Wt.touch.start,this.onTouchStart,{passive:!1}),this.props.enableUserSelectHack&&ho(e)}}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=Be;return typeof e.findDOMNode=="function"?e.findDOMNode(this):(Gt("react-draggable: ReactDOM.findDOMNode is not available in React 19+. You must provide a nodeRef prop. See: https://github.com/react-grid-layout/react-draggable#noderef"),null)}render(){return Ae(je.only(this.props.children),{onMouseDown:this.onMouseDown,onMouseUp:this.onMouseUp,onTouchEnd:this.onTouchEnd})}};te.displayName="DraggableCore";te.propTypes={allowAnyClick:yt.default.bool,allowMobileScroll:yt.default.bool,children:yt.default.node.isRequired,disabled:yt.default.bool,enableUserSelectHack:yt.default.bool,offsetParent:function(t,e){if(t[e]&&t[e].nodeType!==1)throw new Error("Draggable's offsetParent must be a DOM Node.")},grid:yt.default.arrayOf(yt.default.number),handle:yt.default.string,cancel:yt.default.string,nodeRef:yt.default.object,nonce:yt.default.string,onStart:yt.default.func,onDrag:yt.default.func,onStop:yt.default.func,onMouseDown:yt.default.func,scale:yt.default.number,className:ke,style:ke,transform:ke};te.defaultProps={allowAnyClick:!1,allowMobileScroll:!1,disabled:!1,enableUserSelectHack:!0,onStart:function(){},onDrag:function(){},onStop:function(){},onMouseDown:function(){},scale:1};var pn=class extends He{constructor(t){super(t),this.onDragStart=(e,n)=>{if(Gt("Draggable: onDragStart: %j",n),this.props.onStart(e,Zn(this,n))===!1)return!1;this.setState({dragging:!0,dragged:!0})},this.onDrag=(e,n)=>{if(!this.state.dragging)return!1;Gt("Draggable: onDrag: %j",n);let r=Zn(this,n),o={x:r.x,y:r.y,slackX:0,slackY:0};if(this.props.bounds){let{x:s,y:i}=o;o.x+=this.state.slackX,o.y+=this.state.slackY;let[l,c]=Ya(this,o.x,o.y);o.x=l,o.y=c,o.slackX=this.state.slackX+(s-o.x),o.slackY=this.state.slackY+(i-o.y),r.x=o.x,r.y=o.y,r.deltaX=o.x-this.state.x,r.deltaY=o.y-this.state.y}if(this.props.onDrag(e,r)===!1)return!1;this.setState(o)},this.onDragStop=(e,n)=>{if(!this.state.dragging||this.props.onStop(e,Zn(this,n))===!1)return!1;Gt("Draggable: onDragStop: %j",n);let o={dragging:!1,slackX:0,slackY:0};if(!!this.props.position){let{x:s,y:i}=this.props.position;o.x=s,o.y=i}this.setState(o)},this.state={dragging:!1,dragged:!1,x:t.position?t.position.x:t.defaultPosition.x,y:t.position?t.position.y:t.defaultPosition.y,prevPropsPosition:{...t.position},slackX:0,slackY:0,isElementSVG:!1},t.position&&!(t.onDrag||t.onStop)&&console.warn("A `position` was applied to this <Draggable>, without drag handlers. This will make this component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the `position` of this element.")}static getDerivedStateFromProps({position:t},{prevPropsPosition:e}){return t&&(!e||t.x!==e.x||t.y!==e.y)?(Gt("Draggable: getDerivedStateFromProps %j",{position:t,prevPropsPosition:e}),{x:t.x,y:t.y,prevPropsPosition:{...t}}):null}componentDidMount(){typeof window.SVGElement<"u"&&this.findDOMNode()instanceof window.SVGElement&&this.setState({isElementSVG:!0})}componentWillUnmount(){this.state.dragging&&this.setState({dragging:!1})}findDOMNode(){var t;if((t=this.props)!=null&&t.nodeRef)return this.props.nodeRef.current;let e=Be;return typeof e.findDOMNode=="function"?e.findDOMNode(this):null}render(){let{axis:t,bounds:e,children:n,defaultPosition:r,defaultClassName:o,defaultClassNameDragging:a,defaultClassNameDragged:s,position:i,positionOffset:l,scale:c,...p}=this.props,f={},h=null,S=!!!i||this.state.dragging,O=i||r,x={x:Xa(this)&&S?this.state.x:O.x,y:$a(this)&&S?this.state.y:O.y};this.state.isElementSVG?h=Ba(x,l):f=Ta(x,l);let b=je.only(n),ct=Xn(b.props.className||"",o,{[a]:this.state.dragging,[s]:this.state.dragged});return Pn(te,{...p,onStart:this.onDragStart,onDrag:this.onDrag,onStop:this.onDragStop},Ae(b,{className:ct,style:{...b.props.style,...f},transform:h}))}};pn.displayName="Draggable";pn.propTypes={...te.propTypes,axis:U.default.oneOf(["both","x","y","none"]),bounds:U.default.oneOfType([U.default.shape({left:U.default.number,right:U.default.number,top:U.default.number,bottom:U.default.number}),U.default.string,U.default.oneOf([!1])]),defaultClassName:U.default.string,defaultClassNameDragging:U.default.string,defaultClassNameDragged:U.default.string,defaultPosition:U.default.shape({x:U.default.number,y:U.default.number}),positionOffset:U.default.shape({x:U.default.oneOfType([U.default.number,U.default.string]),y:U.default.oneOfType([U.default.number,U.default.string])}),position:U.default.shape({x:U.default.number,y:U.default.number}),className:ke,style:ke,transform:ke};pn.defaultProps={...te.defaultProps,axis:"both",bounds:!1,defaultClassName:"react-draggable",defaultClassNameDragging:"react-draggable-dragging",defaultClassNameDragged:"react-draggable-dragged",defaultPosition:{x:0,y:0},scale:1};var Uo=an(Yo(),1);var Xo=globalThis.React,xc=Xo.Fragment,he=(t,e,n)=>Xo.createElement(t,n===void 0?e:{...e,key:n}),$o=he;var we=an(no(),1);function vr(t){let{children:e,cols:n,containerWidth:r,margin:o,containerPadding:a,rowHeight:s,maxRows:i,isDraggable:l,isResizable:c,isBounded:p,static:f,useCSSTransforms:h=!0,usePercentages:E=!1,transformScale:S=1,positionStrategy:O,dragThreshold:x=0,droppingPosition:b,className:ct="",style:V,handle:ut="",cancel:rt="",x:it,y:dt,w:$,h:at,minW:Dt=1,maxW:Ot=1/0,minH:Tt=1,maxH:A=1/0,i:B,resizeHandles:Et,resizeHandle:ft,constraints:bt=Tn,layoutItem:Vt,layout:Kt=[],onDragStart:Pt,onDrag:qt,onDragStop:Yt,onResizeStart:Zt,onResize:w,onResizeStop:X}=t,[d,m]=st(!1),[z,y]=st(!1),D=M(null),C=M({left:0,top:0}),j=M({top:0,left:0,width:0,height:0}),K=M(void 0),I=M(Kt);I.current=Kt;let lt=M(null),P=M(null),N=M(!1),gt=M({x:0,y:0}),G=M(!1),W=kt(()=>({cols:n,containerPadding:a,containerWidth:r,margin:o,maxRows:i,rowHeight:s}),[n,a,r,o,i,s]),F=kt(()=>({cols:n,maxRows:i,containerWidth:r,containerHeight:0,rowHeight:s,margin:o,layout:[]}),[n,i,r,s,o]),mt=Z(()=>({...F,layout:I.current}),[F]),Bt=kt(()=>Vt??{i:B,x:it,y:dt,w:$,h:at,minW:Dt,maxW:Ot,minH:Tt,maxH:A},[Vt,B,it,dt,$,at,Dt,Ot,Tt,A]),Ke=Z(_=>{if(O?.calcStyle)return O.calcStyle(_);if(h)return Bn(_);let H=Yr(_);return E?{...H,left:jn(_.left/r),width:jn(_.width/r)}:H},[O,h,E,r]),Xt=Z((_,{node:H})=>{if(!Pt)return;let{offsetParent:ot}=H;if(!ot)return;let q=ot.getBoundingClientRect(),pt=H.getBoundingClientRect(),Ct=pt.left/S,zt=q.left/S,Rt=pt.top/S,Lt=q.top/S,Nt;if(O?.calcDragPosition){let k=_;Nt=O.calcDragPosition(k.clientX,k.clientY,k.clientX-pt.left,k.clientY-pt.top)}else Nt={left:Ct-zt+ot.scrollLeft,top:Rt-Lt+ot.scrollTop};if(C.current=Nt,x>0){let k=_;gt.current={x:k.clientX,y:k.clientY},N.current=!0,G.current=!1,m(!0);return}m(!0);let se=qe(W,Nt.top,Nt.left),{x:ae,y:g}=$e(bt,Bt,se.x,se.y,mt());Pt(B,ae,g,{e:_,node:H,newPosition:Nt})},[Pt,S,W,O,x,bt,Bt,mt,B]),xe=Z((_,{node:H,deltaX:ot,deltaY:q})=>{if(!qt||!d)return;let pt=_;if(N.current&&!G.current){let ae=pt.clientX-gt.current.x,g=pt.clientY-gt.current.y;if(Math.hypot(ae,g)<x)return;if(G.current=!0,N.current=!1,Pt){let v=qe(W,C.current.top,C.current.left),{x:L,y:Y}=$e(bt,Bt,v.x,v.y,mt());Pt(B,L,Y,{e:_,node:H,newPosition:C.current})}}let Ct=C.current.top+q,zt=C.current.left+ot;if(p){let{offsetParent:ae}=H;if(ae){let g=ae.clientHeight-At(at,s,o[1]);Ct=We(Ct,0,g);let k=ce(W),v=r-At($,k,o[0]);zt=We(zt,0,v)}}let Rt={top:Ct,left:zt};C.current=Rt;let Lt=qe(W,Ct,zt),{x:Nt,y:se}=$e(bt,Bt,Lt.x,Lt.y,mt());qt(B,Nt,se,{e:_,node:H,newPosition:Rt})},[qt,Pt,d,x,p,at,s,o,W,r,$,B,bt,Bt,mt]),ne=Z((_,{node:H})=>{if(!Yt||!d)return;let ot=N.current;if(N.current=!1,G.current=!1,gt.current={x:0,y:0},ot){m(!1),C.current={left:0,top:0};return}let{left:q,top:pt}=C.current,Ct={top:pt,left:q};m(!1),C.current={left:0,top:0};let zt=qe(W,pt,q),{x:Rt,y:Lt}=$e(bt,Bt,zt.x,zt.y,mt());Yt(B,Rt,Lt,{e:_,node:H,newPosition:Ct})},[Yt,d,W,bt,Bt,mt,B]);lt.current=Xt,P.current=xe;let jt=Z((_,{node:H,size:ot,handle:q},pt,Ct)=>{let zt=Ct==="onResizeStart"?Zt:Ct==="onResize"?w:X;if(!zt)return;let Rt;H?Rt=$r(q,pt,ot,r):Rt={...ot,top:pt.top,left:pt.left},j.current=Rt;let Lt=Wr(W,Rt.width,Rt.height),{w:Nt,h:se}=qr(bt,Bt,Lt.w,Lt.h,q,mt());zt(B,Nt,se,{e:_.nativeEvent??_,node:H,size:Rt,handle:q})},[Zt,w,X,r,W,B,bt,Bt,mt]),Se=Z((_,H)=>{y(!0);let ot=Ie(W,it,dt,$,at),q={...H,handle:H.handle};jt(_,q,ot,"onResizeStart")},[jt,W,it,dt,$,at]),De=Z((_,H)=>{let ot=Ie(W,it,dt,$,at),q={...H,handle:H.handle};jt(_,q,ot,"onResize")},[jt,W,it,dt,$,at]),re=Z((_,H)=>{y(!1),j.current={top:0,left:0,width:0,height:0};let ot=Ie(W,it,dt,$,at),q={...H,handle:H.handle};jt(_,q,ot,"onResizeStop")},[jt,W,it,dt,$,at]);Ht(()=>{if(!b)return;let _=D.current;if(!_)return;let H=K.current||{left:0,top:0},ot=d&&(b.left!==H.left||b.top!==H.top);if(d){if(ot){let q=b.left-C.current.left,pt=b.top-C.current.top,Ct={node:_,deltaX:q,deltaY:pt,lastX:C.current.left,lastY:C.current.top,x:b.left,y:b.top};P.current?.(b.e,Ct)}}else{let q={node:_,deltaX:b.left,deltaY:b.top,lastX:0,lastY:0,x:b.left,y:b.top};lt.current?.(b.e,q)}K.current=b},[b,d,B]);let $t=Ie(W,it,dt,$,at,d?C.current:null,z?j.current:null),Ne=u.Children.only(e),_e=ce(W),Ze=[At(Dt,_e,o[0]),At(Tt,s,o[1])],Je=[At(Ot,_e,o[0]),At(A,s,o[1])],Mt=Ne.props,Rn=Mt.className,Qe=Mt.style,oe=u.cloneElement(Ne,{ref:D,className:$n("react-grid-item",Rn,ct,{static:f,resizing:z,"react-draggable":l,"react-draggable-dragging":d,dropping:!!b,cssTransforms:h}),style:{...V,...Qe,...Ke($t)}}),tn=ft;return oe=he(Uo.Resizable,{draggableOpts:{disabled:!c},className:c?void 0:"react-resizable-hide",width:$t.width,height:$t.height,minConstraints:Ze,maxConstraints:Je,onResizeStart:Se,onResize:De,onResizeStop:re,transformScale:S,resizeHandles:Et,handle:tn,children:oe}),oe=he(te,{disabled:!l,onStart:Xt,onDrag:xe,onStop:ne,handle:ut,cancel:".react-resizable-handle"+(rt?","+rt:""),scale:S,nodeRef:D,children:oe}),oe}var ee=()=>{},Go="react-grid-layout",Vo=!1;try{Vo=/firefox/i.test(navigator.userAgent)}catch{}function Ki(t,e){let n=u.Children.toArray(t),r=u.Children.toArray(e);if(n.length!==r.length)return!1;for(let o=0;o<n.length;o++){let a=n[o],s=r[o];if(a?.key!==s?.key)return!1}return!0}function Fo(t,e,n,r){let o=[],a=new Set;u.Children.forEach(e,i=>{if(!u.isValidElement(i)||i.key===null)return;let l=String(i.key);a.add(l);let c=t.find(p=>p.i===l);if(c)o.push(Qt(c));else{let f=i.props["data-grid"];f?o.push({i:l,x:f.x??0,y:f.y??0,w:f.w??1,h:f.h??1,minW:f.minW,maxW:f.maxW,minH:f.minH,maxH:f.maxH,static:f.static,isDraggable:f.isDraggable,isResizable:f.isResizable,resizeHandles:f.resizeHandles,isBounded:f.isBounded}):o.push({i:l,x:0,y:Ye(o),w:1,h:1})}});let s=_n(o,{cols:n});return r.compact(s,n)}function Ve(t){let{children:e,width:n,gridConfig:r,dragConfig:o,resizeConfig:a,dropConfig:s,positionStrategy:i=Gr,compactor:l,constraints:c=Tn,layout:p=[],droppingItem:f,autoSize:h=!0,className:E="",style:S={},innerRef:O,onLayoutChange:x=ee,onDragStart:b=ee,onDrag:ct=ee,onDragStop:V=ee,onResizeStart:ut=ee,onResize:rt=ee,onResizeStop:it=ee,onDrop:dt=ee,onDropDragOver:$=ee}=t,at=kt(()=>({...Fr,...r}),[r]),Dt=kt(()=>({...Ur,...o}),[o]),Ot=kt(()=>({...Vr,...a}),[a]),Tt=kt(()=>({...Kr,...s}),[s]),{cols:A,rowHeight:B,maxRows:Et,margin:ft,containerPadding:bt}=at,{enabled:Vt,bounded:Kt,handle:Pt,cancel:qt,threshold:Yt}=Dt,{enabled:Zt,handles:w,handleComponent:X}=Ot,{enabled:d,defaultItem:m,onDragOver:z}=Tt,y=l??to("vertical"),D=y.type,C=y.allowOverlap,j=y.preventCollision??!1,K=kt(()=>f??{i:"__dropping-elem__",...m},[f,m]),I=i.type==="transform",lt=i.scale,P=bt??ft,[N,gt]=st(!1),[G,W]=st(()=>Fo(p,e,A,y)),[F,mt]=st(null),[Bt,Ke]=st(!1),[Xt,xe]=st(null),[ne,jt]=st(),Se=M(null),De=M(null),re=M(null),$t=M(0),Ne=M(G),_e=M(p),Ze=M(e),Je=M(D),Mt=M(G);Mt.current=G,Ht(()=>{gt(!0),(0,we.deepEqual)(G,p)||x(G)},[]),Ht(()=>{if(F||Xt)return;let g=!(0,we.deepEqual)(p,_e.current),k=!Ki(e,Ze.current),v=D!==Je.current;if(g||k||v){let Y=Fo(g?p:G,e,A,y);(0,we.deepEqual)(Y,G)||W(Y)}_e.current=p,Ze.current=e,Je.current=D},[p,e,A,D,y,F,Xt,G]),Ht(()=>{if(!F&&!(0,we.deepEqual)(G,Ne.current)){Ne.current=G;let g=G.filter(k=>k.i!==K.i);x(g)}},[G,F,x,K.i]);let Rn=kt(()=>{if(!h)return;let g=Ye(G),k=P[1];return g*B+(g-1)*ft[1]+k*2+"px"},[h,G,B,ft,P]),Qe=Z((g,k,v,L)=>{let Y=Mt.current,T=de(Y,g);if(!T)return;let Q={w:T.w,h:T.h,x:T.x,y:T.y,i:g};Se.current=Qt(T),re.current=Y,mt(Q),b(Y,T,T,null,L.e,L.node)},[b]),oe=Z((g,k,v,L)=>{let Y=Mt.current,T=Se.current,Q=de(Y,g);if(!Q)return;let ht={w:Q.w,h:Q.h,x:Q.x,y:Q.y,i:g},tt=le(Y,Q,k,v,!0,j,D,A,C);ct(tt,T,Q,ht,L.e,L.node),W(y.compact(tt,A)),mt(ht)},[j,D,A,C,y,ct]),tn=Z((g,k,v,L)=>{if(!F)return;let Y=Mt.current,T=Se.current,Q=de(Y,g);if(!Q)return;let ht=le(Y,Q,k,v,!0,j,D,A,C),tt=y.compact(ht,A);V(tt,T,Q,null,L.e,L.node);let vt=re.current;Se.current=null,re.current=null,mt(null),W(tt),vt&&!(0,we.deepEqual)(vt,tt)&&x(tt)},[F,j,D,A,C,y,V,x]),_=Z((g,k,v,L)=>{let Y=Mt.current,T=de(Y,g);T&&(De.current=Qt(T),re.current=Y,Ke(!0),ut(Y,T,T,null,L.e,L.node))},[ut]),H=Z((g,k,v,L)=>{let Y=Mt.current,T=De.current,{handle:Q}=L,ht=!1,tt,vt,[en,Jt]=Ir(Y,g,et=>(tt=et.x,vt=et.y,["sw","w","nw","n","ne"].includes(Q)&&(["sw","nw","w"].includes(Q)&&(tt=et.x+(et.w-k),k=et.x!==tt&&tt<0?et.w:k,tt=tt<0?0:tt),["ne","n","nw"].includes(Q)&&(vt=et.y+(et.h-v),v=et.y!==vt&&vt<0?et.h:v,vt=vt<0?0:vt),ht=!0),j&&!C&&Ln(Y,{...et,w:k,h:v,x:tt??et.x,y:vt??et.y}).filter(rn=>rn.i!==et.i).length>0&&(vt=et.y,v=et.h,tt=et.x,k=et.w,ht=!1),et.w=k,et.h=v,et));if(!Jt)return;let Te=en;ht&&tt!==void 0&&vt!==void 0&&(Te=le(en,Jt,tt,vt,!0,j,D,A,C));let nn={w:Jt.w,h:Jt.h,x:Jt.x,y:Jt.y,i:g,static:!0};rt(Te,T,Jt,nn,L.e,L.node),W(y.compact(Te,A)),mt(nn)},[j,D,A,C,y,rt]),ot=Z((g,k,v,L)=>{let Y=Mt.current,T=De.current,Q=de(Y,g),ht=y.compact(Y,A);it(ht,T,Q??null,null,L.e,L.node);let tt=re.current;De.current=null,re.current=null,mt(null),Ke(!1),W(ht),tt&&!(0,we.deepEqual)(tt,ht)&&x(ht)},[A,y,it,x]),q=Z(()=>{let g=Mt.current;if(!g.some(L=>L.i===K.i)){xe(null),mt(null),jt(void 0);return}let v=y.compact(g.filter(L=>L.i!==K.i),A);W(v),xe(null),mt(null),jt(void 0)},[K.i,A,y]),pt=Z(g=>{if(g.preventDefault(),g.stopPropagation(),Vo&&!g.nativeEvent.target?.classList.contains(Go))return!1;let k=z?z(g.nativeEvent):$(g);if(k===!1)return Xt&&q(),!1;let{dragOffsetX:v=0,dragOffsetY:L=0,...Y}=k??{},T={...K,...Y},Q=g.currentTarget.getBoundingClientRect(),ht={cols:A,margin:ft,maxRows:Et,rowHeight:B,containerWidth:n,containerPadding:P},tt=ce(ht),vt=At(T.w,tt,ft[0]),en=At(T.h,B,ft[1]),Jt=vt/2,Te=en/2,nn=g.clientX-Q.left+v-Jt,et=g.clientY-Q.top+L-Te,En=Math.max(0,nn),rn=Math.max(0,et),on={left:En/lt,top:rn/lt,e:g.nativeEvent};if(Xt)ne&&(ne.left!==on.left||ne.top!==on.top)&&jt(on);else{let zn=Ar(ht,rn,En,T.w,T.h);xe(he("div",{},T.i)),jt(on);let hs=Mt.current.filter(gs=>gs.i!==T.i);W([...hs,{...T,x:zn.x,y:zn.y,static:!1,isDraggable:!0}])}},[Xt,ne,K,z,$,q,lt,A,ft,Et,B,n,P]),Ct=Z(g=>{g.preventDefault(),g.stopPropagation(),$t.current--,$t.current<0&&($t.current=0),$t.current===0&&q()},[q]),zt=Z(g=>{g.preventDefault(),g.stopPropagation(),$t.current++},[]),Rt=Z(g=>{g.preventDefault(),g.stopPropagation();let k=Mt.current,v=k.find(L=>L.i===K.i);$t.current=0,q(),dt(k,v,g.nativeEvent)},[K.i,q,dt]),Lt=Z((g,k)=>{if(!g||!g.key)return null;let v=de(G,String(g.key));if(!v)return null;let L=typeof v.isDraggable=="boolean"?v.isDraggable:!v.static&&Vt,Y=typeof v.isResizable=="boolean"?v.isResizable:!v.static&&Zt,T=v.resizeHandles||[...w],Q=L&&Kt&&v.isBounded!==!1,ht=X;return he(vr,{containerWidth:n,cols:A,margin:ft,containerPadding:P,maxRows:Et,rowHeight:B,cancel:qt,handle:Pt,onDragStart:Qe,onDrag:oe,onDragStop:tn,onResizeStart:_,onResize:H,onResizeStop:ot,isDraggable:L,isResizable:Y,isBounded:Q,useCSSTransforms:I&&N,usePercentages:!N,transformScale:lt,positionStrategy:i,dragThreshold:Yt,w:v.w,h:v.h,x:v.x,y:v.y,i:v.i,minH:v.minH,minW:v.minW,maxH:v.maxH,maxW:v.maxW,static:v.static,droppingPosition:k?ne:void 0,resizeHandles:T,resizeHandle:ht,constraints:c,layoutItem:v,layout:G,children:g},v.i)},[G,n,A,ft,P,Et,B,qt,Pt,Qe,oe,tn,_,H,ot,Vt,Zt,Kt,I,N,lt,i,Yt,ne,w,X,c]),Nt=()=>F?he(vr,{w:F.w,h:F.h,x:F.x,y:F.y,i:F.i,className:`react-grid-placeholder ${Bt?"placeholder-resizing":""}`,containerWidth:n,cols:A,margin:ft,containerPadding:P,maxRows:Et,rowHeight:B,isDraggable:!1,isResizable:!1,isBounded:!1,useCSSTransforms:I,transformScale:lt,constraints:c,layout:G,children:he("div",{})}):null,se=$n(Go,E),ae={height:Rn,...S};return $o("div",{ref:O,className:se,style:ae,onDrop:d?Rt:void 0,onDragLeave:d?Ct:void 0,onDragEnter:d?zt:void 0,onDragOver:d?pt:void 0,children:[u.Children.map(e,g=>u.isValidElement(g)?Lt(g):null),d&&Xt&&Lt(Xt,!0),Nt()]})}nt();var Ut=(...t)=>t.filter(Boolean).join(" ");var Ji=({type:t="info",title:e,message:n,onDismiss:r,className:o})=>u.createElement("div",{className:Ut("ks-alert",`ks-alert-${t}`,o),role:"alert"},u.createElement("div",{className:"ks-alert-body"},u.createElement("div",{className:"ks-alert-content"},e&&u.createElement("p",{className:"ks-alert-title"},e),u.createElement("p",{className:e?"ks-alert-message-titled":"ks-alert-message"},n)),r&&u.createElement("button",{type:"button",className:"ks-alert-dismiss","aria-label":"Dismiss",onClick:r},"\xD7"))),Ko=Ji;nt();var Qi={primary:"ks-button-primary",secondary:"ks-button-secondary",danger:"ks-button-danger"},tl={sm:"ks-button-sm",md:"ks-button-md",lg:"ks-button-lg"},el=({variant:t="primary",size:e="md",className:n,children:r,...o})=>{let a=o.href?"a":"button";return u.createElement(a,{...o,className:Ut("ks-button",Qi[t],tl[e],n)},r)},Le=el;nt();var nl=({as:t="input",disabled:e,className:n,...r})=>u.createElement(t,{...r,disabled:e,className:Ut("ks-input",e&&"ks-input-disabled",n)}),wr=nl;nt();var Cn=(t,e)=>({className:n,children:r,...o})=>u.createElement(t,{...o,className:Ut(e,n)},r),xr=Cn("label","ks-label"),Qc=Cn("p","ks-hint"),tu=Cn("p","ks-error"),eu=Cn("span","ks-required");nt();var rl=({title:t,subtitle:e,action:n,spacing:r="md",className:o,children:a})=>u.createElement("div",{className:Ut(`ks-section-${r}`,o)},t&&u.createElement("div",{className:"ks-section-header"},u.createElement("div",null,u.createElement("h2",{className:"ks-section-title"},t),e&&u.createElement("p",{className:"ks-section-subtitle"},e)),n&&u.createElement("a",{href:n.href,className:"ks-section-action"},n.label)),a),Zo=rl;nt();var ol="Your change was not saved because the server could not be reached.",Jo=({base:t,token:e,fetch:n,version:r,layout:o,onLayout:a,onError:s})=>{let i=r??o?.version,l=o,c=Promise.resolve(),p=async(f,h,E)=>{let S=await n(t+f,{method:h,headers:{"Content-Type":"application/json","X-CSRF-Token":e},body:E&&JSON.stringify({...E,version:i})}).catch(()=>null);if(!S)return s(ol),l&&a({...l});let O=await S.json().catch(()=>({}));s(S.ok?null:O.error);let x=await(await n(t+"/layout",{headers:{Accept:"application/json"}})).json();i=x.version,l=x,a(x)};return(f,h,E)=>c=c.then(()=>p(f,h,E))};var sl=(t,e,n)=>{let[r,o]=st(n),[a,s]=st(null),i=kt(()=>Jo({base:t,token:e,fetch:(...l)=>window.fetch(...l),layout:n,onLayout:o,onError:s}),[t,e]);return{layout:r,error:a,send:i}},Qo=sl;var al=(t,e)=>t("/blocks","POST",{type:e}),ts=(t,e,n)=>{al(t,n),e()},es=(t,e,{x:n,y:r})=>t("/blocks","POST",{type:e,x:n,y:r}),Sr=(t,e)=>t("/blocks","PATCH",{layout:e.map(({i:n,x:r,y:o,w:a,h:s})=>({id:n,x:r,y:o,w:a,h:s}))}),ns=(t,e,n)=>t(`/blocks/${e}`,"PATCH",{content:n}),rs=(t,e)=>t(`/blocks/${e}`,"DELETE"),Dr=({type:t},e)=>{let n=e.find(r=>r.key===t)??{};return{moved:!n.fixed,resized:n.resizable!==!1,removed:!n.fixed}},os=(t,e)=>t.map(({id:n,x:r,y:o,w:a,h:s,type:i})=>{let l=e.find(h=>h.key===i)??{},c={minW:l.min_width,maxW:l.max_width,minH:l.min_height,maxH:l.max_height},p=Object.fromEntries(Object.entries(c).filter(([,h])=>h!=null)),f=Dr({type:i},e);return{i:n,x:r,y:o,w:a,h:s,...p,...f.resized?{}:{isResizable:!1},...f.moved?{}:{isDraggable:!1}}});var il={columns:12,row_height:60,gap:10},ll=640,cl=t=>({columns:t.narrow_columns??t.columns,rowHeight:t.narrow_row_height??t.row_height,gap:t.narrow_gap??t.gap,narrow:!0}),ul=t=>({columns:t.columns,rowHeight:t.row_height,gap:t.gap,narrow:!1}),dl=t=>typeof t=="number"&&t>0,ss=(t,e)=>{let n={...il,...e};return dl(t)&&t<(n.narrow_below??ll)?cl(n):ul(n)},fl=(t,e)=>({w:t?.narrow_width??e,h:t?.narrow_height??t?.height??1}),pl=t=>[...t].sort((e,n)=>e.y-n.y||e.x-n.x),hl=(t,e)=>({x:0,y:t.y+t.tallest,tallest:e.h}),gl=(t,e)=>({x:t.x,y:t.y,tallest:Math.max(t.tallest,e.h)}),ml=(t,e,n)=>t.x+e.w<=n?gl(t,e):hl(t,e),as=(t,e,n)=>pl(t).reduce((r,o)=>{let a={...o,...fl(e.find(i=>i.key===o.type),n)},s=ml(r.row,a,n);return{placed:[...r.placed,{...a,x:s.x,y:s.y}],row:{...s,x:s.x+a.w}}},{placed:[],row:{x:0,y:0,tallest:0}}).placed;nt();var is=500,yl=(t,e=is)=>{let n=null,r=!1,o=()=>{clearTimeout(n),n=null};return{onPointerDown:()=>{n=setTimeout(()=>{r=!0,t()},e)},onPointerUp:o,onPointerLeave:o,onPointerCancel:o,onClickCapture:a=>{r&&(r=!1,a.stopPropagation(),a.preventDefault())}}},ls=()=>({onClickCapture:t=>{t.stopPropagation(),t.preventDefault()}}),cs=(t,e=is)=>{let n=M(t);n.current=t;let r=M(null);return r.current??(r.current=yl(()=>n.current(),e)),r.current};var us=(t,e,n)=>{t&&e!=null&&e!==n&&(t.innerHTML=e)};var bl=(t,{clientX:e,clientY:n})=>!!t&&e>=t.left&&e<=t.right&&n>=t.top&&n<=t.bottom,ds=({layout:t,item:e,pointer:n,target:r,fixed:o})=>bl(r,n)&&!o?{remove:e.i}:{place:t};var vl=["se"],ps=(t,e)=>t.find(n=>n.key===e),wl=(t,e)=>ps(t,e)?.name??`Unknown block type (${e})`,xl=(t,e)=>t.filter(n=>n.name.toLowerCase().includes(e.trim().toLowerCase())),Sl=t=>t.reduce((e,n)=>{let r=n.group??"";return(e.find(a=>a.name===r)??e[e.push({name:r,types:[]})-1]).types.push(n),e},[]),Dl=(t,e)=>{let n=document.createElement("div");return n.dataset.blockContent=t,n.innerHTML=e,n},Cl=({id:t,name:e,html:n})=>{let r=M(null),o=M(null),[a,s]=st(!1);return Ht(()=>{let i=document.querySelector(`[data-block-content="${t}"]`)??(n?Dl(t,n):null);i&&i.parentElement!==r.current&&r.current.appendChild(i),us(i,n,o.current),o.current=n,s(!!i)},[t,n]),u.createElement(u.Fragment,null,a?null:e,u.createElement("div",{ref:r}))},fs=(t,e)=>t.once&&e.some(n=>n.type===t.key);function Cr({base:t,token:e,emptyMessage:n,editing:r=!1,...o}){let{layout:a,error:s,send:i}=Qo(t,e,o),{block_types:l=[],blocks:c=[],grid:p={},contents:f={}}=a,h=a.limits??l,{width:E,containerRef:S,mounted:O}=Yn({measureBeforeMount:!0}),{columns:x,rowHeight:b,gap:ct,narrow:V}=ss(E,p),ut=os(V?as(c,h,x):c,h),rt=M(null),it=M(null),dt=M(null),[$,at]=st(r),[Dt,Ot]=st(!1),[Tt,A]=st(""),[B,Et]=st(null),ft=c.find(w=>w.id===B),bt=ps(l,ft?.type)?.fields??[],Vt=w=>X=>{rt.current=w,X.dataTransfer.setData("text/plain",w.key)},Kt={enabled:!0,onDragOver:()=>rt.current?{w:rt.current.width,h:rt.current.height}:!1},Pt=cs(()=>at(!0)),qt=$?ls():{...Pt,"data-hold-to-edit":!0};Ht(()=>{let w=dt.current;w&&(Dt&&!w.open&&w.showModal?.(),!Dt&&w.open&&w.close?.())},[Dt]);let Yt=(w,X,d)=>{let m=ds({layout:w,item:X,pointer:d,target:it.current?.getBoundingClientRect(),fixed:!Dr(c.find(z=>z.id===X.i)??{},h).removed});m.remove?rs(i,m.remove):Sr(i,m.place)},Zt=(w,X)=>{rt.current&&es(i,rt.current.key,X),rt.current=null};return u.createElement("div",null,$&&u.createElement("dialog",{ref:dt,"data-blocks-dialog":!0,onClose:()=>Ot(!1)},u.createElement(Zo,{title:"Blocks",spacing:"sm"},u.createElement(xr,{htmlFor:"ks-blocks-search"},"Search blocks"),u.createElement(wr,{id:"ks-blocks-search",type:"search",value:Tt,onChange:w=>A(w.target.value),className:"mb-2"}),l.length===0?u.createElement("p",null,"There are no blocks to add."):Sl(xl(l,Tt)).map(w=>u.createElement(u.Fragment,{key:w.name},w.name&&u.createElement("h3",{className:"ks-section-title"},w.name),u.createElement("ul",null,w.types.map(X=>u.createElement("li",{key:X.key,"data-block-type":X.key,className:"flex items-center justify-between gap-2 py-1",draggable:"true",onDragStart:Vt(X)},u.createElement("span",null,X.name,X.description&&u.createElement("span",{className:"ks-section-subtitle block"},X.description)),u.createElement(Le,{variant:"secondary",size:"sm",type:"button",disabled:fs(X,c),onClick:()=>ts(i,()=>Ot(!1),X.key)},fs(X,c)?"Added":"Add"))))))),u.createElement(Le,{variant:"secondary",size:"sm",type:"button","data-close-blocks":!0,onClick:()=>Ot(!1)},"Close")),s&&u.createElement(Ko,{type:"error",message:s,className:"mb-3"}),$?u.createElement(u.Fragment,null,u.createElement(Le,{variant:"secondary",size:"sm",type:"button","data-open-blocks":!0,onClick:()=>Ot(!0)},"Add a block"),u.createElement(Le,{variant:"secondary",size:"sm",type:"button","data-stop-editing":!0,onClick:()=>at(!1)},"Done")):u.createElement(Le,{variant:"secondary",size:"sm",type:"button","data-start-editing":!0,onClick:()=>at(!0)},"Edit"),c.length===0&&u.createElement("p",null,n),bt.length>0&&u.createElement("div",{"data-block-fields":!0,className:"mb-3"},bt.map(w=>u.createElement("div",{key:w.key,className:"mb-2"},u.createElement(xr,{htmlFor:`ks-block-field-${w.key}`},w.label),u.createElement(wr,{key:`${B}-${w.key}`,id:`ks-block-field-${w.key}`,type:"text",defaultValue:ft.content?.[w.key]??"",onBlur:X=>ns(i,B,{...ft.content,[w.key]:X.target.value})})))),$&&u.createElement("div",{ref:it,"data-remove-target":!0,className:"ks-remove-target","aria-label":"Drop a block here to remove it"},"\u2715"),u.createElement("div",{ref:S,"data-block-grid":!0,style:{overflow:"hidden",visibility:O?"visible":"hidden"}},u.createElement(Ve,{width:E,layout:ut,gridConfig:{cols:x,rowHeight:b,margin:[ct,ct]},resizeConfig:{enabled:$&&!V,handles:vl},dragConfig:{enabled:$&&!V},dropConfig:Kt,onDrop:Zt,onDragStop:(w,X,d,m,z)=>Yt(w,d,z),onResizeStop:w=>Sr(i,w)},c.map(w=>u.createElement("div",{key:w.id,"data-block":w.id,...qt,onClick:()=>Et(w.id)},u.createElement(Cl,{id:w.id,name:wl(h,w.type),html:f[w.id]}))))))}function Rr({base:t,token:e,name:n,pages:r,block_types:o,blocks:a,version:s}){return u.createElement(Br,null,u.createElement("div",{className:"sm:hidden mb-4 flex items-center justify-between gap-3"},u.createElement("h1",{className:"ks-page-header-title"},n),u.createElement(Mn,{href:r,size:"sm"},"All pages")),u.createElement(jr,{title:n,actions:u.createElement(Mn,{href:r,"data-all-pages":!0},"All pages")}),u.createElement(Cr,{base:t,token:e,block_types:o,blocks:a,version:s,emptyMessage:"This page has no blocks yet."}))}Lr("alembic/page-builder",Rr);Tr(document,kn);})();
@@ -5,24 +5,8 @@ module Alembic
5
5
 
6
6
  rescue_from NotPublished, NotPermitted, Withdrawn, with: :refuse
7
7
 
8
- helper_method :flow_start_path
9
-
10
8
  private
11
9
 
12
- def flow_start_path(slug)
13
- alembic.flow_path(slug)
14
- end
15
-
16
- def admit(diagnostic)
17
- Flow::Admission.of(diagnostic, permitted: permitted?(diagnostic))
18
- end
19
-
20
- def permitted?(diagnostic)
21
- return false unless Alembic.visitor_authorization_method
22
-
23
- send(Alembic.visitor_authorization_method, diagnostic)
24
- end
25
-
26
10
  def refuse(refusal)
27
11
  return head :not_found unless Alembic.refusal_method
28
12