efficient-easel 0.100.0 → 0.101.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 (53) hide show
  1. package/dist/chrome/index.js +24 -16
  2. package/dist/{chunk-QKVR3K73.js → chunk-2FZJWH24.js} +1 -1
  3. package/dist/chunk-546BBOPE.js +1 -0
  4. package/dist/{chunk-LGKQXSKO.js → chunk-EOJNJCMJ.js} +8 -8
  5. package/dist/{chunk-A5UK76FC.js → chunk-EWVJSRRY.js} +6 -6
  6. package/dist/chunk-FPOKPNO4.js +1 -0
  7. package/dist/chunk-H24N5TMZ.js +11 -0
  8. package/dist/chunk-IG3U5NWJ.js +1 -0
  9. package/dist/chunk-KTVH2ZRL.js +15 -0
  10. package/dist/{chunk-6EIVTKZZ.js → chunk-L5KW4HG5.js} +21 -20
  11. package/dist/{chunk-TRVZ7C23.js → chunk-QTLAVDJE.js} +1 -1
  12. package/dist/chunk-UH7IGZKF.js +1 -0
  13. package/dist/{chunk-V7GIIXFB.js → chunk-ZFDCDJNZ.js} +1 -1
  14. package/dist/{chunk-DICUMYMG.js → chunk-ZNS7727Y.js} +1 -1
  15. package/dist/copy/copy.css +83 -29
  16. package/dist/copy/index.d.ts +41 -7
  17. package/dist/copy/index.js +32 -31
  18. package/dist/drag/index.js +4 -4
  19. package/dist/fields/fields.css +185 -30
  20. package/dist/fields/index.d.ts +165 -20
  21. package/dist/fields/index.js +22 -37
  22. package/dist/gold/index.js +1 -1
  23. package/dist/icons/index.d.ts +4 -1
  24. package/dist/icons/index.js +1 -1
  25. package/dist/index.js +1 -1
  26. package/dist/markup/index.d.ts +18 -1
  27. package/dist/markup/index.js +1 -1
  28. package/dist/menu/index.js +1 -15
  29. package/dist/node-ops/index.js +1 -1
  30. package/dist/panel/index.d.ts +49 -38
  31. package/dist/panel/index.js +18 -18
  32. package/dist/panel/panel.css +99 -81
  33. package/dist/pick/index.d.ts +40 -2
  34. package/dist/pick/index.js +1 -1
  35. package/dist/pick/pick.css +183 -10
  36. package/dist/rail/index.js +1 -1
  37. package/dist/strings/catalogue.d.ts +3 -3
  38. package/dist/strings/catalogue.js +1 -1
  39. package/dist/strings/index.d.ts +3 -3
  40. package/dist/strings/index.js +1 -1
  41. package/dist/style-clipboard/index.js +1 -1
  42. package/dist/text-styles/index.js +13 -13
  43. package/dist/tree/index.js +1 -1
  44. package/dist/{words-CJjUKcV5.d.ts → words-BGrHZAJJ.d.ts} +13 -4
  45. package/dist/{words-CzoyDNHm.d.ts → words-D8kf071T.d.ts} +40 -2
  46. package/dist/{words-DBq7vfHy.d.ts → words-XH0TvZPg.d.ts} +8 -5
  47. package/package.json +1 -1
  48. package/dist/chunk-AZT7V4UM.js +0 -10
  49. package/dist/chunk-HDVD27VB.js +0 -1
  50. package/dist/chunk-JQM3V7XQ.js +0 -1
  51. package/dist/chunk-LA54QLP5.js +0 -1
  52. package/dist/chunk-MH5GUZFQ.js +0 -9
  53. package/dist/chunk-SAJUCHOX.js +0 -1
@@ -1,17 +1,25 @@
1
- import{holderOf as e,describeAge as t,nameOrSomeone as n}from"../chunk-JUQ6YJCG.js";import{DEFAULT_LOCK_WORDS as r}from"../chunk-RE4LP46F.js";import{InspectorIconButton as i,InspectorHead as o}from"../chunk-MH5GUZFQ.js";export{InspectorHead,InspectorIconButton,InspectorUpLevel}from"../chunk-MH5GUZFQ.js";import{DEFAULT_NOTICE_WORDS as a,DEFAULT_CHROME_WORDS as s}from"../chunk-ZJEBF4NB.js";import{railTokens as l,EaselRail as c}from"../chunk-WZ7TGAAT.js";import{DEFAULT_RAIL_WORDS as d}from"../chunk-2OAZYSWJ.js";import{useWords as u}from"../chunk-MFIRYGHW.js";import"../chunk-BZ5ASXOL.js";import{PanelLeftIcon as m,PanelRightIcon as v,MediaIcon as f,ImageIcon as h}from"../chunk-6EIVTKZZ.js";import{jsx as p,jsxs as b,Fragment as k}from"react/jsx-runtime";import{useRef as g,useState as y,useCallback as w,useEffect as x,useLayoutEffect as C}from"react";function N({children:e}){/* @__PURE__ */
2
- return p("div",{className:"es-topbar",children:e})}function O({kind:e,style:t,children:n}){/* @__PURE__ */
3
- return p("div",{className:e?`es-cluster es-cluster--${e}`:"es-cluster",style:t,children:n})}function P(){/* @__PURE__ */
4
- return p("div",{className:"es-divider-v","aria-hidden":"true"})}var B="undefined"==typeof window?x:C;function L({items:e,ariaLabel:t,onWords:n}){const r=u("rail",d),i=g(null),[o,a]=y(void 0),[s,m]=y(null),v=JSON.stringify(e.map(e=>e.label));B(()=>{const t=i.current?.querySelector(".es-rail");if(!t)return;const n=document.createElement("canvas").getContext?.("2d")??null,r=()=>{if(m(v),!n)return a(void 0);const r=function(e,t,n){const r=parseFloat(getComputedStyle(e).getPropertyValue(t));return Number.isFinite(r)?r:n}(t,"--es-rail-word-size",l.wordFontSize),i=getComputedStyle(t).getPropertyValue("--es-rail-word-weight").trim()||String(l.wordFontWeight),o=getComputedStyle(t.querySelector(".es-rail-btn")??t).fontFamily;n.font=`${i} ${r}px ${o}`;const s=e.map(e=>n.measureText(e.label).width),c=e=>Math.ceil(4*e)/4;a({labelsPx:c(s.reduce((e,t)=>e+t,0)),widestLabelPx:c(Math.max(0,...s))})};r();let o=!0;return document.fonts?.ready.then(()=>o&&r()),()=>{o=!1}},[v]);const f=g(n);f.current=n;const h=g(null),b=Boolean(n),k=e.map(e=>e.active?"1":"0").join("");return B(()=>{const e=i.current;if(!b||!e||s!==v)return;const t=()=>{const t=Array.from(e.querySelectorAll(".es-rail-word")),n=t.filter(e=>e.getBoundingClientRect().width>0).length,r=t.length>0&&n===t.length?"all":n>0?"chosen":"none";r!==h.current&&(h.current=r,f.current?.(r))};t();const n=e.ownerDocument.defaultView?.ResizeObserver,r=n?new n(t):null;return r?.observe(e),()=>r?.disconnect()},[b,s,v,o,k]),/* @__PURE__ */p("div",{ref:i,className:"es-cluster es-cluster--rail es-rail-fit",children:/* @__PURE__ */p(c,{items:e,ariaLabel:t??r.label,orientation:"row",wordFit:o})})}function M({label:e,onClick:t,disabled:n,state:r,buttonRef:i,children:o}){/* @__PURE__ */
5
- return p("button",{ref:i,type:"button",className:r?`es-iconbtn es-iconbtn--${r}`:"es-iconbtn",title:e,"aria-label":e,disabled:n,onClick:t,children:o})}function S({devices:e,value:t,onChange:n,ariaLabel:r}){const i=u("chrome",s);/* @__PURE__ */
6
- return p("div",{className:"es-devseg",role:"group","aria-label":r??i.device,children:e.map(e=>{const r=e.id===t;/* @__PURE__ */
7
- return p("button",{type:"button",title:e.label,"aria-label":e.label,"aria-pressed":r,className:r?"is-active":void 0,onClick:()=>{r||n(e.id)},children:e.icon},e.id)})})}var $={idle:"is-quiet",saved:"is-quiet is-saved",saving:"is-saving",error:"is-error",off:"is-off","off-unsaved":"is-off is-unsaved"};function j({tone:e,label:t,counting:n,waitMs:r,ringRef:i,role:o}){/* @__PURE__ */
8
- return b("span",{className:`es-savestate ${$[e]}`,role:o,"aria-live":"polite",children:[/* @__PURE__ */p("span",n?{ref:i,className:"es-savestate-ring is-counting",style:void 0!==r?{"--es-savewait":`${r}ms`}:void 0,"aria-hidden":"true"}:{className:"es-savestate-dot","aria-hidden":"true"}),t]})}function F({pressed:e,title:t,onToggle:n,children:r}){/* @__PURE__ */
9
- return p("button",{type:"button",className:"es-savestate-toggle","aria-pressed":e,title:t,onClick:n,children:r})}var z="es-col-resizing";function R({side:e,width:t,min:n,max:r,defaultWidth:i,label:o,onResize:a}){const l=u("chrome",s),c=g(null),d=w((t,i)=>{const o="left"===e?t+i:t-i;return Math.round(Math.min(r,Math.max(n,o)))},[e,n,r]),m=w(e=>{c.current&&(c.current=null,document.body.classList.remove(z),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),v=w(e=>{0===e.button&&(c.current={x:e.clientX,w:t,moved:!1},e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(z))},[t]),f=w(e=>{const t=c.current;if(!t)return;if(0===e.buttons)return void m(e);const n=e.clientX-t.x;if(!t.moved){if(Math.abs(n)<3)return;t.moved=!0}a(d(t.w,n))},[a,d,m]),h=w(e=>{"ArrowLeft"===e.key?(e.preventDefault(),a(e=>d(e,-16))):"ArrowRight"===e.key?(e.preventDefault(),a(e=>d(e,16))):"Home"===e.key&&(e.preventDefault(),a(i))},[a,d,i]);return x(()=>()=>document.body.classList.remove(z),[]),/* @__PURE__ */p("div",{className:`es-resizer es-resizer--${e}`,role:"separator",tabIndex:0,"aria-orientation":"vertical","aria-label":o,"aria-valuenow":t,"aria-valuemin":n,"aria-valuemax":r,title:l.resize,onPointerDown:v,onPointerMove:f,onPointerUp:m,onPointerCancel:m,onLostPointerCapture:m,onDoubleClick:()=>a(i),onKeyDown:h,children:/* @__PURE__ */p("span",{className:"es-resizer-bar","aria-hidden":"true"})})}function I({context:e,pick:t,onCancel:n,onHide:r,side:a="left"}){const l=u("chrome",s),c=r?/* @__PURE__ */p(i,{label:l.hidePanelLabel({side:a}),title:l.hidePanel,onClick:r,children:/* @__PURE__ */p("left"===a?m:v,{size:16})}):null;if(!t)/* @__PURE__ */
10
- return p(o,{icon:/* @__PURE__ */p(f,{}),name:l.mediaLibrary,kind:e,actions:c??void 0});const d=l.mediaKinds[t.kind];/* @__PURE__ */
11
- return p(o,{icon:/* @__PURE__ */p(h,{size:15}),name:l.mediaChoose({kind:d}),kind:t.field?l.mediaFor({field:t.field}):e,actions:/* @__PURE__ */b(k,{children:[
12
- /* @__PURE__ */p("button",{type:"button",className:"es-btn-ghost es-insp-textbtn",title:l.mediaKeep({kind:d}),onClick:n,children:l.mediaCancel}),c?/* @__PURE__ */b(k,{children:[
13
- /* @__PURE__ */p("span",{className:"es-insp-divider","aria-hidden":"true"}),c]}):null]})})}function T(e){return/svg/i.test(e)?"svg":e.startsWith("video")?"video":"image"}var A={notice:a,lock:r};function D(r,i,o,a=A){const s=a.notice,l=e(r),c={kind:"reload",label:s.reload};if(i){const e=t(i.secondsAgo,a.lock);return{tone:"warning",urgent:!0,lead:i.savedByYou?s.savedByYou({noun:o,when:e}):s.savedByOther({name:n(i.savedBy,a.lock),noun:o,when:e}),body:s.conflictBody,actions:l?[c,{kind:"take-over",label:s.takeOver,title:s.takeOverWhileDeciding}]:[c]}}if(!l)return null;const d=n(l.name,a.lock),u=t(l.secondsSinceSeen,a.lock);switch(r.kind){case"takenover":return{tone:"warning",urgent:!0,lead:s.tookOver({name:d,noun:o,when:t(l.secondsSinceHeld,a.lock)}),body:s.tookOverBody,actions:[{kind:"take-back",label:s.takeBack},c]};case"readonly":return{tone:"neutral",urgent:!1,lead:s.viewingOnly,body:s.viewingOnlyBody({name:d,noun:o,seen:u}),actions:[{kind:"take-over",label:s.takeOver}]};default:return{tone:"warning",urgent:!1,lead:s.editing({name:d,noun:o}),body:s.editingBody({seen:u}),actions:[{kind:"view-read-only",label:s.viewReadOnly},{kind:"take-over",label:s.takeOver,title:s.takeOverTold}]}}}function W({access:e,conflict:t,noun:n,onTakeOver:i,onViewReadOnly:o,onReload:s}){const l=D(e,t,n,{notice:u("notice",a),lock:u("lock",r)});if(!l)return null;const c={reload:s,"take-over":i,"take-back":i,"view-read-only":o};/* @__PURE__ */
14
- return b("div",{className:`es-notice is-${l.tone}`,role:l.urgent?"alert":"status",children:[
15
- /* @__PURE__ */b("span",{className:"es-notice-text",children:[
1
+ import{DEFAULT_NOTICE_WORDS as e,DEFAULT_CHROME_WORDS as n}from"../chunk-ZJEBF4NB.js";import{holderOf as t,describeAge as i,nameOrSomeone as r}from"../chunk-JUQ6YJCG.js";import{DEFAULT_LOCK_WORDS as a}from"../chunk-RE4LP46F.js";import{railTokens as o,EaselRail as s}from"../chunk-WZ7TGAAT.js";import{DEFAULT_RAIL_WORDS as l}from"../chunk-2OAZYSWJ.js";import{useWords as c}from"../chunk-MFIRYGHW.js";import"../chunk-BZ5ASXOL.js";import{PanelLeftIcon as d,PanelRightIcon as u,MediaIcon as m,ImageIcon as h}from"../chunk-L5KW4HG5.js";import{jsx as p,jsxs as v,Fragment as f}from"react/jsx-runtime";import{useRef as b,useState as k,useCallback as g,useEffect as y,useLayoutEffect as w}from"react";function N({children:e}){/* @__PURE__ */
2
+ return p("div",{className:"es-topbar",children:e})}function C({kind:e,style:n,children:t}){/* @__PURE__ */
3
+ return p("div",{className:e?`es-cluster es-cluster--${e}`:"es-cluster",style:n,children:t})}function x(){/* @__PURE__ */
4
+ return p("div",{className:"es-divider-v","aria-hidden":"true"})}var P="undefined"==typeof window?y:w;function O({items:e,ariaLabel:n,onWords:t}){const i=c("rail",l),r=b(null),[a,d]=k(void 0),[u,m]=k(null),h=JSON.stringify(e.map(e=>e.label));P(()=>{const n=r.current?.querySelector(".es-rail");if(!n)return;const t=document.createElement("canvas").getContext?.("2d")??null,i=()=>{if(m(h),!t)return d(void 0);const i=function(e,n,t){const i=parseFloat(getComputedStyle(e).getPropertyValue(n));return Number.isFinite(i)?i:t}(n,"--es-rail-word-size",o.wordFontSize),r=getComputedStyle(n).getPropertyValue("--es-rail-word-weight").trim()||String(o.wordFontWeight),a=getComputedStyle(n.querySelector(".es-rail-btn")??n).fontFamily;t.font=`${r} ${i}px ${a}`;const s=e.map(e=>t.measureText(e.label).width),l=e=>Math.ceil(4*e)/4;d({labelsPx:l(s.reduce((e,n)=>e+n,0)),widestLabelPx:l(Math.max(0,...s))})};i();let a=!0;return document.fonts?.ready.then(()=>a&&i()),()=>{a=!1}},[h]);const v=b(t);v.current=t;const f=b(null),g=Boolean(t),y=e.map(e=>e.active?"1":"0").join("");return P(()=>{const e=r.current;if(!g||!e||u!==h)return;const n=()=>{const n=Array.from(e.querySelectorAll(".es-rail-word")),t=n.filter(e=>e.getBoundingClientRect().width>0).length,i=n.length>0&&t===n.length?"all":t>0?"chosen":"none";i!==f.current&&(f.current=i,v.current?.(i))};n();const t=e.ownerDocument.defaultView?.ResizeObserver,i=t?new t(n):null;return i?.observe(e),()=>i?.disconnect()},[g,u,h,a,y]),/* @__PURE__ */p("div",{ref:r,className:"es-cluster es-cluster--rail es-rail-fit",children:/* @__PURE__ */p(s,{items:e,ariaLabel:n??i.label,orientation:"row",wordFit:a})})}function L({label:e,onClick:n,disabled:t,state:i,buttonRef:r,children:a}){/* @__PURE__ */
5
+ return p("button",{ref:r,type:"button",className:i?`es-iconbtn es-iconbtn--${i}`:"es-iconbtn",title:e,"aria-label":e,disabled:t,onClick:n,children:a})}function S({devices:e,value:t,onChange:i,ariaLabel:r}){const a=c("chrome",n);/* @__PURE__ */
6
+ return p("div",{className:"es-devseg",role:"group","aria-label":r??a.device,children:e.map(e=>{const n=e.id===t;/* @__PURE__ */
7
+ return p("button",{type:"button",title:e.label,"aria-label":e.label,"aria-pressed":n,className:n?"is-active":void 0,onClick:()=>{n||i(e.id)},children:e.icon},e.id)})})}var B={idle:"is-quiet",saved:"is-quiet is-saved",saving:"is-saving",error:"is-error",off:"is-off","off-unsaved":"is-off is-unsaved"};function $({tone:e,label:n,counting:t,waitMs:i,ringRef:r,role:a}){/* @__PURE__ */
8
+ return v("span",{className:`es-savestate ${B[e]}`,role:a,"aria-live":"polite",children:[/* @__PURE__ */p("span",t?{ref:r,className:"es-savestate-ring is-counting",style:void 0!==i?{"--es-savewait":`${i}ms`}:void 0,"aria-hidden":"true"}:{className:"es-savestate-dot","aria-hidden":"true"}),n]})}function M({pressed:e,title:n,onToggle:t,children:i}){/* @__PURE__ */
9
+ return p("button",{type:"button",className:"es-savestate-toggle","aria-pressed":e,title:n,onClick:t,children:i})}var R="es-col-resizing";function z({side:e,width:t,min:i,max:r,defaultWidth:a,label:o,onResize:s}){const l=c("chrome",n),d=b(null),u=g((n,t)=>{const a="left"===e?n+t:n-t;return Math.round(Math.min(r,Math.max(i,a)))},[e,i,r]),m=g(e=>{d.current&&(d.current=null,document.body.classList.remove(R),e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},[]),h=g(e=>{0===e.button&&(d.current={x:e.clientX,w:t,moved:!1},e.currentTarget.setPointerCapture(e.pointerId),document.body.classList.add(R))},[t]),v=g(e=>{const n=d.current;if(!n)return;if(0===e.buttons)return void m(e);const t=e.clientX-n.x;if(!n.moved){if(Math.abs(t)<3)return;n.moved=!0}s(u(n.w,t))},[s,u,m]),f=g(e=>{"ArrowLeft"===e.key?(e.preventDefault(),s(e=>u(e,-16))):"ArrowRight"===e.key?(e.preventDefault(),s(e=>u(e,16))):"Home"===e.key&&(e.preventDefault(),s(a))},[s,u,a]);return y(()=>()=>document.body.classList.remove(R),[]),/* @__PURE__ */p("div",{className:`es-resizer es-resizer--${e}`,role:"separator",tabIndex:0,"aria-orientation":"vertical","aria-label":o,"aria-valuenow":t,"aria-valuemin":i,"aria-valuemax":r,title:l.resize,onPointerDown:h,onPointerMove:v,onPointerUp:m,onPointerCancel:m,onLostPointerCapture:m,onDoubleClick:()=>s(a),onKeyDown:f,children:/* @__PURE__ */p("span",{className:"es-resizer-bar","aria-hidden":"true"})})}function j({icon:e,name:n,kind:t,actions:i}){/* @__PURE__ */
10
+ return v("div",{className:"es-insp-head",children:[
11
+ /* @__PURE__ */p("span",{className:"es-insp-chip","aria-hidden":"true",children:e}),
12
+ /* @__PURE__ */v("div",{className:"es-insp-titles",children:[
13
+ /* @__PURE__ */p("h2",{className:"es-insp-name",children:n}),
14
+ /* @__PURE__ */p("div",{className:"es-insp-kind",children:t})]}),i?/* @__PURE__ */p("div",{className:"es-insp-actions",children:i}):null]})}function F({label:e,title:n,hasPopup:t,onClick:i,disabled:r,danger:a,expanded:o,buttonRef:s,children:l}){/* @__PURE__ */
15
+ return p("button",{ref:s,type:"button",className:a?"es-insp-iconbtn es-insp-iconbtn--danger":"es-insp-iconbtn",title:n??e,"aria-label":e,"aria-haspopup":t,"aria-expanded":o,disabled:r,onClick:i,children:l})}function T({name:e,onSelect:t,label:i,inline:r}){const a=c("chrome",n),o=i??a.upLevel,s=/* @__PURE__ */v("button",{type:"button",className:"es-insp-up-btn",title:o,"aria-label":a.upLevelTo({label:o,name:e}),onClick:t,children:[
16
+ /* @__PURE__ */p("span",{className:"es-insp-up-arrow","aria-hidden":"true",children:"←"}),
17
+ /* @__PURE__ */p("span",{className:"es-insp-up-name",children:e})]});return r?s:/* @__PURE__ */p("div",{className:"es-insp-up",children:s})}function A({context:e,pick:t,onCancel:i,onHide:r,side:a="left"}){const o=c("chrome",n),s=r?/* @__PURE__ */p(F,{label:o.hidePanelLabel({side:a}),title:o.hidePanel,onClick:r,children:/* @__PURE__ */p("left"===a?d:u,{size:16})}):null;if(!t)/* @__PURE__ */
18
+ return p(j,{icon:/* @__PURE__ */p(m,{}),name:o.mediaLibrary,kind:e,actions:s??void 0});const l=o.mediaKinds[t.kind];/* @__PURE__ */
19
+ return p(j,{icon:/* @__PURE__ */p(h,{size:15}),name:o.mediaChoose({kind:l}),kind:t.field?o.mediaFor({field:t.field}):e,actions:/* @__PURE__ */v(f,{children:[
20
+ /* @__PURE__ */p("button",{type:"button",className:"es-btn-ghost es-insp-textbtn",title:o.mediaKeep({kind:l}),onClick:i,children:o.mediaCancel}),s?/* @__PURE__ */v(f,{children:[
21
+ /* @__PURE__ */p("span",{className:"es-insp-divider","aria-hidden":"true"}),s]}):null]})})}function W(e){return/svg/i.test(e)?"svg":e.startsWith("video")?"video":"image"}var D={notice:e,lock:a};function q(e,n,a,o=D){const s=o.notice,l=t(e),c={kind:"reload",label:s.reload};if(n){const e=i(n.secondsAgo,o.lock);return{tone:"warning",urgent:!0,lead:n.savedByYou?s.savedByYou({noun:a,when:e}):s.savedByOther({name:r(n.savedBy,o.lock),noun:a,when:e}),body:s.conflictBody,actions:l?[c,{kind:"take-over",label:s.takeOver,title:s.takeOverWhileDeciding}]:[c]}}if(!l)return null;const d=r(l.name,o.lock),u=i(l.secondsSinceSeen,o.lock);switch(e.kind){case"takenover":return{tone:"warning",urgent:!0,lead:s.tookOver({name:d,noun:a,when:i(l.secondsSinceHeld,o.lock)}),body:s.tookOverBody,actions:[{kind:"take-back",label:s.takeBack},c]};case"readonly":return{tone:"neutral",urgent:!1,lead:s.viewingOnly,body:s.viewingOnlyBody({name:d,noun:a,seen:u}),actions:[{kind:"take-over",label:s.takeOver}]};default:return{tone:"warning",urgent:!1,lead:s.editing({name:d,noun:a}),body:s.editingBody({seen:u}),actions:[{kind:"view-read-only",label:s.viewReadOnly},{kind:"take-over",label:s.takeOver,title:s.takeOverTold}]}}}function H({access:n,conflict:t,noun:i,onTakeOver:r,onViewReadOnly:o,onReload:s}){const l=q(n,t,i,{notice:c("notice",e),lock:c("lock",a)});if(!l)return null;const d={reload:s,"take-over":r,"take-back":r,"view-read-only":o};/* @__PURE__ */
22
+ return v("div",{className:`es-notice is-${l.tone}`,role:l.urgent?"alert":"status",children:[
23
+ /* @__PURE__ */v("span",{className:"es-notice-text",children:[
16
24
  /* @__PURE__ */p("strong",{children:l.lead})," ",l.body]}),
17
- /* @__PURE__ */p("span",{className:"es-notice-actions",children:l.actions.map(e=>/* @__PURE__ */p("button",{type:"button",className:"es-notice-btn",title:e.title,onClick:c[e.kind],children:e.label},e.kind))})]})}var Z={left:288,right:320},H=220,q=560;function G(e){return Math.min(560,Math.max(220,Math.round(e)))}function J(e){return{"--es-left-w":`${e.left}px`,"--es-right-w":`${e.right}px`}}function U(e,t){e.style.setProperty("--es-left-w",`${t.left}px`),e.style.setProperty("--es-right-w",`${t.right}px`)}export{Z as DEFAULT_PANEL_W,S as DeviceSwitch,M as EaselIconButton,N as EaselTopBar,W as EditNotice,q as MAX_PANEL_W,H as MIN_PANEL_W,I as MediaPanelHead,R as PanelResizeHandle,j as SaveState,F as SaveStateToggle,O as TopBarCluster,P as TopBarDivider,L as TopBarRail,G as clampPanelWidth,D as editNotice,T as mediaPickKind,J as panelWidthVars,U as setPanelWidthVars};
25
+ /* @__PURE__ */p("span",{className:"es-notice-actions",children:l.actions.map(e=>/* @__PURE__ */p("button",{type:"button",className:"es-notice-btn",title:e.title,onClick:d[e.kind],children:e.label},e.kind))})]})}var I={left:288,right:320},J=220,Y=560;function G(e){return Math.min(560,Math.max(220,Math.round(e)))}function K(e){return{"--es-left-w":`${e.left}px`,"--es-right-w":`${e.right}px`}}function V(e,n){e.style.setProperty("--es-left-w",`${n.left}px`),e.style.setProperty("--es-right-w",`${n.right}px`)}export{I as DEFAULT_PANEL_W,S as DeviceSwitch,L as EaselIconButton,N as EaselTopBar,H as EditNotice,j as InspectorHead,F as InspectorIconButton,T as InspectorUpLevel,Y as MAX_PANEL_W,J as MIN_PANEL_W,A as MediaPanelHead,z as PanelResizeHandle,$ as SaveState,M as SaveStateToggle,C as TopBarCluster,x as TopBarDivider,O as TopBarRail,G as clampPanelWidth,q as editNotice,W as mediaPickKind,K as panelWidthVars,V as setPanelWidthVars};
@@ -1,4 +1,4 @@
1
- import{tokenizeInline as e,STANDARD_MARKUP as t}from"./chunk-HDVD27VB.js";import{jsx as n,jsxs as l}from"react/jsx-runtime";import{useRef as r}from"react";function s(t,n){const l=[];let r=0;for(const s of e(t,n)){if("text"===s.kind){s.text.length>0&&(l.push({kind:"text",text:t.slice(r,r+s.text.length)}),r+=s.text.length);continue}const e=i(t,r,s.kind,s.text,n);if(!e)return[{kind:"text",text:t}];const o=r+e.open.length,c=o+s.text.length,a=c+e.close.length;l.push({kind:"delimiter",text:t.slice(r,o)}),l.push({kind:s.kind,text:t.slice(o,c)}),l.push({kind:"delimiter",text:t.slice(c,a)}),r=a}return l.map(e=>e.text).join("")!==t?[{kind:"text",text:t}]:l}function i(e,t,n,l,r){for(const s of r){if(s.kind!==n)continue;if(!e.startsWith(s.open,t))continue;const r=t+s.open.length;if(e.startsWith(l,r)&&e.startsWith(s.close,r+l.length))return s}return null}function o({value:e,rules:l=t,className:r,layerRef:i}){const o=s(e,l);/* @__PURE__ */
1
+ import{tokenizeInline as e,STANDARD_MARKUP as t}from"./chunk-546BBOPE.js";import{jsx as n,jsxs as l}from"react/jsx-runtime";import{useRef as r}from"react";function s(t,n){const l=[];let r=0;for(const s of e(t,n)){if("text"===s.kind){s.text.length>0&&(l.push({kind:"text",text:t.slice(r,r+s.text.length)}),r+=s.text.length);continue}const e=i(t,r,s.kind,s.text,n);if(!e)return[{kind:"text",text:t}];const o=r+e.open.length,c=o+s.text.length,a=c+e.close.length;l.push({kind:"delimiter",text:t.slice(r,o)}),l.push({kind:s.kind,text:t.slice(o,c)}),l.push({kind:"delimiter",text:t.slice(c,a)}),r=a}return l.map(e=>e.text).join("")!==t?[{kind:"text",text:t}]:l}function i(e,t,n,l,r){for(const s of r){if(s.kind!==n)continue;if(!e.startsWith(s.open,t))continue;const r=t+s.open.length;if(e.startsWith(l,r)&&e.startsWith(s.close,r+l.length))return s}return null}function o({value:e,rules:l=t,className:r,layerRef:i}){const o=s(e,l);/* @__PURE__ */
2
2
  return n("div",{ref:i,className:["es-gold-layer",r??""].filter(Boolean).join(" "),"aria-hidden":"true",children:o.map((e,t)=>function(e,t){const{kind:l,text:r}=e;switch(l){case"delimiter":/* @__PURE__ */
3
3
  return n("span",{className:"es-gold-delim",children:r},t);case"accent":case"highlight":/* @__PURE__ */
4
4
  return n("em",{className:"es-gold-mark es-gold-accent",children:r},t);case"bold":/* @__PURE__ */
@@ -0,0 +1 @@
1
+ var e={bold:{open:"**",close:"**",placeholder:"bold text"},italic:{open:"_",close:"_",placeholder:"italic text"},strike:{open:"~~",close:"~~",placeholder:"struck out"},code:{open:"`",close:"`",placeholder:"code"},highlight:{open:"==",close:"==",placeholder:"highlighted text"},quiet:{open:"^^",close:"^^",placeholder:"quiet text"},underline:{open:"[",close:"]{underline}",placeholder:"underlined text"},sup:{open:"[",close:"]{sup}",placeholder:"superscript"},sub:{open:"[",close:"]{sub}",placeholder:"subscript"}};function t(e){return/^[a-z][a-z0-9-]*$/.test(e)}function n(e){return t(e)||/^#[0-9a-fA-F]{6}$/.test(e)}function l(e){return n(e)?e.startsWith("#")?e.toLowerCase():e:null}function r(e,t){const n=/^\{(underline|sup|sub|color=([a-z][a-z0-9-]*|#[0-9a-fA-F]{6}))\}/.exec(e.slice(t,t+64));return n?void 0===n[2]?{kind:n[1],length:n[0].length}:{kind:"color",color:n[2],length:n[0].length}:null}var s={bold:e.bold.placeholder,italic:e.italic.placeholder,strike:e.strike.placeholder,code:e.code.placeholder,highlight:e.highlight.placeholder,quiet:e.quiet.placeholder,link:"link text",underline:e.underline.placeholder,sup:e.sup.placeholder,sub:e.sub.placeholder,color:"colored text"},i={bullet:()=>"- ",number:e=>`${e+1}. `,quote:()=>"> "};function o(t,n,l,r,o=k,c=s){if("clear"===r)return N(t,n,l,o);const u=t.slice(n,l);if("link"===r){const e=u||c.link,r=`[${e}](https://)`;return{text:t.slice(0,n)+r+t.slice(l),selectionStart:n+e.length+3,selectionEnd:n+r.length-1}}const h=i[r];if(h){const e=t.lastIndexOf("\n",Math.max(n-1,0))+1,r=t.indexOf("\n",l),s=-1===r?t.length:r,i=t.slice(e,s).split("\n"),o=i.every((e,t)=>e.startsWith(h(t))),c=i.map((e,t)=>o?e.slice(h(t).length):h(t)+e).join("\n");return{text:t.slice(0,e)+c+t.slice(s),selectionStart:e,selectionEnd:e+c.length}}const{open:f,close:d}=e[r],m=r,p=c[m]??s[m];if(a(t,n,l,r))return{text:t.slice(0,n-f.length)+u+t.slice(l+d.length),selectionStart:n-f.length,selectionEnd:n-f.length+u.length};const b=u||p;return{text:t.slice(0,n)+f+b+d+t.slice(l),selectionStart:n+f.length,selectionEnd:n+f.length+b.length}}function c(e,t,n,i,o=s){const c={text:e,selectionStart:t,selectionEnd:n};if(null!==i){const e=l(i);if(null===e)return c;i=e}const a=e.slice(t,n),u=t>=1&&"["===e[t-1]&&"]"===e[n]?r(e,n+1):null;if("color"===u?.kind){const l=t-1,r=e.slice(n+1+u.length);return null===i?{text:e.slice(0,l)+a+r,selectionStart:l,selectionEnd:l+a.length}:{text:`${e.slice(0,n)}]{color=${i}}${r}`,selectionStart:t,selectionEnd:n}}if(null===i)return c;const h=a||(o.color??s.color);return{text:`${e.slice(0,t)}[${h}]{color=${i}}${e.slice(n)}`,selectionStart:t+1,selectionEnd:t+1+h.length}}function a(t,n,l,r){const s=e[r];if(!s)return!1;const{open:i,close:o}=s;return n>=i.length&&t.slice(n-i.length,n)===i&&t.slice(l,l+o.length)===o}function u(e,t,n){const l=0===t?0:e.lastIndexOf("\n",t-1)+1;for(let r=e.lastIndexOf("[",t);r>=l;r=0===r?-1:e.lastIndexOf("[",r-1)){const t=B(e,r);if(t&&n<=t.end)return{start:r,end:t.end,label:t.label,href:t.href}}return null}function h(e,t,n,l){const r=u(e,t,n),s=r?r.start:t,i=r?r.end:n,o=`[${r?r.label:e.slice(t,n)||l}](${l})`,c=s+o.length;return{text:e.slice(0,s)+o+e.slice(i),selectionStart:c,selectionEnd:c}}function f(e,t){return{text:e.slice(0,t.start)+t.label+e.slice(t.end),selectionStart:t.start,selectionEnd:t.start+t.label.length}}var d=[{style:"bold",label:"B",name:"Strong",title:"Strong · **words** · ⌘B",shortcut:"b"},{style:"italic",label:"I",name:"Italic",title:"Italic · _words_ · ⌘I",shortcut:"i"},{style:"strike",label:"S",name:"Strikethrough",title:"Strikethrough · ~~words~~"},{style:"highlight",label:"◆",name:"Emphasis",title:"Emphasis · ==words=="},{style:"quiet",label:"a",name:"Quiet",title:"Quiet · ^^words^^"},{style:"code",label:"‹›",name:"Code",title:"Code"},{style:"link",label:"🔗",name:"Link",title:"Link · [words](https://…) · ⌘K",shortcut:"k"},{style:"bullet",label:"•",name:"Bulleted list",title:"Bulleted list"},{style:"number",label:"1.",name:"Numbered list",title:"Numbered list"},{style:"quote",label:"❝",name:"Quote",title:"Quote"},{style:"clear",label:"T×",name:"Clear marks",title:"Clear marks · ⌘⇧X",shortcut:"shift+x"}],m={bold:"Strong",highlight:"Emphasis",quiet:"Quiet"};function p(e){return d.filter(t=>e.includes(t.style))}var k=[{open:"**",close:"**",kind:"bold"},{open:"==",close:"==",kind:"highlight"},{open:"~~",close:"~~",kind:"strike"},{open:"_",close:"_",kind:"italic",wordBoundary:!0},{open:"^^",close:"^^",kind:"quiet"},{open:"@@",close:"@@",kind:"highlight"},{open:"++",close:"++",kind:"bold"}],b=["highlight","quiet"],g=d.map(e=>e.style).filter(e=>k.some(t=>t.kind===e)).filter(e=>!b.includes(e)),x=[...k,{open:"*",close:"*",kind:"accent"}],S=[...k,{open:"*",close:"*",kind:"accent"},{open:"#",close:"#",kind:"bold",notBefore:"0123456789"},{open:"[",close:"]",kind:"italic",notBefore:"(",notBeforeBlock:!0}];function v(e){return!/\s/.test(e)&&!/[!-\/:-@[-`{-~]/.test(e)}function w(e,t){const n=[];let l="",r=0;for(;r<e.length;){const s=E(e,r,t);s?(n.push({kind:"text",text:l}),l="",n.push({kind:s.rule.kind,text:s.inner}),r=s.end):(l+=e[r],r+=1)}return n.push({kind:"text",text:l}),n}function E(e,t,n){for(const l of n){if(!e.startsWith(l.open,t))continue;if(l.wordBoundary&&t>0&&v(e[t-1]))continue;const n=t+l.open.length,s=e.indexOf(l.close,n);if(s<n+1)continue;const i=e.slice(n,s);if(i.includes(l.close[0]))continue;if(i.includes("\n"))continue;const o=s+l.close.length,c=e[o];if((!l.notBefore||void 0===c||!l.notBefore.includes(c))&&!(l.notBeforeBlock&&r(e,o)||l.wordBoundary&&void 0!==c&&v(c)))return{rule:l,inner:i,end:o}}return null}function y(e,t){return w(e,t).map(e=>e.text).join("")}var M=["http","https","mailto","tel"];function $(e){if(""===e||/[\s\u0000-\u001f\u007f]/.test(e))return!1;const t=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!t||M.includes(t[1].toLowerCase())}function B(e,t){if("["!==e[t])return null;const n=e.indexOf("]",t+1);if(n<t+2||"("!==e[n+1])return null;const l=e.slice(t+1,n);if(l.includes("["))return null;const r=e.indexOf(")",n+2);if(-1===r)return null;const s=e.slice(n+2,r);return $(s)?{label:l,href:s,end:r+1}:null}function z(e,t){if("["!==e[t])return null;let n=0;for(let l=t;l<e.length;l+=1){const s=e[l];if("\n"===s)return null;if("["===s)n+=1;else if("]"===s){if(n-=1,n>0)continue;if(l===t+1)return null;const s=r(e,l+1);return s?{kind:s.kind,color:s.color,label:e.slice(t+1,l),close:e.slice(l,l+1+s.length),end:l+1+s.length}:null}}return null}var q=4;function I(e,t,n){const l=[];let r="";const s=()=>{r&&l.push({kind:"text",text:r}),r=""},i=e=>n+1<q?I(e,t,n+1):[{kind:"text",text:e}];let o=0;for(;o<e.length;){const n=B(e,o);if(n){s(),l.push({kind:"link",href:n.href,children:i(n.label)}),o=n.end;continue}const c=z(e,o);if(c){s(),l.push({kind:c.kind,open:"[",close:c.close,...void 0===c.color?{}:{color:c.color},children:i(c.label)}),o=c.end;continue}const a=E(e,o,t);a?(s(),l.push({kind:a.rule.kind,open:a.rule.open,close:a.rule.close,children:i(a.inner)}),o=a.end):(r+=e[o],o+=1)}return s(),l}function O(e,t){return e.split("\n").map(e=>{const{bullet:n,number:l,rest:r}=function(e){if(e.startsWith("- ")&&""!==e.slice(2).trim())return{bullet:!0,number:null,rest:e.slice(2)};const t=/^([0-9]{1,3})\. /.exec(e);return t&&""!==e.slice(t[0].length).trim()?{bullet:!1,number:t[1],rest:e.slice(t[0].length)}:{bullet:!1,number:null,rest:e}}(e);return{bullet:n,number:l,children:I(r,t,0)}})}function C(e){return null!=e.number?`${e.number}. `:e.bullet?"- ":""}function _(e){return e.map(e=>"text"===e.kind?e.text:"link"===e.kind?`[${_(e.children)}](${e.href})`:e.open+_(e.children)+e.close).join("")}function j(e){return e.map(e=>C(e)+_(e.children)).join("\n")}function Q(t,n,r){if("link"===n)return void 0===r?null:{id:t,kind:"link",open:"[",close:`](${r})`,href:r};if("color"===n){const e=void 0===r?null:l(r);return null===e?null:{id:t,kind:"color",open:"[",close:`]{color=${e}}`,color:e}}const s=e[n];return s&&"code"!==n?{id:t,kind:n,open:s.open,close:s.close}:null}function A(e,t){let n=0,l=0;return e.split("\n").map(e=>{const[r]=O(e,t);let s=l+C(r).length;l+=e.length+1;const i=[],o=(e,t)=>{for(const l of e){if("text"===l.kind){for(const e of l.text)i.push({ch:e,marks:t,at:s}),s+=e.length;continue}const e="link"===l.kind?Q(++n,"link",l.href):{id:++n,kind:l.kind,open:l.open,close:l.close,...void 0===l.color?{}:{color:l.color}};s+=e.open.length,o(l.children,[...t,e]),s+=e.close.length}};return o(r.children,[]),{bullet:r.bullet,number:r.number??null,chars:i}})}function L(e){let t="";const n=[];return e.forEach((e,l)=>{l>0&&(t+="\n"),t+=C(e);const r=[],s=[];for(const n of e.chars){let e=0;for(;e<r.length&&e<n.marks.length&&r[e].id===n.marks[e].id;)e+=1;for(;r.length>e;)t+=r.pop().close;for(let l=e;l<n.marks.length;l+=1)t+=n.marks[l].open,r.push(n.marks[l]);s.push(t.length),t+=n.ch}for(;r.length>0;)t+=r.pop().close;n.push(s)}),{text:t,at:n}}function W(e,t){return e.length===t.length&&e.every((e,n)=>{const l=t[n];return e.bullet===l.bullet&&(e.number??null)===(l.number??null)&&(e.chars.length===l.chars.length&&e.chars.every((e,t)=>{const n=l.chars[t];return e.ch===n.ch&&e.marks.length===n.marks.length&&e.marks.every((e,t)=>e.kind===n.marks[t].kind&&e.href===n.marks[t].href&&e.color===n.marks[t].color)}))})}function N(e,t,n,l=k){const r=A(e,l),s=r.flatMap(e=>e.chars),i={text:e,selectionStart:t,selectionEnd:n},o=e=>r.map(t=>({bullet:t.bullet,number:t.number,chars:t.chars.map(t=>({...t,marks:t.marks.filter(n=>"link"===n.kind||!e(t,n))}))})),c=e=>{const t=L(e);return W(e,A(t.text,l))?t:null},a=(e,t)=>{let n=s.indexOf(t);for(let t=0;t<e.at.length;t+=1){if(n<e.at[t].length)return e.at[t][n];n-=e.at[t].length}return 0};if(t===n){const e=[...s].reverse().find(e=>e.at<t),n=s.find(e=>e.at>=t),l=new Set([...e?.marks??[],...n?.marks??[]].map(e=>e.id));if(![...l].some(e=>s.some(t=>t.marks.some(t=>t.id===e&&"link"!==t.kind))))return i;const r=c(o((e,t)=>l.has(t.id)));if(!r)return i;const u=n?a(r,n):e?a(r,e)+e.ch.length:0;return{text:r.text,selectionStart:u,selectionEnd:u}}const u=new Set(s.filter(e=>e.at>=t&&e.at<n));if(0===u.size)return i;const h=new Set([...u].flatMap(e=>e.marks.map(e=>e.id))),f=c(T(o(e=>u.has(e)),h))??c(o((e,t)=>h.has(t.id)));if(!f)return i;const d=s.find(e=>u.has(e)),m=[...s].reverse().find(e=>u.has(e));return{text:f.text,selectionStart:a(f,d),selectionEnd:a(f,m)+m.ch.length}}function F(e,t,n,l=k){if(t===n)return{text:e,selectionStart:t,selectionEnd:n};const r=A(e,l),s=r.flatMap(e=>e.chars),i=new Set(s.filter(e=>e.at>=t&&e.at<n)),o=e=>"link"!==e.kind,c=new Set([...i].flatMap(e=>e.marks.filter(o).map(e=>e.id)));if(0===c.size)return{text:e,selectionStart:t,selectionEnd:n};const a=e=>r.map(t=>({bullet:t.bullet,number:t.number,chars:t.chars.map(t=>({...t,marks:e(t)}))})),u=a(e=>i.has(e)?e.marks.filter(e=>!o(e)):e.marks);u.forEach((e,t)=>{const n=e.chars,l=r[t].chars.map(e=>i.has(e)),s=e=>{n[e].marks=n[e].marks.filter(e=>!c.has(e.id))};n.forEach((e,t)=>{if(l[t]){if(0===t||!l[t-1])for(let e=t-1;e>=0&&/\s/.test(n[e].ch);e-=1)s(e);if(t===n.length-1||!l[t+1])for(let e=t+1;e<n.length&&/\s/.test(n[e].ch);e+=1)s(e)}})});const h=K(u,l)??K(a(e=>e.marks.filter(e=>!c.has(e.id))),l);return G(e,s,i,h,t,n)}function Z(e){return e.at.flat()}function K(e,t){const n=L(e);return W(e,A(n.text,t))?n:null}function T(e,t){return e.map(e=>{const n=e.chars.map(e=>({...e}));for(const e of t){const t=t=>t.marks.some(t=>t.id===e),l=n.flatMap((e,n)=>t(e)?[n]:[]),r=t=>{n[t].marks=n[t].marks.filter(t=>t.id!==e)};for(let e=0;e<l.length&&/\s/.test(n[l[e]].ch);e+=1)r(l[e]);for(let e=l.length-1;e>=0&&/\s/.test(n[l[e]].ch)&&t(n[l[e]]);e-=1)r(l[e])}return{bullet:e.bullet,number:e.number,chars:n}})}function X(e,t){return t.kind===e||"highlight"===e&&"accent"===t.kind}function D(e,t,n){const l=e.findIndex(e=>n(e.id));return-1===l?[...e,t]:[...e.slice(0,l),t,...e.slice(l)]}function G(e,t,n,l,r,s){if(!l)return{text:e,selectionStart:r,selectionEnd:s};const i=Z(l),o=t.flatMap((e,t)=>n.has(e)?[t]:[]),c=o[0],a=o[o.length-1];return{text:l.text,selectionStart:i[c],selectionEnd:i[a]+t[a].ch.length}}function H(e,t,n,l,r=k){if(t===n||!Q(0,l))return o(e,t,n,l,r);const s=A(e,r),i=s.flatMap(e=>e.chars),c=new Set(i.filter(e=>e.at>=t&&e.at<n));if(0===c.size)return{text:e,selectionStart:t,selectionEnd:n};const a=e=>s.map(t=>({bullet:t.bullet,number:t.number,chars:t.chars.map(t=>({...t,marks:e(t)}))}));if([...c].every(e=>e.marks.some(e=>X(l,e)))){const s=new Set([...c].flatMap(e=>e.marks.filter(e=>X(l,e)).map(e=>e.id))),o=K(T(a(e=>c.has(e)?e.marks.filter(e=>!X(l,e)):e.marks),s),r)??K(a(e=>e.marks.filter(e=>!s.has(e.id))),r);return G(e,i,c,o,t,n)}const u=new Set([...c].flatMap(e=>e.marks.filter(e=>X(l,e)).map(e=>e.id))),h=new Set(i.filter(e=>c.has(e)||e.marks.some(e=>u.has(e.id)))),f=Math.max(0,...i.flatMap(e=>e.marks.map(e=>e.id)))+1,d=Q(f,l),m=e=>i.every(t=>!t.marks.some(t=>t.id===e)||h.has(t)),p=K(T(a(e=>h.has(e)?D(e.marks.filter(e=>!X(l,e)),d,m):e.marks),/* @__PURE__ */new Set([f])),r);return G(e,i,c,p,t,n)}function J(e,t,n,l=k){const r=A(e,l).flatMap(e=>e.chars);let s;if(t===n){const n=[...r].reverse().find(n=>n.at<t&&!e.slice(n.at,t).includes("\n"));s=n?[n]:[]}else s=r.filter(e=>e.at>=t&&e.at<n);if(0===s.length)/* @__PURE__ */return new Set;const i=s.map(e=>new Set(e.marks.map(e=>e.kind)));return new Set([...i[0]].filter(e=>i.every(t=>t.has(e))))}function P(e,t,n){const l=t===n?[[...e].reverse().find(e=>e.at<t),e.find(e=>e.at>=t)]:e.filter(e=>e.at>=t&&e.at<n);for(const e of l){const t=e?.marks.find(e=>"link"===e.kind);if(t)return t.id}return null}function R(e,t,n,l,r=k){const s=A(e,r),i=s.flatMap(e=>e.chars),o=e=>s.map(t=>({bullet:t.bullet,number:t.number,chars:t.chars.map(t=>({...t,marks:e(t)}))})),c=(e,t,n)=>{const l=Z(e),r=i.reduce((e,n,l)=>t(n)?l:e,-1),s=l[r]+i[r].ch.length+n.close.length;return{text:e.text,selectionStart:s,selectionEnd:s}};if(t===n){const s=P(i,t,n);if(null===s)return h(e,t,n,l);const a=Q(s,"link",l),u=K(o(e=>e.marks.map(e=>e.id===s?a:e)),r);return u?c(u,e=>e.marks.some(e=>e.id===s),a):{text:e,selectionStart:t,selectionEnd:n}}const a=new Set(i.filter(e=>e.at>=t&&e.at<n));if(0===a.size)return h(e,t,n,l);const u=Q(Math.max(0,...i.flatMap(e=>e.marks.map(e=>e.id)))+1,"link",l),f=e=>i.every(t=>!t.marks.some(t=>t.id===e)||a.has(t)),d=K(o(e=>a.has(e)?D(e.marks.filter(e=>"link"!==e.kind),u,f):e.marks),r);return d?c(d,e=>a.has(e),u):{text:e,selectionStart:t,selectionEnd:n}}function U(e,t,n,l=k){const r=A(e,l),s=r.flatMap(e=>e.chars),i=P(s,t,n);if(null===i)return{text:e,selectionStart:t,selectionEnd:n};const o=new Set(s.filter(e=>e.marks.some(e=>e.id===i)));return G(e,s,o,K(r.map(e=>({bullet:e.bullet,number:e.number,chars:e.chars.map(e=>({...e,marks:e.marks.filter(e=>e.id!==i)}))})),l),t,n)}function V(e,t,l,r,s=k){const i={text:e,selectionStart:t,selectionEnd:l};if(t===l||null!==r&&!n(r))return i;const o=A(e,s),c=o.flatMap(e=>e.chars),a=new Set(c.filter(e=>e.at>=t&&e.at<l));if(0===a.size)return i;const u=e=>o.map(t=>({bullet:t.bullet,number:t.number,chars:t.chars.map(t=>({...t,marks:e(t)}))})),h=new Set([...a].flatMap(e=>e.marks.filter(e=>"color"===e.kind).map(e=>e.id)));if(null===r){const n=K(T(u(e=>a.has(e)?e.marks.filter(e=>"color"!==e.kind):e.marks),h),s)??K(u(e=>e.marks.filter(e=>!h.has(e.id))),s);return G(e,c,a,n,t,l)}const f=Math.max(0,...c.flatMap(e=>e.marks.map(e=>e.id)))+1,d=Q(f,"color",r),m=e=>c.every(t=>!t.marks.some(t=>t.id===e)||a.has(t)),p=K(T(u(e=>a.has(e)?D(e.marks.filter(e=>"color"!==e.kind),d,m):e.marks),/* @__PURE__ */new Set([f,...h])),s);return G(e,c,a,p,t,l)}function Y(e,t,n,l=k){const r=A(e,l).flatMap(e=>e.chars),s=t===n?[[...r].reverse().find(n=>n.at<t&&!e.slice(n.at,t).includes("\n"))].filter(e=>void 0!==e):r.filter(e=>e.at>=t&&e.at<n);if(0===s.length)return null;const i=e=>e.marks.filter(e=>"color"===e.kind).pop()?.color??null,o=i(s[0]);return null!==o&&s.every(e=>i(e)===o)?o:null}var ee=/^(?:- |([0-9]{1,3})\. )$/;function te(e,t,n){const l=e.split("\n"),r=[];let s=0;for(const e of l)r.push(s),s+=e.length+1;const i=e=>{let t=0;for(;t+1<r.length&&r[t+1]<=e;)t+=1;return t};return{first:i(t),last:i(Math.max(t,n)),starts:r}}function ne(e,t){if(null!=t.number)return"number";if(t.bullet)return"bullet";const n=ee.exec(e);return n?void 0===n[1]?"bullet":"number":null}function le(e,t,n,l,r=k){const s=e.split("\n"),i=A(e,r),{first:o,last:c}=te(e,t,n),a=i.map((e,t)=>null===ne(s[t],e)||e.bullet||null!=e.number?{bullet:e.bullet,number:e.number??null,chars:e.chars}:{bullet:!1,number:null,chars:[]});let u=0;if("number"===l&&o>0&&"number"===ne(s[o-1],i[o-1])){const e=i[o-1].number??ee.exec(s[o-1])?.[1]??"0";u=Number(e)}const h=L(a.map((e,t)=>t<o||t>c?e:"bullet"===l?{bullet:!0,number:null,chars:e.chars}:"number"===l?{bullet:!1,number:String(u+=1),chars:e.chars}:{bullet:!1,number:null,chars:e.chars})).text.split("\n").map((e,t)=>t<o||t>c?s[t]:e),f=h.join("\n"),{starts:d}=te(e,0,0),m=t=>{const{first:n}=te(e,t,t);let l=0;for(let e=0;e<n;e+=1)l+=h[e].length-s[e].length;const r=null===ne(s[o=n],i[o])||i[o].bullet||null!=i[o].number?C(i[o]).length:s[o].length;var o;const c=h[n].length-(s[n].length-r),a=t-d[n];return d[n]+l+(a<r?c:a-r+c)};return{text:f,selectionStart:m(t),selectionEnd:m(n)}}function re(e,t,n,l=k){const r=e.split("\n"),s=A(e,l),{first:i,last:o}=te(e,t,n),c=new Set(s.slice(i,o+1).map((e,t)=>ne(r[i+t],e)));return 1===c.size?[...c][0]:null}export{S as CAMPAIGN_MARKUP,g as COPY_FIELD_TOOLS,d as MARKUP_TOOLS,m as MARK_NAMES,s as MARK_PLACEHOLDERS,b as RETIRED_MARKS,k as STANDARD_MARKUP,x as STOREFRONT_MARKUP,c as applyColor,o as applyMark,N as clearMarks,F as clearStyle,Y as colorIn,V as colorOver,u as findLink,t as isColorName,n as isColorValue,$ as isSafeLinkHref,R as linkOver,re as listIn,a as markedAt,A as markedLines,J as marksIn,p as markupTools,O as parseMarkup,f as removeLink,W as sameMarks,j as serializeMarkup,le as setList,Q as spanFor,y as stripInline,H as toggleMark,w as tokenizeInline,U as unlinkAt,h as writeLink,L as writeMarkedLines};
@@ -1,16 +1,16 @@
1
- import{useNumberEntry as e,clampNumber as l}from"./chunk-A5UK76FC.js";import{DEFAULT_FIELDS_WORDS as a}from"./chunk-LA54QLP5.js";import{useWords as r}from"./chunk-MFIRYGHW.js";import{useId as n,useState as s,useRef as t,useMemo as i,useEffect as o}from"react";import{jsx as u,jsxs as c,Fragment as d}from"react/jsx-runtime";function p(e,l){return e.find(e=>Object.is(e.value,l))}function h(e){const{id:l,options:h,placeholder:f,readOnly:m=!1,ariaLabel:v,ariaLabelledBy:b,searchable:g=!1,searchPlaceholder:y,groupCount:N=!1,inline:w=!1,renderOption:x}=e,k=r("fields",a),D=n(),C=n(),$=l??C,[A,L]=s(!1),[O,j]=s(0),[E,M]=s(""),K=t(null),S=t(null),V=t(null),F=t(null),U=y??k.search??a.search,I=!0===e.multiple,P=I&&Array.isArray(e.value)?e.value:[],H=e=>P.some(l=>Object.is(l,e.value)),W=I?void 0:p(h,e.value),z=W?h.indexOf(W):-1,B=e=>I?H(h[e]):e===z,G=i(()=>{const e=g?E.trim().toLowerCase():"",l=[];return h.forEach((a,r)=>{e&&!a.label.toLowerCase().includes(e)||l.push(r)}),l},[h,E,g]),Q=i(()=>new Set(G),[G]),R=G.filter(e=>!h[e].disabled),T=h.some(e=>void 0!==e.thumb),Y=T||I||void 0!==x||h.some(e=>void 0!==e.meta),q=()=>{if(m||0===h.length)return;M("");const e=I?h.findIndex(e=>!e.disabled&&H(e)):z;j(e>=0?e:Math.max(h.findIndex(e=>!e.disabled),0)),L(!0)},J=e=>{L(!1),M(""),e&&S.current?.focus()},X=l=>{const a=h[l];if(a&&!a.disabled){if(!0===e.multiple){const r=!H(a);return void e.onChange(h.filter((e,a)=>a===l?r:H(e)).map(e=>e.value))}Object.is(a.value,e.value)||e.onChange(a.value),J(!0)}};o(()=>{if(!A)return;(g?F.current:V.current)?.focus();const e=K.current?.ownerDocument;if(!e)return;const l=e=>{K.current&&!K.current.contains(e.target)&&(L(!1),M(""))};return e.addEventListener("click",l,!0),()=>e.removeEventListener("click",l,!0)},[A,g]),o(()=>{A&&g&&j(R[0]??-1)},[E]);const Z=e=>{if(0===R.length)return;const l=R.indexOf(O),a=l<0?1===e?0:R.length-1:(l+e+R.length)%R.length;j(R[a])},_=e=>{switch(e.key){case"ArrowDown":return e.preventDefault(),Z(1),!0;case"ArrowUp":return e.preventDefault(),Z(-1),!0;case"Enter":return e.preventDefault(),Q.has(O)&&X(O),!0;case"Escape":return e.preventDefault(),e.stopPropagation(),J(!0),!0;case"Tab":return J(!1),!0;default:return!1}},ee=(e,l)=>{if(!Y)return e.label;const a={active:l===O,chosen:B(l)};/* @__PURE__ */
2
- return c(d,{children:[I?/* @__PURE__ */u("span",{className:"es-fsel-tick"+(a.chosen?" is-on":""),"aria-hidden":"true"}):null,T?/* @__PURE__ */u("span",{className:"es-fsel-thumb","aria-hidden":"true",children:e.thumb?/* @__PURE__ */u("img",{src:e.thumb,alt:"",loading:"lazy"}):null}):null,x?x(e,a):/* @__PURE__ */u("span",{className:"es-fsel-label",children:e.label}),void 0!==e.meta?/* @__PURE__ */u("span",{className:"es-fsel-meta","aria-hidden":"true",children:e.meta}):null]})},le=function(e,l){const a=[];return e.forEach((e,r)=>{if(!l.has(r))return;const n=a[a.length-1];n&&n.group===e.group?n.items.push({o:e,i:r}):a.push({group:e.group,items:[{o:e,i:r}]})}),a}(h,Q),ae=le.map((e,l)=>{const a=e.items.map(({o:e,i:l})=>/* @__PURE__ */u("li",{id:`${D}-${l}`,role:"option","aria-selected":B(l),"aria-disabled":e.disabled||void 0,className:`es-fsel-option${Y?" es-fsel-option--rich":""}${l===O?" is-active":""}${B(l)?" is-chosen":""}`,onMouseEnter:()=>j(l),onClick:()=>X(l),children:ee(e,l)},`${l}-${String(e.value)}`));if(void 0===e.group)return a;const r=`${D}-g${l}`;/* @__PURE__ */
1
+ import{useNumberEntry as e,clampNumber as l}from"./chunk-EWVJSRRY.js";import{DEFAULT_FIELDS_WORDS as a}from"./chunk-FPOKPNO4.js";import{useWords as r}from"./chunk-MFIRYGHW.js";import{useId as n,useState as s,useRef as t,useMemo as i,useEffect as o}from"react";import{jsx as u,jsxs as c,Fragment as d}from"react/jsx-runtime";function p(e,l){return e.find(e=>Object.is(e.value,l))}function h(e){const{id:l,options:h,placeholder:f,readOnly:m=!1,ariaLabel:v,ariaLabelledBy:b,searchable:g=!1,searchPlaceholder:y,groupCount:N=!1,inline:w=!1,renderOption:x}=e,k=r("fields",a),D=n(),C=n(),$=l??C,[O,A]=s(!1),[E,j]=s(0),[L,M]=s(""),S=t(null),V=t(null),K=t(null),F=t(null),P=y??k.search??a.search,I=!0===e.multiple,U=I&&Array.isArray(e.value)?e.value:[],R=e=>U.some(l=>Object.is(l,e.value)),W=I?void 0:p(h,e.value),H=W?h.indexOf(W):-1,Y=e=>I?R(h[e]):e===H,z=i(()=>{const e=g?L.trim().toLowerCase():"",l=[];return h.forEach((a,r)=>{e&&!a.label.toLowerCase().includes(e)||l.push(r)}),l},[h,L,g]),B=i(()=>new Set(z),[z]),G=z.filter(e=>!h[e].disabled),J=h.some(e=>void 0!==e.thumb),T=J||I||void 0!==x||h.some(e=>void 0!==e.meta),q=()=>{if(m||0===h.length)return;M("");const e=I?h.findIndex(e=>!e.disabled&&R(e)):H;j(e>=0?e:Math.max(h.findIndex(e=>!e.disabled),0)),A(!0)},Q=e=>{A(!1),M(""),e&&V.current?.focus()},X=l=>{const a=h[l];if(a&&!a.disabled){if(!0===e.multiple){const r=!R(a);return void e.onChange(h.filter((e,a)=>a===l?r:R(e)).map(e=>e.value))}Object.is(a.value,e.value)||e.onChange(a.value),Q(!0)}};o(()=>{if(!O)return;(g?F.current:K.current)?.focus();const e=S.current?.ownerDocument;if(!e)return;const l=e=>{S.current&&!S.current.contains(e.target)&&(A(!1),M(""))};return e.addEventListener("click",l,!0),()=>e.removeEventListener("click",l,!0)},[O,g]),o(()=>{O&&g&&j(G[0]??-1)},[L]);const Z=e=>{if(0===G.length)return;const l=G.indexOf(E),a=l<0?1===e?0:G.length-1:(l+e+G.length)%G.length;j(G[a])},_=e=>{switch(e.key){case"ArrowDown":return e.preventDefault(),Z(1),!0;case"ArrowUp":return e.preventDefault(),Z(-1),!0;case"Enter":return e.preventDefault(),B.has(E)&&X(E),!0;case"Escape":return e.preventDefault(),e.stopPropagation(),Q(!0),!0;case"Tab":return Q(!1),!0;default:return!1}},ee=(e,l)=>{if(!T)return e.label;const a={active:l===E,chosen:Y(l)};/* @__PURE__ */
2
+ return c(d,{children:[I?/* @__PURE__ */u("span",{className:"es-fsel-tick"+(a.chosen?" is-on":""),"aria-hidden":"true"}):null,J?/* @__PURE__ */u("span",{className:"es-fsel-thumb","aria-hidden":"true",children:e.thumb?/* @__PURE__ */u("img",{src:e.thumb,alt:"",loading:"lazy"}):null}):null,x?x(e,a):/* @__PURE__ */u("span",{className:"es-fsel-label",children:e.label}),void 0!==e.meta?/* @__PURE__ */u("span",{className:"es-fsel-meta","aria-hidden":"true",children:e.meta}):null]})},le=function(e,l){const a=[];return e.forEach((e,r)=>{if(!l.has(r))return;const n=a[a.length-1];n&&n.group===e.group?n.items.push({o:e,i:r}):a.push({group:e.group,items:[{o:e,i:r}]})}),a}(h,B),ae=le.map((e,l)=>{const a=e.items.map(({o:e,i:l})=>/* @__PURE__ */u("li",{id:`${D}-${l}`,role:"option","aria-selected":Y(l),"aria-disabled":e.disabled||void 0,className:`es-fsel-option${T?" es-fsel-option--rich":""}${l===E?" is-active":""}${Y(l)?" is-chosen":""}`,onMouseEnter:()=>j(l),onClick:()=>X(l),children:ee(e,l)},`${l}-${String(e.value)}`));if(void 0===e.group)return a;const r=`${D}-g${l}`;/* @__PURE__ */
3
3
  return c("li",{role:"presentation",className:"es-fsel-group",children:[
4
4
  /* @__PURE__ */c("div",{id:r,role:"presentation",className:"es-fsel-group-head",children:[e.group,N?/* @__PURE__ */u("span",{className:"es-fsel-group-count",children:e.items.length}):null]}),
5
- /* @__PURE__ */u("ul",{role:"group","aria-labelledby":r,className:"es-fsel-group-list",children:a})]},`g${l}`)}),re=Q.has(O)?`${D}-${O}`:void 0,ne=/* @__PURE__ */c("ul",{ref:V,id:D,role:"listbox",tabIndex:-1,className:"es-fsel-list","aria-multiselectable":I||void 0,"aria-activedescendant":g?void 0:re,"aria-labelledby":b??(v?void 0:$),"aria-label":b?void 0:v,onKeyDown:e=>{if(!_(e))switch(e.key){case"Home":return e.preventDefault(),void(R.length&&j(R[0]));case"End":return e.preventDefault(),void(R.length&&j(R[R.length-1]));case" ":return e.preventDefault(),void X(O);default:if(1===e.key.length&&/\S/.test(e.key)){const l=e.key.toLowerCase(),a=h.length;for(let e=1;e<=a;e++){const r=(O+e)%a;if(!h[r]?.disabled&&h[r]?.label.toLowerCase().startsWith(l))return void j(r)}}}},children:[ae,g&&0===G.length?/* @__PURE__ */u("li",{role:"presentation",className:"es-fsel-empty",children:k.noMatches??a.noMatches}):null]});let se,te;if(!0===e.multiple){const l=h.filter(H);te=0===l.length,se=e.renderValue?e.renderValue(l):te?f??k.choose:l.map(e=>e.label).join(", ")}else te=!W,se=e.renderValue?e.renderValue(W):W?W.label:f??k.choose;/* @__PURE__ */
6
- return c("div",{className:"es-fsel"+(w?" es-fsel--inline":""),ref:K,children:[
7
- /* @__PURE__ */c("button",{ref:S,id:$,type:"button",className:"es-fin es-fsel-button","aria-haspopup":"listbox","aria-expanded":A,"aria-controls":A?D:void 0,"aria-label":v,"aria-labelledby":b,disabled:m,onClick:()=>A?J(!1):q(),onKeyDown:e=>{"ArrowDown"!==e.key&&"ArrowUp"!==e.key||(e.preventDefault(),q())},children:[
5
+ /* @__PURE__ */u("ul",{role:"group","aria-labelledby":r,className:"es-fsel-group-list",children:a})]},`g${l}`)}),re=B.has(E)?`${D}-${E}`:void 0,ne=/* @__PURE__ */c("ul",{ref:K,id:D,role:"listbox",tabIndex:-1,className:"es-fsel-list","aria-multiselectable":I||void 0,"aria-activedescendant":g?void 0:re,"aria-labelledby":b??(v?void 0:$),"aria-label":b?void 0:v,onKeyDown:e=>{if(!_(e))switch(e.key){case"Home":return e.preventDefault(),void(G.length&&j(G[0]));case"End":return e.preventDefault(),void(G.length&&j(G[G.length-1]));case" ":return e.preventDefault(),void X(E);default:if(1===e.key.length&&/\S/.test(e.key)){const l=e.key.toLowerCase(),a=h.length;for(let e=1;e<=a;e++){const r=(E+e)%a;if(!h[r]?.disabled&&h[r]?.label.toLowerCase().startsWith(l))return void j(r)}}}},children:[ae,g&&0===z.length?/* @__PURE__ */u("li",{role:"presentation",className:"es-fsel-empty",children:k.noMatches??a.noMatches}):null]});let se,te;if(!0===e.multiple){const l=h.filter(R);te=0===l.length,se=e.renderValue?e.renderValue(l):te?f??k.choose:l.map(e=>e.label).join(", ")}else te=!W,se=e.renderValue?e.renderValue(W):W?W.label:f??k.choose;/* @__PURE__ */
6
+ return c("div",{className:"es-fsel"+(w?" es-fsel--inline":""),ref:S,children:[
7
+ /* @__PURE__ */c("button",{ref:V,id:$,type:"button",className:"es-fin es-fsel-button","aria-haspopup":"listbox","aria-expanded":O,"aria-controls":O?D:void 0,"aria-label":v,"aria-labelledby":b,disabled:m,onClick:()=>O?Q(!1):q(),onKeyDown:e=>{"ArrowDown"!==e.key&&"ArrowUp"!==e.key||(e.preventDefault(),q())},children:[
8
8
  /* @__PURE__ */u("span",{className:te?"es-fsel-value is-empty":"es-fsel-value",children:se}),
9
- /* @__PURE__ */u("span",{className:"es-fsel-chev","aria-hidden":"true"})]}),A?g?/* @__PURE__ */c("div",{className:"es-fsel-pop",children:[
10
- /* @__PURE__ */u("input",{ref:F,type:"text",className:"es-fin es-fsel-search",value:E,placeholder:U,"aria-label":U,"aria-autocomplete":"list","aria-controls":D,"aria-activedescendant":re,onChange:e=>M(e.target.value),onKeyDown:e=>{_(e)}}),ne]}):ne:null]})}function f({id:a,label:r,value:s,onChange:t,min:i,max:o,step:d=1,shiftStep:p,styleValue:h,unit:f,sliderMin:m,sliderMax:v,auto:b,readOnly:g=!1}){const y=n(),N=a??y,{inputProps:w,set:x,isStyle:k}=e({value:s,onChange:t,min:i,max:o,step:d,shiftStep:p,styleValue:h,readOnly:g}),D="number"==typeof s&&Number.isFinite(s)?s:void 0,C=void 0!==b&&void 0===D,$=Number((m-d).toFixed(6)),A=void 0!==b?$:m,L=D??(void 0!==b?$:h??m);/* @__PURE__ */
9
+ /* @__PURE__ */u("span",{className:"es-fsel-chev","aria-hidden":"true"})]}),O?g?/* @__PURE__ */c("div",{className:"es-fsel-pop",children:[
10
+ /* @__PURE__ */u("input",{ref:F,type:"text",className:"es-fin es-fsel-search",value:L,placeholder:P,"aria-label":P,"aria-autocomplete":"list","aria-controls":D,"aria-activedescendant":re,onChange:e=>M(e.target.value),onKeyDown:e=>{_(e)}}),ne]}):ne:null]})}function f({id:a,label:r,value:s,onChange:t,min:i,max:o,step:d=1,shiftStep:p,styleValue:h,unit:f,sliderMin:m,sliderMax:v,auto:b,readOnly:g=!1}){const y=n(),N=a??y,{inputProps:w,set:x,isStyle:k}=e({value:s,onChange:t,min:i,max:o,step:d,shiftStep:p,styleValue:h,readOnly:g}),D="number"==typeof s&&Number.isFinite(s)?s:void 0,C=void 0!==b&&void 0===D,$=Number((m-d).toFixed(6)),O=void 0!==b?$:m,A=D??(void 0!==b?$:h??m);/* @__PURE__ */
11
11
  return c("div",{className:"es-fslider"+(k||C?" is-style":""),children:[
12
12
  /* @__PURE__ */c("div",{className:"es-fslider-top",children:[
13
13
  /* @__PURE__ */u("label",{className:"es-fslider-name",htmlFor:N,children:r}),
14
14
  /* @__PURE__ */c("span",{className:"es-fslider-read",children:[
15
15
  /* @__PURE__ */u("input",{id:N,type:"text",inputMode:"decimal",className:"es-fslider-value",...w,placeholder:b??w.placeholder,onKeyDown:e=>{if(C&&("ArrowUp"===e.key||"ArrowDown"===e.key))return e.preventDefault(),void("ArrowUp"===e.key&&x(l(m,i,o)));w.onKeyDown(e)}}),f&&!C?/* @__PURE__ */u("span",{className:"es-fslider-unit",children:f}):null]})]}),
16
- /* @__PURE__ */u("input",{type:"range",className:"es-fslider-range",min:A,max:v,step:d,value:l(L,A,v),disabled:g,"aria-label":r,"aria-valuetext":C?b:void 0,onChange:e=>{const l=Number(e.target.value);x(void 0!==b&&l<m?void 0:l)}})]})}export{h as FieldSelect,f as FieldSlider,p as optionFor};
16
+ /* @__PURE__ */u("input",{type:"range",className:"es-fslider-range",min:O,max:v,step:d,value:l(A,O,v),disabled:g,"aria-label":r,"aria-valuetext":C?b:void 0,onChange:e=>{const l=Number(e.target.value);x(void 0!==b&&l<m?void 0:l)}})]})}export{h as FieldSelect,f as FieldSlider,p as optionFor};
@@ -1,6 +1,6 @@
1
- import{DEFAULT_FIELDS_WORDS as e}from"./chunk-LA54QLP5.js";import{useWords as n}from"./chunk-MFIRYGHW.js";import{useState as r,useRef as t,useEffect as i}from"react";import{jsxs as l,jsx as u}from"react/jsx-runtime";function a(e,n,r){let t=e;return"number"==typeof n&&t<n&&(t=n),"number"==typeof r&&t>r&&(t=r),t}function o(e){const n=e.trim().replace(",",".");if(""===n||"-"===n||"."===n||"-."===n)return null;const r=Number(n);return Number.isFinite(r)?r:null}function s(e){const n=String(e),r=n.indexOf(".");return r<0?0:n.length-r-1}function c({value:e,onChange:n,min:l,max:u,step:c=1,shiftStep:d,styleValue:p,readOnly:m=!1}){const f="number"==typeof e&&Number.isFinite(e)?e:void 0,v=void 0===f?"":String(f),[y,h]=r(v),b=t(f),g=t(f);i(()=>{b.current=f,h(e=>o(e)===(f??null)?e:v)},[f,v]);const w=e=>{m||(b.current=e,n(e))},x=e=>{m||(h(void 0===e?"":String(e)),e!==b.current&&w(e))},S=(e,n=!1)=>{if(m)return;const r=a(function(e,n){const r=Math.max(s(e),s(n));return Number((e+n).toFixed(r))}(b.current??p??l??0,e*(n?d??10*c:c)),l,u);h(String(r)),w(r)},L=()=>{const e=o(y);null!==e?x(a(e,l,u)):h(void 0===b.current?"":String(b.current))};return{inputProps:{value:y,readOnly:m,placeholder:void 0===p?void 0:String(p),onFocus:()=>{g.current=b.current},onChange:e=>{const n=e.target.value;if(h(n),""===n.trim())w(void 0);else{const e=o(n);null!==e&&w(e)}},onBlur:L,onKeyDown:e=>{"ArrowUp"===e.key||"ArrowDown"===e.key?(e.preventDefault(),S("ArrowUp"===e.key?1:-1,e.shiftKey)):"Enter"===e.key?(e.preventDefault(),L(),g.current=b.current):"Escape"===e.key&&(e.preventDefault(),x(g.current))}},nudge:S,set:x,isStyle:void 0!==p&&""===y.trim()}}function d({dir:e,label:n,disabled:r,nudge:l}){const a=t(null),o=t(l);o.current=l;const s=t({}),c=()=>{const e=s.current;void 0!==e.wait&&clearTimeout(e.wait),void 0!==e.every&&clearInterval(e.every),e.off?.(),s.current={}};i(()=>{const e=a.current;return e?.addEventListener("pointerleave",c),e?.addEventListener("pointercancel",c),()=>{e?.removeEventListener("pointerleave",c),e?.removeEventListener("pointercancel",c),c()}},[]);/* @__PURE__ */
2
- return u("button",{ref:a,type:"button",tabIndex:-1,className:"es-fnum-arrow es-fnum-arrow--"+(e>0?"up":"down"),"aria-label":n,disabled:r,onPointerDown:n=>{if(0!==n.button||r)return;n.preventDefault(),c();const t=n.shiftKey;o.current(e,t);const i=n.currentTarget.ownerDocument;i.addEventListener("pointerup",c),s.current={off:()=>i.removeEventListener("pointerup",c),wait:setTimeout(()=>{s.current.every=setInterval(()=>o.current(e,t),60)},350)}},onClick:n=>{0===n.detail&&o.current(e,n.shiftKey)},children:/* @__PURE__ */u("svg",{viewBox:"0 0 10 10","aria-hidden":"true",focusable:"false",children:/* @__PURE__ */u("path",{d:e>0?"M2.5 6.25 5 3.75l2.5 2.5":"M2.5 3.75 5 6.25l2.5-2.5"})})})}function p({id:r,value:t,onChange:i,min:a,max:o,step:s=1,shiftStep:p,styleValue:m,icon:f,unit:v,steppers:y=!1,placeholder:h,readOnly:b=!1,ariaLabel:g,ariaLabelledBy:w,title:x}){const S=n("fields",e),{inputProps:L,nudge:N,isStyle:k}=c({value:t,onChange:i,min:a,max:o,step:s,shiftStep:p,styleValue:m,readOnly:b});/* @__PURE__ */
3
- return l("div",{className:`es-fnum${y?" es-fnum--arrows":""}${k?" is-style":""}${b?" is-readonly":""}`,title:x,children:[f?/* @__PURE__ */u("span",{className:"es-fnum-icon","aria-hidden":"true",children:f}):null,
4
- /* @__PURE__ */u("input",{id:r,type:"text",inputMode:"decimal",className:"es-fnum-box","aria-label":g,"aria-labelledby":w,...L,placeholder:L.placeholder??h}),v?/* @__PURE__ */u("span",{className:"es-fnum-unit",children:v}):null,y?/* @__PURE__ */l("span",{className:"es-fnum-arrows",children:[
5
- /* @__PURE__ */u(d,{dir:1,label:S.more,disabled:b,nudge:N}),
6
- /* @__PURE__ */u(d,{dir:-1,label:S.less,disabled:b,nudge:N})]}):null]})}export{p as FieldNumber,a as clampNumber,o as parseTyped,c as useNumberEntry};
1
+ import{DEFAULT_FIELDS_WORDS as e}from"./chunk-FPOKPNO4.js";import{useWords as n}from"./chunk-MFIRYGHW.js";import{useState as r,useRef as t,useEffect as i}from"react";import{jsxs as l,jsx as u}from"react/jsx-runtime";function a(e,n,r){let t=e;return"number"==typeof n&&t<n&&(t=n),"number"==typeof r&&t>r&&(t=r),t}function o(e){const n=e.trim().replace(",",".");if(""===n||"-"===n||"."===n||"-."===n)return null;const r=Number(n);return Number.isFinite(r)?r:null}function s(e){const n=String(e),r=n.indexOf(".");return r<0?0:n.length-r-1}function c({value:e,onChange:n,min:l,max:u,step:c=1,shiftStep:d,styleValue:p,readOnly:m=!1}){const f="number"==typeof e&&Number.isFinite(e)?e:void 0,v=void 0===f?"":String(f),[y,h]=r(v),b=t(f),g=t(f);i(()=>{b.current=f,h(e=>o(e)===(f??null)?e:v)},[f,v]);const w=e=>{m||(b.current=e,n(e))},x=e=>{m||(h(void 0===e?"":String(e)),e!==b.current&&w(e))},N=(e,n=!1)=>{if(m)return;const r=a(function(e,n){const r=Math.max(s(e),s(n));return Number((e+n).toFixed(r))}(b.current??p??l??0,e*(n?d??10*c:c)),l,u);h(String(r)),w(r)},S=()=>{const e=o(y);null!==e?x(a(e,l,u)):h(void 0===b.current?"":String(b.current))};return{inputProps:{value:y,readOnly:m,placeholder:void 0===p?void 0:String(p),onFocus:()=>{g.current=b.current},onChange:e=>{const n=e.target.value;if(h(n),""===n.trim())w(void 0);else{const e=o(n);null!==e&&w(e)}},onBlur:S,onKeyDown:e=>{"ArrowUp"===e.key||"ArrowDown"===e.key?(e.preventDefault(),N("ArrowUp"===e.key?1:-1,e.shiftKey)):"Enter"===e.key?(e.preventDefault(),S(),g.current=b.current):"Escape"===e.key&&(e.preventDefault(),x(g.current))}},nudge:N,set:x,isStyle:void 0!==p&&""===y.trim()}}function d({dir:e,label:n,disabled:r,nudge:l}){const a=t(null),o=t(l);o.current=l;const s=t({}),c=()=>{const e=s.current;void 0!==e.wait&&clearTimeout(e.wait),void 0!==e.every&&clearInterval(e.every),e.off?.(),s.current={}};i(()=>{const e=a.current;return e?.addEventListener("pointerleave",c),e?.addEventListener("pointercancel",c),()=>{e?.removeEventListener("pointerleave",c),e?.removeEventListener("pointercancel",c),c()}},[]);/* @__PURE__ */
2
+ return u("button",{ref:a,type:"button",tabIndex:-1,className:"es-fnum-arrow es-fnum-arrow--"+(e>0?"up":"down"),"aria-label":n,disabled:r,onPointerDown:n=>{if(0!==n.button||r)return;n.preventDefault(),c();const t=n.shiftKey;o.current(e,t);const i=n.currentTarget.ownerDocument;i.addEventListener("pointerup",c),s.current={off:()=>i.removeEventListener("pointerup",c),wait:setTimeout(()=>{s.current.every=setInterval(()=>o.current(e,t),60)},350)}},onClick:n=>{0===n.detail&&o.current(e,n.shiftKey)},children:/* @__PURE__ */u("svg",{viewBox:"0 0 10 10","aria-hidden":"true",focusable:"false",children:/* @__PURE__ */u("path",{d:e>0?"M2.5 6.25 5 3.75l2.5 2.5":"M2.5 3.75 5 6.25l2.5-2.5"})})})}function p({id:r,value:t,onChange:i,min:a,max:o,step:s=1,shiftStep:p,styleValue:m,icon:f,unit:v,steppers:y=!1,placeholder:h,readOnly:b=!1,ariaLabel:g,ariaLabelledBy:w,title:x}){const N=n("fields",e),{inputProps:S,nudge:k,isStyle:D}=c({value:t,onChange:i,min:a,max:o,step:s,shiftStep:p,styleValue:m,readOnly:b});/* @__PURE__ */
3
+ return l("div",{className:`es-fnum${y?" es-fnum--arrows":""}${D?" is-style":""}${b?" is-readonly":""}`,title:x,children:[f?/* @__PURE__ */u("span",{className:"es-fnum-icon","aria-hidden":"true",children:f}):null,
4
+ /* @__PURE__ */u("input",{id:r,type:"text",inputMode:"decimal",className:"es-fnum-box","aria-label":g,"aria-labelledby":w,...S,placeholder:S.placeholder??h}),v?/* @__PURE__ */u("span",{className:"es-fnum-unit",children:v}):null,y?/* @__PURE__ */l("span",{className:"es-fnum-arrows",children:[
5
+ /* @__PURE__ */u(d,{dir:1,label:N.more,disabled:b,nudge:k}),
6
+ /* @__PURE__ */u(d,{dir:-1,label:N.less,disabled:b,nudge:k})]}):null]})}export{p as FieldNumber,a as clampNumber,o as parseTyped,c as useNumberEntry};
@@ -0,0 +1 @@
1
+ var e={less:"Less",more:"More",choose:"Choose…",search:"Search…",noMatches:"No matches",list:{item:"item",itemName:({noun:e,n:t})=>{return`${o=e,o?o[0].toUpperCase()+o.slice(1):o} ${t}`;var o},position:({n:e,total:t})=>`${e} of ${t}`,duplicate:"Duplicate",duplicateItem:({noun:e})=>`Duplicate ${e}`,deleteItem:({noun:e})=>`Delete ${e}`,add:({noun:e})=>`+ Add ${e}`,addHere:({noun:e})=>`Add ${e} here`,moveUp:"Move up",moveDown:"Move down",delete:"Delete",locked:"This one cannot be removed",moved:({n:e,total:t})=>`Moved to ${e} of ${t}`},link:{linkType:"Link type",address:"Link address",addressPlaceholder:"Link (e.g. /wheels or https://…)",unsafe:"Use a web address (https://…), a page on this site (/…), mailto: or tel:.",unavailable:({value:e})=>`${e} (unavailable)`,filter:"Filter",noFilter:"No filter (all products)",value:"Value",filterHint:"Filters come from Product Types. Only values in this site's catalogue are listed."}};export{e as DEFAULT_FIELDS_WORDS};
@@ -0,0 +1,11 @@
1
+ import{DEFAULT_PICK_WORDS as e}from"./chunk-ZAOM6PFH.js";import{useId as t,useState as n,useRef as r,useLayoutEffect as a,useEffect as l}from"react";import{jsxs as o,jsx as i}from"react/jsx-runtime";var s=/^(?:[0-9a-f]{3}|[0-9a-f]{6})$/i,c=7;function u(e){const t=e.trim().replace(/^#/,"");if(!s.test(t))return null;return`#${(3===t.length?[...t].map(e=>e+e).join(""):t).toLowerCase()}`}var d=e=>e.toUpperCase(),h=(e,t,n)=>Math.min(n,Math.max(t,e));function p(e){const t=u(e)??"#000000",n=parseInt(t.slice(1,3),16)/255,r=parseInt(t.slice(3,5),16)/255,a=parseInt(t.slice(5,7),16)/255,l=Math.max(n,r,a),o=l-Math.min(n,r,a);let i=0;return 0!==o&&(i=l===n?(r-a)/o%6*60:l===r?60*((a-n)/o+2):60*((n-r)/o+4)),{h:(i+360)%360,s:0===l?0:o/l,v:l}}function m({h:e,s:t,v:n}){const r=(e%360+360)%360,a=h(t,0,1),l=h(n,0,1),o=l*a,i=o*(1-Math.abs(r/60%2-1)),s=l-o,[c,u,d]=r<60?[o,i,0]:r<120?[i,o,0]:r<180?[0,o,i]:r<240?[0,i,o]:r<300?[i,0,o]:[o,0,i],p=e=>Math.round(255*(e+s)).toString(16).padStart(2,"0");return`#${p(c)}${p(u)}${p(d)}`}function v(e,t,n){return{s:n.width>0?h((e-n.left)/n.width,0,1):0,v:n.height>0?1-h((t-n.top)/n.height,0,1):0}}function g(e,t){return t.width>0?360*h((e-t.left)/t.width,0,1):0}function f(e){if(/^(data|blob):/i.test(e))return"";const t=(e.split(/[?#]/)[0]??"").split("/").filter(Boolean).pop()??"";try{return decodeURIComponent(t)}catch{return t}}function w({value:s,onChange:c,label:h,theme:p,caption:m,inherited:v,after:g,id:f,readOnly:w,words:b=e.colour}){const x=t(),[C,M]=n(!1),E=r(null),N=r(null),D=r(null),L=()=>{const e=E.current?.parentElement;return e?.classList.contains("es-field-head")?e.querySelector(":scope > .es-field-name .es-field-label"):e?.classList.contains("es-pick-line")?e.querySelector(":scope > .es-pick-line-label"):null},R=()=>D.current?.querySelector(".es-pick-hexwrap > *")??null,B=e=>e.scrollWidth>e.clientWidth+1,O=e=>{e&&(B(e)?e.dataset.clipped="true":delete e.dataset.clipped)},P=r(()=>{});P.current=()=>{O(L()),T||O(R())};const[A,S]=n(null),[T,I]=n(null);a(()=>P.current()),l(()=>{const e=E.current?.parentElement,t=e?.ownerDocument.defaultView;if(!e||!t?.ResizeObserver)return;const n=new t.ResizeObserver(()=>P.current());return n.observe(e),()=>n.disconnect()},[]),l(()=>{const e=E.current?.parentElement;if(!e)return;const t=e=>{const t=e;if(!t)return null;const n=L(),r=R();return n&&(t===n||n.contains(t))?n:r&&t===r?r:null},n=e=>{const n=t(e.target),r=$();if(!n||!r||n.ownerDocument.activeElement===n||!B(n))return;const a=n.getBoundingClientRect(),l=r.getBoundingClientRect(),o="INPUT"===n.tagName?n.value:n.textContent??"";S({text:o,left:a.left-l.left,top:a.top-l.top})},r=e=>{t(e.target)&&S(null)};return e.addEventListener("pointerover",n),e.addEventListener("pointerout",r),()=>{e.removeEventListener("pointerover",n),e.removeEventListener("pointerout",r)}},[]);const $=()=>{const e=E.current?.parentElement;return e&&(e.classList.contains("es-field-head")||e.classList.contains("es-pick-line"))?e:D.current};l(()=>{if(!C)return;const e=E.current?.ownerDocument;if(!e)return;const t=e=>{E.current&&!E.current.contains(e.target)&&M(!1)};return e.addEventListener("click",t,!0),()=>e.removeEventListener("click",t,!0)},[C]);const U=s?null:u(v??""),K=void 0===m||s&&u(m)===u(s)?null:m,q=K??(s?d(s):U?d(U):b.notSet),j=s||U;/* @__PURE__ */
2
+ return o("div",{ref:E,className:"es-pick-colour",children:[
3
+ /* @__PURE__ */o("div",{ref:D,className:"es-pick-colour-row","data-editing":T??void 0,onFocus:e=>{const t=e.target,n=$();if(!n||!t.classList.contains("es-pick-hex"))return;S(null),t.style.setProperty("--es-pick-edit-room",n.getBoundingClientRect().right-t.getBoundingClientRect().left+"px");const r=t.parentElement?.nextElementSibling,a=!!r&&t.getBoundingClientRect().right>r.getBoundingClientRect().left-2;I(a?"over":"room")},onBlur:e=>{const t=e.target;t.classList.contains("es-pick-hex")&&(t.style.removeProperty("--es-pick-edit-room"),I(null))},children:[
4
+ /* @__PURE__ */i("button",{ref:N,id:f,type:"button",className:s?"es-pick-swatch":U?"es-pick-swatch is-inherited":"es-pick-swatch is-unset",style:j?{background:j}:void 0,"aria-label":b.swatch({label:h,shown:q}),"aria-expanded":C,"aria-controls":C?x:void 0,disabled:w,onClick:()=>M(e=>!e)}),
5
+ /* @__PURE__ */i("span",{className:"es-pick-hexwrap",children:null===K?/* @__PURE__ */i(y,{value:s,follows:U?d(U):void 0,onChange:e=>{w||e===s||c(e)},name:b.hex({label:h}),readOnly:w}):/* @__PURE__ */i("span",{className:"es-pick-caption",children:K})}),g,A?/* @__PURE__ */i("span",{className:"es-pick-tag","aria-hidden":"true",style:{left:A.left,top:A.top},children:A.text}):null]}),C?/* @__PURE__ */i(k,{id:x,value:s,onChange:c,label:h,theme:p,inherited:v,readOnly:w,words:b,onClose:()=>{M(!1),N.current?.focus()}}):null]})}function k({value:t,onChange:a,label:s,theme:c,onClose:h,id:f,inherited:w,readOnly:k,words:b=e.colour,swatch:x=!1,dragWrites:C="live"}){const M=u(w??""),[E,N]=n(()=>p(t||M||"#000000")),D=r(t);l(()=>{t!==D.current&&(D.current=t,t?N(p(t)):M&&N(p(M)))},[t]);const L=e=>{k||e===t||(D.current=e,a(e))},R=e=>{N(p(e)),L(e)},B=e=>{N(e),L(m(e))},[O,P]=n(!1),A=r(E);A.current=E;const S=e=>({onPointerDown:t=>{if(k)return;t.currentTarget.setPointerCapture?.(t.pointerId);const n=e(t,A.current);"end"===C?(P(!0),N(n)):B(n)},onPointerMove:t=>{if(!(1&t.buttons))return;const n=e(t,A.current);"end"===C?N(n):B(n)},onPointerUp:t=>{"end"===C&&O&&(P(!1),B(e(t,A.current)))}}),T=S((e,t)=>({...t,...v(e.clientX,e.clientY,e.currentTarget.getBoundingClientRect())})),I=S((e,t)=>({...t,h:g(e.clientX,e.currentTarget.getBoundingClientRect())})),$=O?m(E):t,U=!t&&M?d(M):void 0,K=e=>`${Math.round(100*e)}%`;/* @__PURE__ */
6
+ return o("div",{id:f,role:"dialog","aria-label":b.dialog({label:s}),className:"es-pick-window",onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),h?.())},children:[c&&c.length>0?/* @__PURE__ */i("div",{role:"group","aria-label":b.theme,className:"es-pick-theme",children:c.map(e=>/* @__PURE__ */i("button",{type:"button",className:"es-pick-theme-swatch",style:{background:e.value},title:b.themeSwatchTitle({name:e.name,hex:d(e.value)}),"aria-label":b.themeSwatch({name:e.name,hex:d(e.value)}),"aria-pressed":u(e.value)===t,onClick:()=>R(u(e.value)??e.value)},`${e.name}:${e.value}`))}):null,
7
+ /* @__PURE__ */i("div",{className:"es-pick-sv",role:"slider",tabIndex:0,"aria-label":b.square,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(100*E.v),"aria-valuetext":b.squareValue({saturation:K(E.s),brightness:K(E.v)}),style:{backgroundColor:m({h:E.h,s:1,v:1})},onKeyDown:e=>{const t=e.shiftKey?.1:.01,n={ArrowLeft:[-t,0],ArrowRight:[t,0],ArrowDown:[0,-t],ArrowUp:[0,t]}[e.key];n&&(e.preventDefault(),B({...E,s:Math.min(1,Math.max(0,E.s+n[0])),v:Math.min(1,Math.max(0,E.v+n[1]))}))},...T,children:/* @__PURE__ */i("span",{className:"es-pick-sv-thumb",style:{left:K(E.s),top:K(1-E.v)}})}),
8
+ /* @__PURE__ */i("div",{className:"es-pick-hue",role:"slider",tabIndex:0,"aria-label":b.hue,"aria-valuemin":0,"aria-valuemax":359,"aria-valuenow":Math.round(E.h),onKeyDown:e=>{const t=e.shiftKey?10:1,n="ArrowLeft"===e.key||"ArrowDown"===e.key?-t:"ArrowRight"===e.key||"ArrowUp"===e.key?t:null,r="Home"===e.key?0:"End"===e.key?359:null===n?null:Math.min(359,Math.max(0,E.h+n));null!==r&&(e.preventDefault(),B({...E,h:r}))},...I,children:/* @__PURE__ */i("span",{className:"es-pick-hue-thumb",style:{left:E.h/360*100+"%"}})}),x?/* @__PURE__ */o("div",{className:"es-pick-hex-row",children:[
9
+ /* @__PURE__ */i("span",{className:"es-pick-hex-swatch","aria-hidden":"true",style:{background:$||m(E)}}),
10
+ /* @__PURE__ */i(y,{value:$,onChange:R,name:b.hex({label:s}),placeholder:U,readOnly:k})]}):/* @__PURE__ */i(y,{value:$,onChange:R,name:b.hex({label:s}),placeholder:U,readOnly:k})]})}function y({value:e,follows:t,onChange:a,name:l,placeholder:o,readOnly:s}){const[c,h]=n(null),p=r(!1);/* @__PURE__ */
11
+ return i("input",{type:"text",className:!e&&t?"es-pick-hex is-inherited":"es-pick-hex",value:c??(e?d(e):t??""),"aria-label":l,placeholder:o,maxLength:7,spellCheck:!1,autoComplete:"off",readOnly:s,onChange:t=>{h(t.target.value);const n=u(t.target.value);null!==n&&n!==e&&a(n)},onFocus:e=>e.currentTarget.select(),onMouseDown:e=>{p.current=e.currentTarget.ownerDocument.activeElement!==e.currentTarget},onMouseUp:e=>{p.current&&e.preventDefault(),p.current=!1},onKeyDown:e=>{"Enter"!==e.key&&"Escape"!==e.key||(e.preventDefault(),e.stopPropagation(),h(null),e.currentTarget.blur())},onBlur:()=>h(null)})}export{w as ColourPicker,k as ColourWindow,c as HEX_MAX_LENGTH,d as hexReadout,p as hexToHsv,m as hsvToHex,g as hueFromPoint,f as mediaName,v as svFromPoint,u as typedHex};
@@ -0,0 +1 @@
1
+ import{DEFAULT_TEXT_STYLES_WORDS as o}from"./chunk-M6F6LS3H.js";import{DEFAULT_STYLE_CLIPBOARD_WORDS as r}from"./chunk-6WY6ZXJG.js";import{DEFAULT_CANVAS_WORDS as t}from"./chunk-AELNNAFM.js";import{DEFAULT_TREE_WORDS as m}from"./chunk-3EDSDPIP.js";import{DEFAULT_PANEL_WORDS as n}from"./chunk-QTLAVDJE.js";import{DEFAULT_NODE_MENU_WORDS as c}from"./chunk-WK3AFPXY.js";import{DEFAULT_SAVE_WORDS as s}from"./chunk-H6DDIBQ4.js";import{DEFAULT_CHROME_WORDS as f,DEFAULT_NOTICE_WORDS as p}from"./chunk-ZJEBF4NB.js";import{DEFAULT_LOCK_WORDS as i}from"./chunk-RE4LP46F.js";import{DEFAULT_RAIL_WORDS as u}from"./chunk-2OAZYSWJ.js";import{DEFAULT_COPY_WORDS as e}from"./chunk-UH7IGZKF.js";import{DEFAULT_PICK_WORDS as k}from"./chunk-ZAOM6PFH.js";import{DEFAULT_FIELDS_WORDS as j}from"./chunk-FPOKPNO4.js";import{DEFAULT_DRAG_WORDS as h}from"./chunk-O2NLQBFX.js";var l={notice:p,lock:i,save:s,chrome:f,rail:u,tree:m,panel:n,fields:j,pick:k,drag:h,menu:c,styleClipboard:r,copy:e,canvas:t,textStyles:o},F=o=>"object"==typeof o&&null!==o;function a(o,r){const t={};for(const m of Object.keys(o)){const n=o[m],c=r[m];null==c?t[m]=n:F(n)?t[m]=F(c)?a(n,c):n:t[m]=typeof c==typeof n?c:n}return t}function y(o,r){return r?a(o,r):o}export{l as DEFAULT_EASEL_STRINGS,y as mergeEaselStrings};
@@ -0,0 +1,15 @@
1
+ import{useRef as e,useState as n,useLayoutEffect as t,useEffect as l}from"react";import{createPortal as r}from"react-dom";import{jsxs as i,Fragment as a,jsx as o}from"react/jsx-runtime";var c={menu:"es-editor es-menu",menuSub:"es-editor es-menu",item:"es-menu-item",itemDanger:"es-menu-item is-danger",divider:"es-menu-divider",header:"es-menu-header",icon:"es-menu-icon",shortcut:"es-menu-shortcut",label:"es-menu-label",labelSub:"es-menu-label es-menu-label-sub",chevron:"es-menu-chevron",tick:"es-menu-tick"};function u({x:u,y:s,items:d,onClose:m,maxHeight:h,skin:b,portalTo:y}){const p=e(null),g=e(null),[f,w]=n(null),[v,x]=n({x:u,y:s}),[N,k]=n({x:u,y:s});if(N.x===u&&N.y===s||(k({x:u,y:s}),x({x:u,y:s})),t(()=>{const e=p.current;if(!e)return;const{width:n,height:t}=e.getBoundingClientRect(),l=window.innerWidth,r=window.innerHeight;let i=s;s+t>r-8&&(i=s-t>=8?s-t:Math.max(8,r-t-8));let a=u;u+n>l-8&&(a=u-n>=8?u-n:Math.max(8,l-n-8)),a===v.x&&i===v.y||x({x:a,y:i})},[u,s,d,v.x,v.y]),l(()=>{const e=document.activeElement;return p.current?.querySelector('[role="menuitem"]')?.focus(),()=>e?.focus?.()},[]),l(()=>{const e=e=>{const n=e.target;g.current?.contains(n)||p.current&&!p.current.contains(n)&&m()},n=e=>{"Escape"===e.key&&m()},t=setTimeout(()=>{window.addEventListener("mousedown",e),window.addEventListener("contextmenu",e),window.addEventListener("keydown",n)},0);return()=>{clearTimeout(t),window.removeEventListener("mousedown",e),window.removeEventListener("contextmenu",e),window.removeEventListener("keydown",n)}},[m]),0===d.length)return null;const C=b??c,E=e=>e.danger?C.itemDanger:C.item,S=({on:e})=>/* @__PURE__ */o("span",{className:C.tick,"aria-hidden":"true",children:e?"✓":""}),L=({of:e})=>null==e.icon?null:/* @__PURE__ */o("span",{className:C.icon,"aria-hidden":"true",children:e.icon}),T=({of:e})=>null==e.shortcut?null:/* @__PURE__ */o("span",{className:C.shortcut,"aria-hidden":"true",children:e.shortcut}),B=e=>null!=e.icon||null!=e.shortcut,M=(e,n,t)=>{if(!e.children?.length)return void w(null);const l=t.getBoundingClientRect(),r=p.current,i=r?parseFloat(getComputedStyle(r).minWidth):NaN,a=Number.isFinite(i)&&i>0?i:r?.getBoundingClientRect().width??0,o=l.right+a>window.innerWidth-8?l.left-a:l.right;w({i:n,x:Math.max(8,o),y:l.top})},F=f?d[f.i]:null,H=e=>({...C.surface,...e});return r(
2
+ /* @__PURE__ */i(a,{children:[
3
+ /* @__PURE__ */o("div",{ref:p,"data-es-menu":"",role:"menu","aria-label":d.find(e=>e.header)?.label,className:C.menu,style:H({left:v.x,top:v.y,maxHeight:h||void 0}),children:d.map((e,n)=>"—"===e.label?
4
+ /* @__PURE__ */o("div",{role:"separator",className:C.divider},n):e.header?/* @__PURE__ */o("div",{className:C.header,children:e.label},n):e.children?.length?/* @__PURE__ */i("button",{type:"button",role:"menuitem","aria-haspopup":"menu","aria-expanded":f?.i===n,onMouseEnter:t=>M(e,n,t.currentTarget),onFocus:t=>M(e,n,t.currentTarget),onClick:t=>M(e,n,t.currentTarget),className:E(e),style:C.itemStyle,children:[
5
+ /* @__PURE__ */o(L,{of:e}),
6
+ /* @__PURE__ */o("span",{className:C.label,children:e.label}),
7
+ /* @__PURE__ */o(T,{of:e}),
8
+ /* @__PURE__ */o("span",{"aria-hidden":"true",className:C.chevron,children:"›"})]},n):/* @__PURE__ */o("button",{type:"button",role:"menuitem",onMouseEnter:()=>w(null),onClick:()=>{e.onClick(),m()},className:E(e),style:C.itemStyle,children:B(e)?/* @__PURE__ */i(a,{children:[
9
+ /* @__PURE__ */o(L,{of:e}),
10
+ /* @__PURE__ */o("span",{className:C.label,children:e.label}),
11
+ /* @__PURE__ */o(T,{of:e})]}):e.label},n))}),F?.children?.length&&f?/* @__PURE__ */o("div",{ref:g,"data-es-menu":"",role:"menu","aria-label":F.label,className:C.menuSub??C.menu,style:H({left:f.x,top:f.y}),children:F.children.map((e,n)=>/* @__PURE__ */i("button",{type:"button",role:"menuitemradio","aria-checked":Boolean(e.checked),onClick:()=>{e.onClick(),m()},className:E(e),style:C.itemStyle,children:[
12
+ /* @__PURE__ */o(S,{on:Boolean(e.checked)}),
13
+ /* @__PURE__ */o(L,{of:e}),
14
+ /* @__PURE__ */o("span",{className:C.labelSub??C.label,children:e.label}),
15
+ /* @__PURE__ */o(T,{of:e})]},n))}):null]}),y??document.body)}export{c as ES_MENU_SKIN,u as EaselContextMenu};