@yoopta/ui 6.0.0-beta.14 → 6.0.0-beta.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/element-options/context/element-options-context.d.ts +1 -1
- package/dist/element-options.js +5 -18
- package/dist/floating-toolbar/floating-toolbar.d.ts.map +1 -1
- package/dist/floating-toolbar.js +1 -1
- package/dist/highlight-color-picker/highlight-color-picker.d.ts +1 -0
- package/dist/highlight-color-picker/highlight-color-picker.d.ts.map +1 -1
- package/dist/highlight-color-picker/index.d.ts +0 -1
- package/dist/highlight-color-picker/index.d.ts.map +1 -1
- package/dist/highlight-color-picker.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -4
- package/dist/action-menu-list.js.map +0 -1
- package/dist/block-dnd.js.map +0 -1
- package/dist/block-options.js.map +0 -1
- package/dist/chunks/_tslib-8f8de673.js +0 -36
- package/dist/chunks/_tslib-8f8de673.js.map +0 -1
- package/dist/chunks/floating-ui.react-727e4287.js +0 -5
- package/dist/chunks/floating-ui.react-d2303b03.js +0 -4506
- package/dist/chunks/floating-ui.react-d2303b03.js.map +0 -1
- package/dist/chunks/floating-ui.react-feaab622.js +0 -4506
- package/dist/chunks/floating-ui.react-feaab622.js.map +0 -1
- package/dist/chunks/highlight-color-picker-027fa4b4.js +0 -93
- package/dist/chunks/highlight-color-picker-027fa4b4.js.map +0 -1
- package/dist/chunks/highlight-color-picker-a1a292a9.js +0 -1
- package/dist/chunks/highlight-color-picker-a979e7a3.js +0 -93
- package/dist/chunks/highlight-color-picker-a979e7a3.js.map +0 -1
- package/dist/chunks/highlight-color-picker-ce0b19ac.js +0 -1
- package/dist/chunks/index-bfd2e7c4.js +0 -6
- package/dist/chunks/index-bfd2e7c4.js.map +0 -1
- package/dist/chunks/style-inject.es-746bb8ed.js +0 -29
- package/dist/chunks/style-inject.es-746bb8ed.js.map +0 -1
- package/dist/chunks/throttle-278836f4.js +0 -45
- package/dist/chunks/throttle-278836f4.js.map +0 -1
- package/dist/element-options.js.map +0 -1
- package/dist/floating-block-actions.js.map +0 -1
- package/dist/floating-toolbar.js.map +0 -1
- package/dist/highlight-color-picker.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/overlay.js.map +0 -1
- package/dist/portal.js.map +0 -1
- package/dist/selection-box.js.map +0 -1
- package/dist/slash-command-menu.js.map +0 -1
|
@@ -5,7 +5,7 @@ export declare function useElementOptionsContext(): ElementOptionsContextValue;
|
|
|
5
5
|
export declare function useElementOptions(): {
|
|
6
6
|
blockId: string;
|
|
7
7
|
element: import("@yoopta/editor").SlateElement<string, any>;
|
|
8
|
-
editor: import("@yoopta/editor").
|
|
8
|
+
editor: import("@yoopta/editor").YooEditor;
|
|
9
9
|
isOpen: boolean;
|
|
10
10
|
setIsOpen: (open: boolean) => void;
|
|
11
11
|
};
|
package/dist/element-options.js
CHANGED
|
@@ -1,27 +1,14 @@
|
|
|
1
|
-
import{s as e}from"./chunks/style-inject.es-e87a8d02.js";import{jsxs as t,Fragment as o,jsx as n}from"react/jsx-runtime";import{useState as a,useRef as r,useEffect as s,createContext as l,useContext as i,useMemo as d,forwardRef as c,createElement as p}from"react";import{u as m,o as u,f as g,s as b,a as f}from"./chunks/floating-ui.react-b048728e.js";import{Z as h}from"./chunks/index-e0185864.js";import{Portal as x}from"./portal.js";import{Elements as y,useYooptaEditor as k}from"@yoopta/editor";import"react-dom";e('[data-element-options-root]{position:relative}[data-element-options-trigger]{align-items:center;background:transparent;border:none;border-radius:4px;cursor:pointer;display:inline-flex;justify-content:center;padding:4px;transition:background-color .15s ease,opacity .15s ease}[data-element-options-trigger]:hover{background-color:rgba(0,0,0,.05)}[data-element-options-trigger]:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.yoo-element-options-trigger-icon{color:#6b7280;height:16px;width:16px}[data-element-options-content]{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);min-width:180px;padding:8px;z-index:50}[data-element-options-group]{display:flex;flex-direction:column;gap:6px}[data-element-options-group]+[data-element-options-group]{margin-top:8px}[data-element-options-label]{color:#6b7280;font-size:12px;font-weight:500}[data-element-options-separator]{background-color:#e5e7eb;height:1px;margin:8px 0}[data-element-options-select]{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;font-size:13px;justify-content:space-between;padding:6px 10px;transition:border-color .15s ease;width:100%}[data-element-options-select]:hover{border-color:#d1d5db}[data-element-options-select]:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}[data-element-options-select-value]{align-items:center;display:flex;gap:8px}[data-element-options-select-chevron]{color:#9ca3af;height:14px;transition:transform .15s ease;width:14px}[data-element-options-select][data-state=open] [data-element-options-select-chevron]{transform:rotate(180deg)}[data-element-options-select-content]{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);min-width:140px;padding:4px;z-index:51}[data-element-options-select-item]{align-items:center;background:transparent;border:none;border-radius:4px;cursor:pointer;display:flex;font-size:13px;justify-content:space-between;padding:6px 8px;text-align:left;transition:background-color .15s ease;width:100%}[data-element-options-select-item]:hover{background-color:#f3f4f6}[data-element-options-select-item][data-selected=true]{background-color:#eff6ff}[data-element-options-select-item-content]{align-items:center;display:flex;gap:8px}[data-element-options-select-check]{color:#3b82f6;height:14px;width:14px}[data-element-options-select-icon]{align-items:center;display:flex;height:16px;justify-content:center;width:16px}[data-element-options-select-color]{border:1px solid rgba(0,0,0,.1);border-radius:50%;display:inline-block;height:12px;width:12px}[data-element-options-color-picker]{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 10px;transition:border-color .15s ease;width:100%}[data-element-options-color-picker]:hover{border-color:#d1d5db}[data-element-options-color-preview]{border:1px solid rgba(0,0,0,.1);border-radius:4px;display:inline-block;height:20px;width:20px}[data-element-options-color-value]{color:#6b7280;font-family:monospace;font-size:12px}[data-element-options-color-picker-content]{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);padding:12px;z-index:51}[data-element-options-color-picker-content] .react-colorful{height:150px;width:180px}[data-element-options-color-presets]{border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px}[data-element-options-color-preset]{border:2px solid transparent;border-radius:4px;cursor:pointer;height:20px;padding:0;transition:border-color .15s ease,transform .15s ease;width:20px}[data-element-options-color-preset]:hover{transform:scale(1.1)}[data-element-options-color-preset][data-selected=true]{border-color:#3b82f6}[data-element-options-toggle]{align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;gap:8px;padding:0}[data-element-options-toggle-thumb]{background-color:#e5e7eb;border-radius:10px;height:20px;position:relative;transition:background-color .2s ease;width:36px}[data-element-options-toggle-thumb]:after{background-color:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.1);content:"";height:16px;left:2px;position:absolute;top:2px;transition:transform .2s ease;width:16px}[data-element-options-toggle][data-state=checked] [data-element-options-toggle-thumb]{background-color:#3b82f6}[data-element-options-toggle][data-state=checked] [data-element-options-toggle-thumb]:after{transform:translateX(16px)}[data-element-options-toggle-label]{color:#374151;font-size:13px}[data-element-options-slider]{align-items:center;display:flex;gap:10px}[data-element-options-slider-input]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(to right,#3b82f6 0,#3b82f6 var(--slider-percentage,0),#e5e7eb var(--slider-percentage,0),#e5e7eb 100%);border-radius:2px;cursor:pointer;flex:1;height:4px}[data-element-options-slider-input]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#fff;border:2px solid #3b82f6;border-radius:50%;cursor:pointer;height:14px;-webkit-transition:transform .15s ease;transition:transform .15s ease;width:14px}[data-element-options-slider-input]::-webkit-slider-thumb:hover{transform:scale(1.1)}[data-element-options-slider-value]{color:#6b7280;font-family:monospace;font-size:12px;min-width:32px;text-align:right}[data-element-options-input]{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;padding:6px 10px;transition:border-color .15s ease;width:100%}[data-element-options-input]:hover{border-color:#d1d5db}[data-element-options-input]:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1);outline:none}[data-element-options-input]::-moz-placeholder{color:#9ca3af}[data-element-options-input]::placeholder{color:#9ca3af}@media (prefers-color-scheme:dark){[data-element-options-color-picker-content],[data-element-options-content],[data-element-options-select-content]{background-color:#1f2937;border-color:#374151}[data-element-options-label]{color:#9ca3af}[data-element-options-separator]{background-color:#374151}[data-element-options-color-picker],[data-element-options-input],[data-element-options-select]{background-color:#1f2937;border-color:#374151;color:#f3f4f6}[data-element-options-color-picker]:hover,[data-element-options-input]:hover,[data-element-options-select]:hover{border-color:#4b5563}[data-element-options-select-item]:hover{background-color:#374151}[data-element-options-select-item][data-selected=true]{background-color:rgba(59,130,246,.2)}[data-element-options-color-presets]{border-top-color:#374151}[data-element-options-toggle-thumb]{background-color:#374151}[data-element-options-toggle-label]{color:#d1d5db}[data-element-options-slider-input]{background:linear-gradient(to right,#3b82f6 0,#3b82f6 var(--slider-percentage,0),#374151 var(--slider-percentage,0),#374151 100%)}.yoo-element-options-trigger-icon{color:#9ca3af}[data-element-options-trigger]:hover{background-color:hsla(0,0%,100%,.1)}}');const v=["#000000","#6B7280","#EF4444","#F59E0B","#22C55E","#3B82F6","#8B5CF6","#EC4899"],w=({value:e,onChange:l,presetColors:i=v,className:d,style:c})=>{const[p,y]=a(!1),k=r(null),{refs:w,floatingStyles:O}=m({open:p,placement:"bottom-start",middleware:[u(4),g({padding:8}),b({padding:8})],whileElementsMounted:f});s(()=>{k.current&&w.setReference(k.current)},[w]),s(()=>{if(!p)return;const e=e=>{const t=e.target;k.current&&!k.current.contains(t)&&w.floating.current&&!w.floating.current.contains(t)&&y(!1)},t=e=>{"Escape"===e.key&&y(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[p,w.floating]);const N=e=>{e.preventDefault()};return t(o,{children:[t("button",Object.assign({ref:k,type:"button",className:d,style:c,onClick:e=>{e.preventDefault(),e.stopPropagation(),y(!p)},onMouseDown:N,"data-element-options-color-picker":!0,"data-state":p?"open":"closed","aria-expanded":p},{children:[n("span",{"data-element-options-color-preview":!0,style:{backgroundColor:e}}),n("span",Object.assign({"data-element-options-color-value":!0},{children:e}))]})),p&&n(x,Object.assign({id:"element-options-color-picker-portal"},{children:t("div",Object.assign({ref:w.setFloating,style:O,"data-element-options-color-picker-content":!0,onMouseDown:N},{children:[n(h,{color:e,onChange:l}),i.length>0&&n("div",Object.assign({"data-element-options-color-presets":!0},{children:i.map(t=>n("button",{type:"button","data-element-options-color-preset":!0,"data-selected":t===e,style:{backgroundColor:t},onClick:()=>(e=>{l(e)})(t),onMouseDown:N,"aria-label":`Select color ${t}`},t))}))]}))}))]})};w.displayName="ElementOptions.ColorPicker";const O=l(null);function N(){const e=i(O);if(!e)throw new Error("useElementOptionsContext must be used within an ElementOptions.Root");return e}function j(){const{blockId:e,element:t,editor:o,isOpen:n,setIsOpen:a}=N();return{blockId:e,element:t,editor:o,isOpen:n,setIsOpen:a}}function E(){const{blockId:e,element:t,editor:o}=N();return n=>{y.updateElement(o,{blockId:e,type:t.type,props:Object.assign(Object.assign({},t.props),n)})}}O.displayName="ElementOptionsContext";const C=({children:e,className:t,style:o,side:a="bottom",align:l="end",sideOffset:i=4,alignOffset:d=0})=>{const{isOpen:c,setIsOpen:p,triggerRef:h,contentRef:y}=N(),k=r(null),v="center"===l?a:`${a}-${l}`,{refs:w,floatingStyles:O}=m({open:c,placement:v,middleware:[u({mainAxis:i,crossAxis:d}),g({padding:8}),b({padding:8})],whileElementsMounted:f});return s(()=>{h.current&&w.setReference(h.current)},[h,w]),s(()=>{if(!c)return;const e=e=>{const t=e.target,o=h.current,n=k.current;o&&!o.contains(t)&&n&&!n.contains(t)&&p(!1)},t=e=>{"Escape"===e.key&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[c,p,h]),c?n(x,Object.assign({id:"element-options-portal"},{children:n("div",Object.assign({ref:e=>{w.setFloating(e),k.current=e,y&&(y.current=e)},className:t,style:Object.assign(Object.assign({},O),o),"data-element-options-content":!0,"data-state":"open","data-side":a,"data-align":l,role:"dialog","aria-modal":"true"},{children:e}))})):null};C.displayName="ElementOptions.Content";const D=({children:e,className:t,style:o})=>n("div",Object.assign({className:t,style:o,"data-element-options-group":!0},{children:e}));D.displayName="ElementOptions.Group";const z=({value:e,onChange:t,placeholder:o,type:a="text",className:r,style:s})=>n("input",{type:a,value:e,onChange:e=>{t(e.target.value)},onMouseDown:e=>{e.stopPropagation()},placeholder:o,className:r,style:s,"data-element-options-input":!0});z.displayName="ElementOptions.Input";const L=({children:e,className:t,style:o})=>n("label",Object.assign({className:t,style:o,"data-element-options-label":!0},{children:e}));L.displayName="ElementOptions.Label";const R=({blockId:e,element:t,children:o,anchorRef:s,className:l,style:i})=>{const c=k(),[p,m]=a(!1),u=r(null),g=r(null),b=d(()=>({blockId:e,element:t,editor:c,isOpen:p,setIsOpen:m,triggerRef:u,contentRef:g,anchorRef:null!=s?s:null}),[e,t,c,p,s]);return n(O.Provider,Object.assign({value:b},{children:n("div",Object.assign({className:l,style:i,"data-element-options-root":!0,"data-state":p?"open":"closed"},{children:o}))}))};R.displayName="ElementOptions.Root";
|
|
1
|
+
import{s as e}from"./chunks/style-inject.es-e87a8d02.js";import{jsxs as t,Fragment as o,jsx as n}from"react/jsx-runtime";import{useState as a,useRef as r,useEffect as s,createContext as l,useContext as i,useMemo as d,forwardRef as c,createElement as p}from"react";import{u as m,o as u,f as g,s as b,a as f}from"./chunks/floating-ui.react-b048728e.js";import{Z as h}from"./chunks/index-e0185864.js";import{Portal as x}from"./portal.js";import{Elements as y,useYooptaEditor as k}from"@yoopta/editor";import"react-dom";e('[data-element-options-root]{position:relative}[data-element-options-trigger]{align-items:center;background:transparent;border:none;border-radius:4px;cursor:pointer;display:inline-flex;justify-content:center;padding:4px;transition:background-color .15s ease,opacity .15s ease}[data-element-options-trigger]:hover{background-color:rgba(0,0,0,.05)}[data-element-options-trigger]:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.yoo-element-options-trigger-icon{color:#6b7280;height:16px;width:16px}[data-element-options-content]{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);min-width:180px;padding:8px;z-index:50}[data-element-options-group]{display:flex;flex-direction:column;gap:6px}[data-element-options-group]+[data-element-options-group]{margin-top:8px}[data-element-options-label]{color:#6b7280;font-size:12px;font-weight:500}[data-element-options-separator]{background-color:#e5e7eb;height:1px;margin:8px 0}[data-element-options-select]{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;font-size:13px;justify-content:space-between;padding:6px 10px;transition:border-color .15s ease;width:100%}[data-element-options-select]:hover{border-color:#d1d5db}[data-element-options-select]:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}[data-element-options-select-value]{align-items:center;display:flex;gap:8px}[data-element-options-select-chevron]{color:#9ca3af;height:14px;transition:transform .15s ease;width:14px}[data-element-options-select][data-state=open] [data-element-options-select-chevron]{transform:rotate(180deg)}[data-element-options-select-content]{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);min-width:140px;padding:4px;z-index:51}[data-element-options-select-item]{align-items:center;background:transparent;border:none;border-radius:4px;cursor:pointer;display:flex;font-size:13px;justify-content:space-between;padding:6px 8px;text-align:left;transition:background-color .15s ease;width:100%}[data-element-options-select-item]:hover{background-color:#f3f4f6}[data-element-options-select-item][data-selected=true]{background-color:#eff6ff}[data-element-options-select-item-content]{align-items:center;display:flex;gap:8px}[data-element-options-select-check]{color:#3b82f6;height:14px;width:14px}[data-element-options-select-icon]{align-items:center;display:flex;height:16px;justify-content:center;width:16px}[data-element-options-select-color]{border:1px solid rgba(0,0,0,.1);border-radius:50%;display:inline-block;height:12px;width:12px}[data-element-options-color-picker]{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 10px;transition:border-color .15s ease;width:100%}[data-element-options-color-picker]:hover{border-color:#d1d5db}[data-element-options-color-preview]{border:1px solid rgba(0,0,0,.1);border-radius:4px;display:inline-block;height:20px;width:20px}[data-element-options-color-value]{color:#6b7280;font-family:monospace;font-size:12px}[data-element-options-color-picker-content]{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);padding:12px;z-index:51}[data-element-options-color-picker-content] .react-colorful{height:150px;width:180px}[data-element-options-color-presets]{border-top:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px}[data-element-options-color-preset]{border:2px solid transparent;border-radius:4px;cursor:pointer;height:20px;padding:0;transition:border-color .15s ease,transform .15s ease;width:20px}[data-element-options-color-preset]:hover{transform:scale(1.1)}[data-element-options-color-preset][data-selected=true]{border-color:#3b82f6}[data-element-options-toggle]{align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;gap:8px;padding:0}[data-element-options-toggle-thumb]{background-color:#e5e7eb;border-radius:10px;height:20px;position:relative;transition:background-color .2s ease;width:36px}[data-element-options-toggle-thumb]:after{background-color:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.1);content:"";height:16px;left:2px;position:absolute;top:2px;transition:transform .2s ease;width:16px}[data-element-options-toggle][data-state=checked] [data-element-options-toggle-thumb]{background-color:#3b82f6}[data-element-options-toggle][data-state=checked] [data-element-options-toggle-thumb]:after{transform:translateX(16px)}[data-element-options-toggle-label]{color:#374151;font-size:13px}[data-element-options-slider]{align-items:center;display:flex;gap:10px}[data-element-options-slider-input]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(to right,#3b82f6 0,#3b82f6 var(--slider-percentage,0),#e5e7eb var(--slider-percentage,0),#e5e7eb 100%);border-radius:2px;cursor:pointer;flex:1;height:4px}[data-element-options-slider-input]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background-color:#fff;border:2px solid #3b82f6;border-radius:50%;cursor:pointer;height:14px;-webkit-transition:transform .15s ease;transition:transform .15s ease;width:14px}[data-element-options-slider-input]::-webkit-slider-thumb:hover{transform:scale(1.1)}[data-element-options-slider-value]{color:#6b7280;font-family:monospace;font-size:12px;min-width:32px;text-align:right}[data-element-options-input]{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;font-size:13px;padding:6px 10px;transition:border-color .15s ease;width:100%}[data-element-options-input]:hover{border-color:#d1d5db}[data-element-options-input]:focus{border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1);outline:none}[data-element-options-input]::-moz-placeholder{color:#9ca3af}[data-element-options-input]::placeholder{color:#9ca3af}@media (prefers-color-scheme:dark){[data-element-options-color-picker-content],[data-element-options-content],[data-element-options-select-content]{background-color:#1f2937;border-color:#374151}[data-element-options-label]{color:#9ca3af}[data-element-options-separator]{background-color:#374151}[data-element-options-color-picker],[data-element-options-input],[data-element-options-select]{background-color:#1f2937;border-color:#374151;color:#f3f4f6}[data-element-options-color-picker]:hover,[data-element-options-input]:hover,[data-element-options-select]:hover{border-color:#4b5563}[data-element-options-select-item]:hover{background-color:#374151}[data-element-options-select-item][data-selected=true]{background-color:rgba(59,130,246,.2)}[data-element-options-color-presets]{border-top-color:#374151}[data-element-options-toggle-thumb]{background-color:#374151}[data-element-options-toggle-label]{color:#d1d5db}[data-element-options-slider-input]{background:linear-gradient(to right,#3b82f6 0,#3b82f6 var(--slider-percentage,0),#374151 var(--slider-percentage,0),#374151 100%)}.yoo-element-options-trigger-icon{color:#9ca3af}[data-element-options-trigger]:hover{background-color:hsla(0,0%,100%,.1)}}');const v=["#000000","#6B7280","#EF4444","#F59E0B","#22C55E","#3B82F6","#8B5CF6","#EC4899"],w=({value:e,onChange:l,presetColors:i=v,className:d,style:c})=>{const[p,y]=a(!1),k=r(null),{refs:w,floatingStyles:O}=m({open:p,placement:"bottom-start",middleware:[u(4),g({padding:8}),b({padding:8})],whileElementsMounted:f});s(()=>{k.current&&w.setReference(k.current)},[w]),s(()=>{if(!p)return;const e=e=>{const t=e.target;k.current&&!k.current.contains(t)&&w.floating.current&&!w.floating.current.contains(t)&&y(!1)},t=e=>{"Escape"===e.key&&y(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[p,w.floating]);const j=e=>{e.preventDefault()};return t(o,{children:[t("button",Object.assign({ref:k,type:"button",className:d,style:c,onClick:e=>{e.preventDefault(),e.stopPropagation(),y(!p)},onMouseDown:j,"data-element-options-color-picker":!0,"data-state":p?"open":"closed","aria-expanded":p},{children:[n("span",{"data-element-options-color-preview":!0,style:{backgroundColor:e}}),n("span",Object.assign({"data-element-options-color-value":!0},{children:e}))]})),p&&n(x,Object.assign({id:"element-options-color-picker-portal"},{children:t("div",Object.assign({ref:w.setFloating,style:O,"data-element-options-color-picker-content":!0,onMouseDown:j},{children:[n(h,{color:e,onChange:l}),i.length>0&&n("div",Object.assign({"data-element-options-color-presets":!0},{children:i.map(t=>n("button",{type:"button","data-element-options-color-preset":!0,"data-selected":t===e,style:{backgroundColor:t},onClick:()=>(e=>{l(e)})(t),onMouseDown:j,"aria-label":`Select color ${t}`},t))}))]}))}))]})};w.displayName="ElementOptions.ColorPicker";const O=l(null);function j(){const e=i(O);if(!e)throw new Error("useElementOptionsContext must be used within an ElementOptions.Root");return e}function N(){const{blockId:e,element:t,editor:o,isOpen:n,setIsOpen:a}=j();return{blockId:e,element:t,editor:o,isOpen:n,setIsOpen:a}}function E(){const{blockId:e,element:t,editor:o}=j();return n=>{y.updateElement(o,{blockId:e,type:t.type,props:Object.assign(Object.assign({},t.props),n)})}}O.displayName="ElementOptionsContext";const C=({children:e,className:t,style:o,side:a="bottom",align:l="end",sideOffset:i=4,alignOffset:d=0})=>{const{isOpen:c,setIsOpen:p,triggerRef:h,contentRef:y}=j(),k=r(null),v="center"===l?a:`${a}-${l}`,{refs:w,floatingStyles:O}=m({open:c,placement:v,middleware:[u({mainAxis:i,crossAxis:d}),g({padding:8}),b({padding:8})],whileElementsMounted:f});return s(()=>{h.current&&w.setReference(h.current)},[h,w]),s(()=>{if(!c)return;const e=e=>{const t=e.target,o=h.current,n=k.current;o&&!o.contains(t)&&n&&!n.contains(t)&&p(!1)},t=e=>{"Escape"===e.key&&p(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[c,p,h]),c?n(x,Object.assign({id:"element-options-portal"},{children:n("div",Object.assign({ref:e=>{w.setFloating(e),k.current=e,y&&(y.current=e)},className:t,style:Object.assign(Object.assign({},O),o),"data-element-options-content":!0,"data-state":"open","data-side":a,"data-align":l,role:"dialog","aria-modal":"true"},{children:e}))})):null};C.displayName="ElementOptions.Content";const D=({children:e,className:t,style:o})=>n("div",Object.assign({className:t,style:o,"data-element-options-group":!0},{children:e}));D.displayName="ElementOptions.Group";const z=({value:e,onChange:t,placeholder:o,type:a="text",className:r,style:s})=>n("input",{type:a,value:e,onChange:e=>{t(e.target.value)},onMouseDown:e=>{e.stopPropagation()},placeholder:o,className:r,style:s,"data-element-options-input":!0});z.displayName="ElementOptions.Input";const L=({children:e,className:t,style:o})=>n("label",Object.assign({className:t,style:o,"data-element-options-label":!0},{children:e}));L.displayName="ElementOptions.Label";const M=({blockId:e,element:t,children:o,anchorRef:s,className:l,style:i})=>{const c=k(),[p,m]=a(!1),u=r(null),g=r(null),b=d(()=>({blockId:e,element:t,editor:c,isOpen:p,setIsOpen:m,triggerRef:u,contentRef:g,anchorRef:null!=s?s:null}),[e,t,c,p,s]);return n(O.Provider,Object.assign({value:b},{children:n("div",Object.assign({className:l,style:i,"data-element-options-root":!0,"data-state":p?"open":"closed"},{children:o}))}))};M.displayName="ElementOptions.Root";
|
|
2
2
|
/**
|
|
3
|
-
* @license lucide-react v0.
|
|
3
|
+
* @license lucide-react v0.294.0 - ISC
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the ISC license.
|
|
6
6
|
* See the LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
var R={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};
|
|
9
9
|
/**
|
|
10
|
-
* @license lucide-react v0.
|
|
10
|
+
* @license lucide-react v0.294.0 - ISC
|
|
11
11
|
*
|
|
12
12
|
* This source code is licensed under the ISC license.
|
|
13
13
|
* See the LICENSE file in the root directory of this source tree.
|
|
14
|
-
*/
|
|
15
|
-
var M={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};
|
|
16
|
-
/**
|
|
17
|
-
* @license lucide-react v0.378.0 - ISC
|
|
18
|
-
*
|
|
19
|
-
* This source code is licensed under the ISC license.
|
|
20
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
-
*/const S=c(({color:e="currentColor",size:t=24,strokeWidth:o=2,absoluteStrokeWidth:n,className:a="",children:r,iconNode:s,...l},i)=>p("svg",{ref:i,...M,width:t,height:t,stroke:e,strokeWidth:n?24*Number(o)/Number(t):o,className:I("lucide",a),...l},[...s.map(([e,t])=>p(e,t)),...Array.isArray(r)?r:[r]])),$=(e,t)=>{const o=c(({className:o,...n},a)=>{return p(S,{ref:a,iconNode:t,className:I(`lucide-${r=e,r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,o),...n});var r});return o.displayName=`${e}`,o},P=$("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),F=$("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),A=$("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),B=({value:e,options:l,onValueChange:i,placeholder:d="Select...",className:c,style:p,renderOption:h,renderValue:y})=>{const[k,v]=a(!1),w=r(null),O=l.find(t=>t.value===e),{refs:N,floatingStyles:j}=m({open:k,placement:"bottom-start",middleware:[u(4),g({padding:8}),b({padding:8})],whileElementsMounted:f});s(()=>{w.current&&N.setReference(w.current)},[N]),s(()=>{if(!k)return;const e=e=>{const t=e.target;w.current&&!w.current.contains(t)&&N.floating.current&&!N.floating.current.contains(t)&&v(!1)},t=e=>{"Escape"===e.key&&v(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[k,N.floating]);const E=e=>{e.preventDefault()},C=e=>t(o,{children:[e.icon&&n("span",Object.assign({"data-element-options-select-icon":!0},{children:e.icon})),e.color&&n("span",{"data-element-options-select-color":!0,style:{backgroundColor:e.color}}),n("span",{children:e.label})]});return t(o,{children:[t("button",Object.assign({ref:w,type:"button",className:c,style:p,onClick:e=>{e.preventDefault(),e.stopPropagation(),v(!k)},onMouseDown:E,"data-element-options-select":!0,"data-state":k?"open":"closed","aria-expanded":k,"aria-haspopup":"listbox"},{children:[n("span",Object.assign({"data-element-options-select-value":!0},{children:y?y(O):(D=O,t(o,{children:[(null==D?void 0:D.icon)&&n("span",Object.assign({"data-element-options-select-icon":!0},{children:D.icon})),(null==D?void 0:D.color)&&n("span",{"data-element-options-select-color":!0,style:{backgroundColor:D.color}}),n("span",{children:null!==(z=null==D?void 0:D.label)&&void 0!==z?z:d})]}))})),n(F,{"data-element-options-select-chevron":!0})]})),k&&n(x,Object.assign({id:"element-options-select-portal"},{children:n("div",Object.assign({ref:N.setFloating,style:j,"data-element-options-select-content":!0,role:"listbox","aria-activedescendant":e,tabIndex:0},{children:l.map(o=>t("button",Object.assign({type:"button",role:"option","aria-selected":o.value===e,"data-element-options-select-item":!0,"data-selected":o.value===e,onClick:()=>{return e=o.value,i(e),void v(!1);var e},onMouseDown:E},{children:[n("span",Object.assign({"data-element-options-select-item-content":!0},{children:h?h(o):C(o)})),o.value===e&&n(P,{"data-element-options-select-check":!0})]}),String(o.value)))}))}))]});var D,z};
|
|
22
|
-
/**
|
|
23
|
-
* @license lucide-react v0.378.0 - ISC
|
|
24
|
-
*
|
|
25
|
-
* This source code is licensed under the ISC license.
|
|
26
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
27
|
-
*/B.displayName="ElementOptions.Select";const T=({className:e,style:t})=>n("div",{className:e,style:t,"data-element-options-separator":!0,role:"separator","aria-orientation":"horizontal"});T.displayName="ElementOptions.Separator";const W=({value:e,onValueChange:o,min:a=0,max:r=100,step:s=1,className:l,style:i})=>{const d=(e-a)/(r-a)*100;return t("div",Object.assign({className:l,style:i,"data-element-options-slider":!0,onMouseDown:e=>{e.stopPropagation()}},{children:[n("input",{type:"range",min:a,max:r,step:s,value:e,onChange:e=>{o(Number(e.target.value))},"data-element-options-slider-input":!0,style:{"--slider-percentage":`${d}%`}}),n("span",Object.assign({"data-element-options-slider-value":!0},{children:e}))]}))};W.displayName="ElementOptions.Slider";const V=({checked:e,onCheckedChange:o,label:a,className:r,style:s})=>t("button",Object.assign({type:"button",role:"switch","aria-checked":e,className:r,style:s,onClick:t=>{t.preventDefault(),t.stopPropagation(),o(!e)},onMouseDown:e=>{e.preventDefault()},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),o(!e))},"data-element-options-toggle":!0,"data-state":e?"checked":"unchecked"},{children:[n("span",{"data-element-options-toggle-thumb":!0}),a&&n("span",Object.assign({"data-element-options-toggle-label":!0},{children:a}))]}));V.displayName="ElementOptions.Toggle";const G=({children:e,className:t,style:o,side:a,align:r,sideOffset:l=0,alignOffset:i=0})=>{const{isOpen:d,setIsOpen:c,triggerRef:p,anchorRef:h}=N(),x=Boolean(h&&a),y=a?"center"!==r&&r?`${a}-${r}`:a:"bottom",{refs:k,floatingStyles:v}=m({placement:y,middleware:[u({mainAxis:l,crossAxis:i}),g({padding:8}),b({padding:8})],whileElementsMounted:f});s(()=>{(null==h?void 0:h.current)&&x&&k.setReference(h.current)},[h,k,x]);const w=x?Object.assign(Object.assign({},v),o):o;return n("button",Object.assign({ref:e=>{p.current=e,x&&k.setFloating(e)},type:"button",className:t,style:w,onClick:e=>{e.preventDefault(),e.stopPropagation(),c(!d)},onMouseDown:e=>{e.preventDefault()},"data-element-options-trigger":!0,"data-state":d?"open":"closed","aria-expanded":d,"aria-haspopup":"dialog"},{children:null!=e?e:n(A,{className:"yoo-element-options-trigger-icon"})}))};G.displayName="ElementOptions.Trigger";const q=Object.assign(R,{Root:R,Trigger:G,Content:C,Group:D,Label:L,Separator:T,Select:B,ColorPicker:w,Toggle:V,Slider:W,Input:z});export{q as ElementOptions,w as ElementOptionsColorPicker,C as ElementOptionsContent,O as ElementOptionsContext,D as ElementOptionsGroup,z as ElementOptionsInput,L as ElementOptionsLabel,R as ElementOptionsRoot,B as ElementOptionsSelect,T as ElementOptionsSeparator,W as ElementOptionsSlider,V as ElementOptionsToggle,G as ElementOptionsTrigger,j as useElementOptions,N as useElementOptionsContext,E as useUpdateElementProps};
|
|
14
|
+
*/const I=(e,t)=>{const o=c(({color:o="currentColor",size:n=24,strokeWidth:a=2,absoluteStrokeWidth:r,className:s="",children:l,...i},d)=>{return p("svg",{ref:d,...R,width:n,height:n,stroke:o,strokeWidth:r?24*Number(a)/Number(n):a,className:["lucide",`lucide-${c=e,c.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().trim()}`,s].join(" "),...i},[...t.map(([e,t])=>p(e,t)),...Array.isArray(l)?l:[l]]);var c});return o.displayName=`${e}`,o},S=I("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),$=I("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),P=I("MoreHorizontal",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),F=({value:e,options:l,onValueChange:i,placeholder:d="Select...",className:c,style:p,renderOption:h,renderValue:y})=>{const[k,v]=a(!1),w=r(null),O=l.find(t=>t.value===e),{refs:j,floatingStyles:N}=m({open:k,placement:"bottom-start",middleware:[u(4),g({padding:8}),b({padding:8})],whileElementsMounted:f});s(()=>{w.current&&j.setReference(w.current)},[j]),s(()=>{if(!k)return;const e=e=>{const t=e.target;w.current&&!w.current.contains(t)&&j.floating.current&&!j.floating.current.contains(t)&&v(!1)},t=e=>{"Escape"===e.key&&v(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[k,j.floating]);const E=e=>{e.preventDefault()},C=e=>t(o,{children:[e.icon&&n("span",Object.assign({"data-element-options-select-icon":!0},{children:e.icon})),e.color&&n("span",{"data-element-options-select-color":!0,style:{backgroundColor:e.color}}),n("span",{children:e.label})]});return t(o,{children:[t("button",Object.assign({ref:w,type:"button",className:c,style:p,onClick:e=>{e.preventDefault(),e.stopPropagation(),v(!k)},onMouseDown:E,"data-element-options-select":!0,"data-state":k?"open":"closed","aria-expanded":k,"aria-haspopup":"listbox"},{children:[n("span",Object.assign({"data-element-options-select-value":!0},{children:y?y(O):(D=O,t(o,{children:[(null==D?void 0:D.icon)&&n("span",Object.assign({"data-element-options-select-icon":!0},{children:D.icon})),(null==D?void 0:D.color)&&n("span",{"data-element-options-select-color":!0,style:{backgroundColor:D.color}}),n("span",{children:null!==(z=null==D?void 0:D.label)&&void 0!==z?z:d})]}))})),n($,{"data-element-options-select-chevron":!0})]})),k&&n(x,Object.assign({id:"element-options-select-portal"},{children:n("div",Object.assign({ref:j.setFloating,style:N,"data-element-options-select-content":!0,role:"listbox","aria-activedescendant":e,tabIndex:0},{children:l.map(o=>t("button",Object.assign({type:"button",role:"option","aria-selected":o.value===e,"data-element-options-select-item":!0,"data-selected":o.value===e,onClick:()=>{return e=o.value,i(e),void v(!1);var e},onMouseDown:E},{children:[n("span",Object.assign({"data-element-options-select-item-content":!0},{children:h?h(o):C(o)})),o.value===e&&n(S,{"data-element-options-select-check":!0})]}),String(o.value)))}))}))]});var D,z};F.displayName="ElementOptions.Select";const A=({className:e,style:t})=>n("div",{className:e,style:t,"data-element-options-separator":!0,role:"separator","aria-orientation":"horizontal"});A.displayName="ElementOptions.Separator";const B=({value:e,onValueChange:o,min:a=0,max:r=100,step:s=1,className:l,style:i})=>{const d=(e-a)/(r-a)*100;return t("div",Object.assign({className:l,style:i,"data-element-options-slider":!0,onMouseDown:e=>{e.stopPropagation()}},{children:[n("input",{type:"range",min:a,max:r,step:s,value:e,onChange:e=>{o(Number(e.target.value))},"data-element-options-slider-input":!0,style:{"--slider-percentage":`${d}%`}}),n("span",Object.assign({"data-element-options-slider-value":!0},{children:e}))]}))};B.displayName="ElementOptions.Slider";const T=({checked:e,onCheckedChange:o,label:a,className:r,style:s})=>t("button",Object.assign({type:"button",role:"switch","aria-checked":e,className:r,style:s,onClick:t=>{t.preventDefault(),t.stopPropagation(),o(!e)},onMouseDown:e=>{e.preventDefault()},onKeyDown:t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),o(!e))},"data-element-options-toggle":!0,"data-state":e?"checked":"unchecked"},{children:[n("span",{"data-element-options-toggle-thumb":!0}),a&&n("span",Object.assign({"data-element-options-toggle-label":!0},{children:a}))]}));T.displayName="ElementOptions.Toggle";const W=({children:e,className:t,style:o,side:a,align:r,sideOffset:l=0,alignOffset:i=0})=>{const{isOpen:d,setIsOpen:c,triggerRef:p,anchorRef:h}=j(),x=Boolean(h&&a),y=a?"center"!==r&&r?`${a}-${r}`:a:"bottom",{refs:k,floatingStyles:v}=m({placement:y,middleware:[u({mainAxis:l,crossAxis:i}),g({padding:8}),b({padding:8})],whileElementsMounted:f});s(()=>{(null==h?void 0:h.current)&&x&&k.setReference(h.current)},[h,k,x]);const w=x?Object.assign(Object.assign({},v),o):o;return n("button",Object.assign({ref:e=>{p.current=e,x&&k.setFloating(e)},type:"button",className:t,style:w,onClick:e=>{e.preventDefault(),e.stopPropagation(),c(!d)},onMouseDown:e=>{e.preventDefault()},"data-element-options-trigger":!0,"data-state":d?"open":"closed","aria-expanded":d,"aria-haspopup":"dialog"},{children:null!=e?e:n(P,{className:"yoo-element-options-trigger-icon"})}))};W.displayName="ElementOptions.Trigger";const V=Object.assign(M,{Root:M,Trigger:W,Content:C,Group:D,Label:L,Separator:A,Select:F,ColorPicker:w,Toggle:T,Slider:B,Input:z});export{V as ElementOptions,w as ElementOptionsColorPicker,C as ElementOptionsContent,O as ElementOptionsContext,D as ElementOptionsGroup,z as ElementOptionsInput,L as ElementOptionsLabel,M as ElementOptionsRoot,F as ElementOptionsSelect,A as ElementOptionsSeparator,B as ElementOptionsSlider,T as ElementOptionsToggle,W as ElementOptionsTrigger,N as useElementOptions,j as useElementOptionsContext,E as useUpdateElementProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floating-toolbar.d.ts","sourceRoot":"","sources":["../../src/floating-toolbar/floating-toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAef,OAAO,wBAAwB,CAAC;AAEhC,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,kBAAkB,KAAK,SAAS,CAAC,CAAC;IAC/D,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"floating-toolbar.d.ts","sourceRoot":"","sources":["../../src/floating-toolbar/floating-toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAef,OAAO,wBAAwB,CAAC;AAEhC,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,kBAAkB,KAAK,SAAS,CAAC,CAAC;IAC/D,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAmMF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AA0BnC,KAAK,yBAAyB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAYhE,KAAK,6BAA6B,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAUpE,KAAK,0BAA0B,GAAG;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACtC,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAmBtC,eAAO,MAAM,eAAe;sCA3Q+C,wBAAwB;;;;0CAAxB,wBAAwB;;;;4CAsM3B,2BAA2B;;;;;;;;;;CA2EjG,CAAC;AAEH,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,kBAAkB,GACnB,CAAC"}
|
package/dist/floating-toolbar.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o}from"./chunks/_tslib-5e145dfd.js";import{jsx as t}from"react/jsx-runtime";import{createContext as a,useContext as i,forwardRef as e,useState as
|
|
1
|
+
import{_ as o}from"./chunks/_tslib-5e145dfd.js";import{jsx as t}from"react/jsx-runtime";import{createContext as a,useContext as i,forwardRef as e,useState as r,useRef as n,useMemo as l,useCallback as s,useEffect as p}from"react";import{u,i as c,f as g,s as d,o as b,a as f,c as y,F as m}from"./chunks/floating-ui.react-b048728e.js";import{useYooptaEditor as h}from"@yoopta/editor";import{t as v}from"./chunks/throttle-dea4a39e.js";import{s as x}from"./chunks/style-inject.es-e87a8d02.js";import"react-dom";const w=a(null),k=()=>{const o=i(w);if(!o)throw new Error("FloatingToolbar components must be used within <FloatingToolbar>");return o};x(":root{--yoopta-ui-background:0 0% 100%;--yoopta-ui-foreground:222.2 84% 4.9%;--yoopta-ui-border:214.3 31.8% 91.4%;--yoopta-ui-accent:210 40% 96.1%;--yoopta-ui-ring:222.2 84% 4.9%;--yoopta-ui-primary:221.2 83.2% 53.3%;--yoopta-ui-primary-foreground:210 40% 98%;--yoopta-ui-floating-toolbar-gap:4px;--yoopta-ui-floating-toolbar-padding:6px;--yoopta-ui-floating-toolbar-radius:0.5rem;--yoopta-ui-floating-toolbar-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--yoopta-ui-floating-toolbar-z-index:99;--yoopta-ui-floating-toolbar-group-gap:2px;--yoopta-ui-floating-toolbar-separator-height:24px;--yoopta-ui-floating-toolbar-separator-margin:4px;--yoopta-ui-floating-toolbar-button-min-width:32px;--yoopta-ui-floating-toolbar-button-min-height:32px;--yoopta-ui-floating-toolbar-button-padding-y:6px;--yoopta-ui-floating-toolbar-button-padding-x:8px;--yoopta-ui-floating-toolbar-button-font-size:0.875rem;--yoopta-ui-floating-toolbar-button-font-weight:500;--yoopta-ui-floating-toolbar-button-gap:4px;--yoopta-ui-floating-toolbar-button-radius:0.375rem;--yoopta-ui-floating-toolbar-icon-size:1rem;--yoopta-ui-floating-toolbar-ring-offset:2px}.dark,[data-theme=dark]{--yoopta-ui-background:222.2 84% 4.9%;--yoopta-ui-foreground:210 40% 98%;--yoopta-ui-border:217.2 32.6% 17.5%;--yoopta-ui-accent:217.2 32.6% 17.5%;--yoopta-ui-ring:212.7 26.8% 83.9%}.yoopta-ui-floating-toolbar{align-items:center;background:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-floating-toolbar-radius,.5rem);box-shadow:var(--yoopta-ui-floating-toolbar-shadow,0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1));display:flex;gap:var(--yoopta-ui-floating-toolbar-gap,4px);padding:var(--yoopta-ui-floating-toolbar-padding,6px);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:var(--yoopta-ui-floating-toolbar-z-index,99)}.yoopta-ui-floating-toolbar-group{align-items:center;display:flex;gap:var(--yoopta-ui-floating-toolbar-group-gap,2px)}.yoopta-ui-floating-toolbar-separator{background:hsl(var(--yoopta-ui-border));height:var(--yoopta-ui-floating-toolbar-separator-height,24px);margin:0 var(--yoopta-ui-floating-toolbar-separator-margin,4px);width:1px}.yoopta-ui-floating-toolbar-button{align-items:center;background:transparent;border:none;border-radius:var(--yoopta-ui-floating-toolbar-button-radius,.375rem);color:hsl(var(--yoopta-ui-foreground));cursor:pointer;display:inline-flex;font-size:var(--yoopta-ui-floating-toolbar-button-font-size,.875rem);font-weight:var(--yoopta-ui-floating-toolbar-button-font-weight,500);gap:var(--yoopta-ui-floating-toolbar-button-gap,4px);justify-content:center;min-height:var(--yoopta-ui-floating-toolbar-button-min-height,32px);min-width:var(--yoopta-ui-floating-toolbar-button-min-width,32px);outline:none;padding:var(--yoopta-ui-floating-toolbar-button-padding-y,6px) var(--yoopta-ui-floating-toolbar-button-padding-x,8px);transition:all .15s cubic-bezier(.4,0,.2,1);white-space:nowrap}.yoopta-ui-floating-toolbar-button:hover:not(:disabled){background:hsl(var(--yoopta-ui-accent))}.yoopta-ui-floating-toolbar-button:focus-visible{outline:2px solid hsl(var(--yoopta-ui-ring));outline-offset:var(--yoopta-ui-floating-toolbar-ring-offset,2px)}.yoopta-ui-floating-toolbar-button[data-active=true]{background:hsl(var(--yoopta-ui-primary,221.2 83.2% 53.3%));color:hsl(var(--yoopta-ui-primary-foreground,210 40% 98%))}.yoopta-ui-floating-toolbar-button:disabled{cursor:not-allowed;opacity:.5}.yoopta-ui-floating-toolbar-button svg{height:var(--yoopta-ui-floating-toolbar-icon-size,1rem);width:var(--yoopta-ui-floating-toolbar-icon-size,1rem)}");const N=({children:o,frozen:a=!1,className:i=""})=>{const e=h(),[m,x]=r(!1),k=n(null),{refs:N,floatingStyles:j,context:O}=u({placement:"top-start",open:m,middleware:[c(),g(),d(),b(10)],whileElementsMounted:f}),{isMounted:z,styles:F}=y(O,{duration:100}),R=l(()=>Object.assign(Object.assign({},j),F),[j,F]),C=n(N.setReference);C.current=N.setReference;const E=s(()=>{x(!1)},[]),A=s(()=>{x(!0)},[]),S=s(()=>{var o,t;if(a)return;const i=k.current;if(null==i?void 0:i.contains(document.activeElement))return;const r=window.getSelection();if(!r||(null==r?void 0:r.isCollapsed)||(null==r?void 0:r.anchorOffset)===(null==r?void 0:r.focusOffset))return void(m&&E());const n=r.getRangeAt(0),l=n.getBoundingClientRect(),s=n.toString().trim(),p=null==n?void 0:n.commonAncestorContainer,u=!!(null===(o=null==p?void 0:p.closest)||void 0===o?void 0:o.call(p,"[data-custom-editor]"));if((null===(t=e.refElement)||void 0===t?void 0:t.contains(p))&&!u){if(n&&s.length>0){const o={getBoundingClientRect:()=>l,getClientRects:()=>n.getClientRects()};C.current(o),m||A()}}else m&&E()},[a,e.refElement,E,A,m]),M=s(()=>{var o;if(!Array.isArray(e.path.selected)||0===e.path.selected.length||"mousemove"!==e.path.source&&"keyboard"!==e.path.source)return void(m&&E());const t=Math.min(...e.path.selected),a=Math.max(...e.path.selected);let i=!0;"number"==typeof e.path.current&&(i=Math.abs(e.path.current-a)<=Math.abs(e.path.current-t));const r=e.getBlock({at:i?a:t});if(!r)return;const n=null===(o=e.refElement)||void 0===o?void 0:o.querySelector(`[data-yoopta-block-id="${r.id}"]`);n&&(C.current(n),m||A())},[e,E,A,m]),T=l(()=>v(S,200,{leading:!0,trailing:!0}),[S]);p(()=>{if(Array.isArray(e.path.selected)||e.path.selection){if(!Array.isArray(e.path.selected)||e.path.selection)return window.document.addEventListener("selectionchange",T),()=>window.document.removeEventListener("selectionchange",T);M()}else m&&E()},[e.path.selected,e.path.selection,m,T,E,M]);const $=s(o=>{k.current=o,N.setFloating(o)},[N.setFloating,N.setReference]),B=l(()=>({isOpen:z,floatingStyles:R,setFloatingRef:$}),[z,R,$]),P="function"==typeof o?o({isOpen:z}):o;return t(w.Provider,Object.assign({value:B},{children:t("div",Object.assign({className:i},{children:P}))}))};N.displayName="FloatingToolbar";const j=a=>{var{children:i,className:e=""}=a,r=o(a,["children","className"]);const n=h(),{isOpen:l,floatingStyles:s,setFloatingRef:p}=k();return l?t(m,Object.assign({root:n.refElement,id:`yoopta-ui-floating-toolbar-portal-${n.id}`},{children:t("div",Object.assign({ref:p,className:`yoopta-ui-floating-toolbar ${e}`,style:s,onClick:o=>o.stopPropagation(),onMouseDown:o=>o.stopPropagation()},r,{children:i}))})):null};j.displayName="FloatingToolbar.Content";const O=e((a,i)=>{var{className:e="",children:r}=a,n=o(a,["className","children"]);return t("div",Object.assign({ref:i,className:`yoopta-ui-floating-toolbar-group ${e}`},n,{children:r}))});O.displayName="FloatingToolbar.Group";const z=e((a,i)=>{var{className:e=""}=a,r=o(a,["className"]);return t("div",Object.assign({ref:i,className:`yoopta-ui-floating-toolbar-separator ${e}`},r))});z.displayName="FloatingToolbar.Separator";const F=e((a,i)=>{var{className:e="",children:r,active:n,disabled:l,type:s="button"}=a,p=o(a,["className","children","active","disabled","type"]);return t("button",Object.assign({ref:i,type:s,disabled:l,"data-active":n,className:`yoopta-ui-floating-toolbar-button ${e}`},p,{children:r}))});F.displayName="FloatingToolbar.Button";const R=Object.assign(N,{Root:N,Content:j,Group:O,Separator:z,Button:F});export{R as FloatingToolbar,k as useFloatingToolbarContext};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlight-color-picker.d.ts","sourceRoot":"","sources":["../../src/highlight-color-picker/highlight-color-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,MAAM,MAAM,yBAAyB,GAAG;IACtC,wCAAwC;IACxC,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAChD,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAaF,eAAO,MAAM,oBAAoB,sHAmKhC,CAAC"}
|
|
1
|
+
{"version":3,"file":"highlight-color-picker.d.ts","sourceRoot":"","sources":["../../src/highlight-color-picker/highlight-color-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,8BAA8B,CAAC;AAEtC,MAAM,MAAM,yBAAyB,GAAG;IACtC,wCAAwC;IACxC,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1E,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAChD,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAaF,eAAO,MAAM,oBAAoB,sHAmKhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/highlight-color-picker/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/highlight-color-picker/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jsxs as o,Fragment as r,jsx as e}from"react/jsx-runtime";import{forwardRef as t,useState as i,useEffect as a,cloneElement as c}from"react";import{u as p,o as l,f as h,s as n,a as s}from"./chunks/floating-ui.react-b048728e.js";import{Z as g,O as d}from"./chunks/index-e0185864.js";import{s as b}from"./chunks/style-inject.es-e87a8d02.js";import"react-dom";b(".yoopta-highlight-color-picker{--hcp-bg:#fff;--hcp-fg:#18181b;--hcp-muted:#71717a;--hcp-border:#e4e4e7;--hcp-ring:#3b82f6;--hcp-shadow:0 16px 48px -12px rgba(0,0,0,.18),0 4px 16px -4px rgba(0,0,0,.1);--hcp-radius:10px;--hcp-pad:10px;--hcp-gap:10px;--hcp-width:224px;--hcp-picker-height:120px;--hcp-preset-size:24px;--hcp-input-height:26px;background:var(--hcp-bg);border:1px solid var(--hcp-border);border-radius:var(--hcp-radius);box-shadow:var(--hcp-shadow);color:var(--hcp-fg);display:flex;flex-direction:column;gap:8px;outline:none;padding:var(--hcp-pad);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--hcp-width);z-index:9999}.dark .yoopta-highlight-color-picker,.yoopta-highlight-color-picker[data-theme=dark]{--hcp-bg:#18181b;--hcp-fg:#fafafa;--hcp-muted:#a1a1aa;--hcp-border:#3f3f46;--hcp-shadow:0 16px 48px -12px rgba(0,0,0,.5),0 4px 16px -4px rgba(0,0,0,.3)}.yoopta-highlight-color-picker__mode-toggle{background:var(--hcp-border);border-radius:8px;display:flex;flex-shrink:0;gap:4px;padding:4px}.yoopta-highlight-color-picker__mode-btn{background:transparent;border:none;border-radius:6px;color:var(--hcp-muted);cursor:pointer;flex:1;font-size:11px;font-weight:500;line-height:1.4;outline:none;padding:4px 8px;text-align:center;transition:background-color .12s ease,color .12s ease}.yoopta-highlight-color-picker__mode-btn:hover{color:var(--hcp-fg)}.yoopta-highlight-color-picker__mode-btn[data-active=true]{background:var(--hcp-bg);box-shadow:0 1px 2px rgba(0,0,0,.1);color:var(--hcp-fg)}.yoopta-highlight-color-picker__mode-btn:focus-visible{outline:2px solid var(--hcp-ring);outline-offset:2px}.yoopta-highlight-color-picker__react-colorful{height:var(--hcp-picker-height)!important;width:100%!important}.yoopta-highlight-color-picker__react-colorful .react-colorful__saturation{border:1px solid var(--hcp-border);border-radius:8px}.yoopta-highlight-color-picker__react-colorful .react-colorful__hue{border:1px solid var(--hcp-border);border-radius:999px;height:10px;margin-top:8px}.yoopta-highlight-color-picker__react-colorful .react-colorful__pointer{border:2px solid var(--hcp-bg);border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.22);height:16px;width:16px}.yoopta-highlight-color-picker__presets{align-items:center;display:flex;flex-direction:row;flex-wrap:nowrap;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-color:var(--hcp-border) transparent;scrollbar-width:thin}.yoopta-highlight-color-picker__presets::-webkit-scrollbar{height:6px}.yoopta-highlight-color-picker__presets::-webkit-scrollbar-track{background:transparent}.yoopta-highlight-color-picker__presets::-webkit-scrollbar-thumb{background-color:var(--hcp-border);border-radius:999px}.yoopta-highlight-color-picker__preset{border:2px solid var(--hcp-border);border-radius:7px;cursor:pointer;flex:0 0 auto;height:var(--hcp-preset-size);outline:none;padding:0;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;width:var(--hcp-preset-size)}.yoopta-highlight-color-picker__preset:hover{transform:scale(1.08)}.yoopta-highlight-color-picker__preset:focus-visible{border-color:var(--hcp-ring);box-shadow:0 0 0 2px var(--hcp-ring)}.yoopta-highlight-color-picker__preset[data-selected=true]{border-color:var(--hcp-ring);box-shadow:0 0 0 2px rgba(59,130,246,.35)}.yoopta-highlight-color-picker__hex-row{align-items:center;display:flex;gap:8px}.yoopta-highlight-color-picker__swatch{border:1px solid var(--hcp-border);border-radius:7px;flex:0 0 auto;height:var(--hcp-input-height);width:var(--hcp-input-height)}.yoopta-highlight-color-picker__hex-input{background:transparent;border:1px solid var(--hcp-border);border-radius:9px;color:var(--hcp-fg);flex:1;font-size:12px;height:var(--hcp-input-height);line-height:1;min-width:0;outline:none;padding:0 10px}.yoopta-highlight-color-picker__hex-input:focus{border-color:var(--hcp-ring);box-shadow:0 0 0 2px rgba(59,130,246,.25)}.yoopta-highlight-color-picker__hex-input::-moz-placeholder{color:var(--hcp-muted)}.yoopta-highlight-color-picker__hex-input::placeholder{color:var(--hcp-muted)}");const u=["#FFFF00","#FFE066","#FFCC99","#FF9999","#99CCFF","#99FF99","#FF99FF","#CC99FF"],x=t(({value:t={backgroundColor:"#FFFF00"},onChange:b,presets:x=u,showInput:k=!0,className:_,children:f,placement:m="bottom",offset:v=8},y)=>{const[w,C]=i(!1),[F,j]=i("backgroundColor"),[N,O]=i(t.backgroundColor),[z,E]=i(t.color),{refs:L,floatingStyles:P}=p({open:w,onOpenChange:C,placement:m,middleware:[l(v),h(),n()],whileElementsMounted:s});a(()=>{t.backgroundColor&&O(t.backgroundColor),t.color&&E(t.color)},[t]),a(()=>{if(!w)return;const o=o=>{const r=o.target,e=L.reference.current,t=L.floating.current;e&&e instanceof Element&&e.contains(r)||(null==t?void 0:t.contains(r))||C(!1)};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[w,L.floating,L.reference]);const B=o=>{"backgroundColor"===F?(O(o),null==b||b(Object.assign(Object.assign({},t),{backgroundColor:o}))):(E(o),null==b||b(Object.assign(Object.assign({},t),{color:o})))},M="backgroundColor"===F?N:z,S=c(f,{ref:L.setReference,onClick:o=>{var r,e;o.stopPropagation(),C(o=>!o),null===(e=(r=f.props).onClick)||void 0===e||e.call(r,o)}});return o(r,{children:[S,w&&o("div",Object.assign({ref:o=>{L.setFloating(o),y&&("function"==typeof y?y(o):y.current=o)},style:P,className:`yoopta-highlight-color-picker ${null!=_?_:""}`,onClick:o=>o.stopPropagation(),onMouseDown:o=>o.stopPropagation()},{children:[o("div",Object.assign({className:"yoopta-highlight-color-picker__mode-toggle"},{children:[e("button",Object.assign({type:"button",className:"yoopta-highlight-color-picker__mode-btn","data-active":"backgroundColor"===F,onClick:()=>j("backgroundColor"),"aria-label":"Background color"},{children:"Background"})),e("button",Object.assign({type:"button",className:"yoopta-highlight-color-picker__mode-btn","data-active":"color"===F,onClick:()=>j("color"),"aria-label":"Text color"},{children:"Text"}))]})),e("div",Object.assign({className:"yoopta-highlight-color-picker__picker"},{children:e(g,{color:M,onChange:B,className:"yoopta-highlight-color-picker__react-colorful"})})),x.length>0&&e("div",Object.assign({className:"yoopta-highlight-color-picker__presets"},{children:x.map(o=>{const r=(null==M?void 0:M.toLowerCase())===o.toLowerCase();return e("button",{type:"button",className:"yoopta-highlight-color-picker__preset","data-selected":r,style:{backgroundColor:o},onClick:()=>B(o),"aria-label":`Select color ${o}`},o)})})),k&&o("div",Object.assign({className:"yoopta-highlight-color-picker__hex-row"},{children:[e("div",{className:"yoopta-highlight-color-picker__swatch",style:{backgroundColor:M}}),e(d,{color:M,onChange:B,className:"yoopta-highlight-color-picker__hex-input",prefixed:!0})]}))]}))]})});x.displayName="HighlightColorPicker";export{x as HighlightColorPicker};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{SlashCommandMenu}from"./slash-command-menu.js";export{ElementOptions,useElementOptions,useElementOptionsContext,useUpdateElementProps}from"./element-options.js";export{FloatingBlockActions}from"./floating-block-actions.js";export{BlockOptions,useBlockActions,useBlockOptionsContext}from"./block-options.js";export{FloatingToolbar}from"./floating-toolbar.js";export{ActionMenuList}from"./action-menu-list.js";export{Portal}from"./portal.js";export{Overlay}from"./overlay.js";export{
|
|
1
|
+
export{SlashCommandMenu}from"./slash-command-menu.js";export{ElementOptions,useElementOptions,useElementOptionsContext,useUpdateElementProps}from"./element-options.js";export{FloatingBlockActions}from"./floating-block-actions.js";export{BlockOptions,useBlockActions,useBlockOptionsContext}from"./block-options.js";export{FloatingToolbar}from"./floating-toolbar.js";export{ActionMenuList}from"./action-menu-list.js";export{Portal}from"./portal.js";export{Overlay}from"./overlay.js";export{HighlightColorPicker}from"./highlight-color-picker.js";export{SelectionBox,useRectangeSelectionBox}from"./selection-box.js";export{BlockDndContext,DragHandle,SortableBlock,getOrderedBlockIds,useBlockDnd,useBlockDndContext}from"./block-dnd.js";import"react/jsx-runtime";import"react";import"@yoopta/editor";import"./chunks/floating-ui.react-b048728e.js";import"react-dom";import"./chunks/style-inject.es-e87a8d02.js";import"./chunks/index-e0185864.js";import"./chunks/_tslib-5e145dfd.js";import"./chunks/throttle-dea4a39e.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yoopta/ui",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
3
|
+
"version": "6.0.0-beta.15",
|
|
4
4
|
"description": "UI components for Yoopta Editor",
|
|
5
5
|
"author": "Darginec05 <devopsbanda@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/Darginec05/Yoopta-Editor#readme",
|
|
@@ -118,8 +118,7 @@
|
|
|
118
118
|
"lucide-react": "^0.294.0",
|
|
119
119
|
"react-colorful": "^5.6.1",
|
|
120
120
|
"tailwind-merge": "^2.0.0",
|
|
121
|
-
"use-debounce": "^10.0.0"
|
|
122
|
-
"zustand": "^4.5.0"
|
|
121
|
+
"use-debounce": "^10.0.0"
|
|
123
122
|
},
|
|
124
123
|
"publishConfig": {
|
|
125
124
|
"registry": "https://registry.npmjs.org",
|
|
@@ -138,5 +137,5 @@
|
|
|
138
137
|
"bugs": {
|
|
139
138
|
"url": "https://github.com/Darginec05/Yoopta-Editor/issues"
|
|
140
139
|
},
|
|
141
|
-
"gitHead": "
|
|
140
|
+
"gitHead": "c21b520a04123c02742c1c2a494d9ba9ef2ff558"
|
|
142
141
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-menu-list.js","sources":["../src/action-menu-list/context.tsx","../src/action-menu-list/utils.ts","../src/action-menu-list/action-menu-list.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { ActionMenuItem } from './types';\n\nexport type ActionMenuListContextValue = {\n /** Whether menu is open */\n isOpen: boolean;\n /** Current view mode */\n view: 'small' | 'default';\n /** Available actions from editor plugins */\n actions: ActionMenuItem[];\n /** Currently selected/hovered action */\n selectedAction: ActionMenuItem | null;\n /** Select an action (hover) */\n setSelectedAction: (action: ActionMenuItem) => void;\n /** Execute action (toggle block) */\n onSelect: (type: string) => void;\n /** Close the menu */\n close: () => void;\n /** Floating styles for positioning */\n floatingStyles: CSSProperties;\n /** Ref setter for floating element */\n setFloatingRef: (node: HTMLElement | null) => void;\n};\n\nexport const ActionMenuListContext = createContext<ActionMenuListContextValue | null>(null);\n\nexport const useActionMenuListContext = () => {\n const context = useContext(ActionMenuListContext);\n\n if (!context) {\n throw new Error('ActionMenuList components must be used within <ActionMenuList>');\n }\n\n return context;\n};\n","import { Blocks, getAllowedPluginsFromElement, getRootBlockElement } from '@yoopta/editor';\nimport type { Plugin, SlateElement, YooEditor, YooptaBlock, YooptaBlockData } from '@yoopta/editor';\n\nimport type { ActionMenuItem } from './types';\n\nconst filterBy = (\n item: YooptaBlockData | YooptaBlock['options'],\n text: string,\n field: string,\n): boolean => {\n if (!item || typeof item[field] === 'undefined') return false;\n\n const value = item[field];\n const searchText = text.toLowerCase().trim();\n\n if (Array.isArray(value)) {\n return value\n .filter(Boolean)\n .map((v) => String(v).toLowerCase())\n .some((v) => v.includes(searchText));\n }\n\n return String(value).toLowerCase().includes(searchText);\n};\n\nexport const filterActionMenuItems = (\n blockPlugin: Plugin<Record<string, SlateElement>, unknown>,\n searchText: string,\n): boolean => {\n if (!searchText.trim()) return true;\n if (!blockPlugin) return false;\n\n const searchTerms = searchText.toLowerCase().split(/\\s+/);\n\n return searchTerms.every((term) => {\n const typeMatch = filterBy(blockPlugin, term, 'type');\n if (typeMatch) return true;\n\n const titleMatch =\n blockPlugin.options?.display && filterBy(blockPlugin.options.display, term, 'title');\n if (titleMatch) return true;\n\n const shortcutMatch = blockPlugin.options && filterBy(blockPlugin.options, term, 'shortcuts');\n if (shortcutMatch) return true;\n\n const descriptionMatch =\n blockPlugin.options?.display && filterBy(blockPlugin.options.display, term, 'description');\n if (descriptionMatch) return true;\n\n return false;\n });\n};\n\nexport function mapActionMenuItems(editor: YooEditor): ActionMenuItem[] {\n const items: string[] | ActionMenuItem[] = Object.keys(editor.plugins);\n // Check if we're inside an element with injectElementsFromPlugins\n let injectElementsFromPlugins: string[] | null = null;\n\n if (typeof editor.path.current === 'number') {\n const slate = Blocks.getBlockSlate(editor, { at: editor.path.current });\n if (slate) {\n injectElementsFromPlugins = getAllowedPluginsFromElement(editor, slate);\n }\n }\n\n // Filter items based on injectElementsFromPlugins\n let filteredItems = items;\n\n if (injectElementsFromPlugins && injectElementsFromPlugins.length > 0) {\n if (typeof items[0] === 'string') {\n filteredItems = (items as string[]).filter((item) =>\n injectElementsFromPlugins!.includes(item),\n );\n } else {\n filteredItems = items.filter((item) => injectElementsFromPlugins!.includes(item.type));\n }\n }\n\n return filteredItems.map((item: string | ActionMenuItem) => {\n if (typeof item === 'string') {\n const title = editor.plugins[item].options?.display?.title || item;\n const description = editor.plugins[item].options?.display?.description;\n const icon = editor.plugins[item].options?.display?.icon;\n return { type: item, title, description, icon };\n }\n return item;\n });\n}\n\nexport function filterToggleActions(editor: YooEditor, type: string) {\n const block = editor.plugins[type];\n if (!block) return false;\n\n const rootBlock = getRootBlockElement(block.elements);\n if (rootBlock?.props?.nodeType === 'void') return false;\n return true;\n}\n\nexport function isSlashPressed(event: KeyboardEvent): boolean {\n return (\n event.key === '/' ||\n event.keyCode === 191 ||\n event.which === 191 ||\n event.code === 'Slash' ||\n event.key === '/' ||\n (event.key === '.' && event.shiftKey)\n );\n}\n","import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';\nimport { cloneElement, forwardRef, isValidElement, useCallback, useMemo, useState } from 'react';\nimport type { Placement } from '@floating-ui/react';\nimport { autoUpdate, flip, offset, shift, useFloating, useMergeRefs, useTransitionStyles } from '@floating-ui/react';\nimport { getRootBlockElement, useYooptaEditor } from '@yoopta/editor';\n\nimport { ActionMenuListContext, useActionMenuListContext } from './context';\nimport type { ActionMenuItem } from './types';\nimport { filterToggleActions, mapActionMenuItems } from './utils';\nimport { Overlay } from '../overlay';\nimport { Portal } from '../portal';\nimport './action-menu-list.css';\n\ntype ActionMenuListApi = {\n /** Available actions from editor plugins */\n actions: ActionMenuItem[];\n /** Currently selected action */\n selectedAction: ActionMenuItem | null;\n /** Execute action (toggle block type) */\n onSelect: (type: string) => void;\n /** Whether actions list is empty */\n empty: boolean;\n};\n\ntype ActionMenuListRootProps = {\n children: ReactNode | ((api: ActionMenuListApi) => ReactNode);\n /** Controlled open state */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Default open state for uncontrolled usage */\n defaultOpen?: boolean;\n /** Anchor element for positioning */\n anchor?: HTMLElement | null;\n /** View mode - 'small' for compact, 'default' for full */\n view?: 'small' | 'default';\n /** Placement relative to anchor */\n placement?: Placement;\n className?: string;\n};\n\nconst ActionMenuListRoot = ({\n children,\n open: controlledOpen,\n onOpenChange: controlledOnOpenChange,\n defaultOpen = false,\n anchor = null,\n view = 'default',\n placement = 'bottom-start',\n className = '',\n}: ActionMenuListRootProps) => {\n const editor = useYooptaEditor();\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : uncontrolledOpen;\n\n // Get available actions from editor plugins\n const actions = useMemo(\n () => mapActionMenuItems(editor).filter((item) => filterToggleActions(editor, item.type)).filter(item => {\n const plugin = editor.plugins[item.type];\n const rootElement = getRootBlockElement(plugin.elements);\n return rootElement?.props?.nodeType !== 'inline' && rootElement?.props?.nodeType !== 'inlineVoid' && rootElement?.props?.nodeType !== 'void';\n }),\n [editor],\n );\n\n const [selectedAction, setSelectedAction] = useState<ActionMenuItem | null>(actions[0] ?? null);\n\n // Floating UI setup\n const { refs, floatingStyles, context } = useFloating({\n elements: { reference: anchor },\n placement,\n open: isOpen,\n middleware: [flip(), shift(), offset(10)],\n whileElementsMounted: autoUpdate,\n });\n\n const { isMounted, styles: transitionStyles } = useTransitionStyles(context, {\n duration: 100,\n });\n\n // Combined styles with view-specific width\n const combinedStyles: CSSProperties = useMemo(\n () => ({\n ...floatingStyles,\n ...transitionStyles,\n minWidth: view === 'small' ? 200 : 244,\n }),\n [floatingStyles, transitionStyles, view],\n );\n\n // Close menu\n const close = useCallback(() => {\n if (!isControlled) {\n setUncontrolledOpen(false);\n }\n controlledOnOpenChange?.(false);\n setSelectedAction(actions[0] ?? null);\n }, [isControlled, controlledOnOpenChange, actions]);\n\n const onSelect = useCallback(\n (type: string) => {\n if (Array.isArray(editor.path.selected) && editor.path.selected.length > 0) {\n editor.batchOperations(() => {\n editor.path.selected!.forEach((selected) => {\n editor.toggleBlock(type, { preserveContent: true, focus: true, at: selected });\n });\n });\n } else {\n editor.toggleBlock(type, { preserveContent: true, focus: true, at: editor.path.current });\n }\n\n close();\n },\n [editor, close],\n );\n\n // Context value\n const contextValue = useMemo(\n () => ({\n isOpen: isMounted,\n view,\n actions,\n selectedAction,\n setSelectedAction,\n onSelect,\n close,\n floatingStyles: combinedStyles,\n setFloatingRef: refs.setFloating,\n }),\n [isMounted, view, actions, selectedAction, onSelect, close, combinedStyles, refs.setFloating],\n );\n\n // API for render props\n const api: ActionMenuListApi = {\n actions,\n selectedAction,\n onSelect,\n empty: actions.length === 0,\n };\n\n // Render props or regular children\n const content = typeof children === 'function' ? children(api) : children;\n\n return (\n <ActionMenuListContext.Provider value={contextValue}>\n <div className={className}>{content}</div>\n </ActionMenuListContext.Provider>\n );\n};\n\nActionMenuListRoot.displayName = 'ActionMenuList';\n\ntype ActionMenuListContentProps = {\n children?: ReactNode;\n className?: string;\n} & HTMLAttributes<HTMLDivElement>;\n\nconst ActionMenuListContent = forwardRef<HTMLDivElement, ActionMenuListContentProps>(\n ({ children, className = '', ...props }, forwardedRef) => {\n const { isOpen, floatingStyles, setFloatingRef, actions, selectedAction, setSelectedAction, onSelect, view, close } =\n useActionMenuListContext();\n const mergedRef = useMergeRefs([forwardedRef, setFloatingRef]);\n\n if (!isOpen) return null;\n\n // Auto-generate items if no children provided\n const content =\n children ??\n (actions.length === 0 ? (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ActionMenuListEmpty />\n ) : (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ActionMenuListGroup>\n {actions.map((action) => (\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n <ActionMenuListItem\n key={action.type}\n action={action}\n selected={action.type === selectedAction?.type}\n onMouseEnter={() => setSelectedAction(action)}\n onClick={() => onSelect(action.type)}\n />\n ))}\n </ActionMenuListGroup>\n ));\n\n return (\n <Portal id=\"yoopta-ui-action-menu-list-portal\">\n <Overlay lockScroll={false} onClick={close} className=\"yoopta-ui-action-menu-list-overlay\">\n <div\n ref={mergedRef}\n role=\"listbox\"\n tabIndex={0}\n className={`yoopta-ui-action-menu-list-content yoopta-ui-action-menu-list-${view} ${className}`}\n style={floatingStyles}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {content}\n </div>\n </Overlay>\n </Portal>\n );\n },\n);\n\nActionMenuListContent.displayName = 'ActionMenuList.Content';\n\ntype ActionMenuListGroupProps = HTMLAttributes<HTMLDivElement>;\n\nconst ActionMenuListGroup = forwardRef<HTMLDivElement, ActionMenuListGroupProps>(\n ({ children, className = '', ...props }, ref) => (\n <div ref={ref} className={`yoopta-ui-action-menu-list-group ${className}`} {...props}>\n {children}\n </div>\n ),\n);\n\nActionMenuListGroup.displayName = 'ActionMenuList.Group';\n\ntype ActionMenuListItemProps = HTMLAttributes<HTMLButtonElement> & {\n action?: ActionMenuItem;\n selected?: boolean;\n icon?: string | ReactNode;\n};\n\nconst ActionMenuListItem = forwardRef<HTMLButtonElement, ActionMenuListItemProps>(\n ({ action, selected, icon: iconProp, className = '', children, ...props }, ref) => {\n const renderIcon = (icon: unknown) => {\n if (!icon) return null;\n\n if (typeof icon === 'string') {\n return <img src={icon} alt=\"icon\" />;\n }\n\n if (isValidElement(icon)) {\n return cloneElement(icon as React.ReactElement);\n }\n\n const IconComponent = icon as React.ComponentType;\n return <IconComponent />;\n };\n\n const iconToRender = iconProp ?? action?.icon;\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={`yoopta-ui-action-menu-list-item ${selected ? 'selected' : ''} ${className}`}\n data-action-menu-item-type={action?.type}\n data-selected={selected}\n aria-pressed={selected}\n {...props}\n >\n {action && (\n <>\n {iconToRender && <div className=\"yoopta-ui-action-menu-list-item-icon\">{renderIcon(iconToRender)}</div>}\n <div className=\"yoopta-ui-action-menu-list-item-content\">\n <div className=\"yoopta-ui-action-menu-list-item-title\">{action?.title}</div>\n {action?.description && <div className=\"yoopta-ui-action-menu-list-item-description\">{action?.description}</div>}\n </div>\n </>\n )}\n {children}\n </button>\n );\n },\n);\n\nActionMenuListItem.displayName = 'ActionMenuList.Item';\n\ntype ActionMenuListEmptyProps = HTMLAttributes<HTMLDivElement>;\n\nconst ActionMenuListEmpty = forwardRef<HTMLDivElement, ActionMenuListEmptyProps>(\n ({ children, className = '', ...props }, ref) => (\n <div ref={ref} className={`yoopta-ui-action-menu-list-empty ${className}`} {...props}>\n {children ?? 'No actions available'}\n </div>\n ),\n);\n\nActionMenuListEmpty.displayName = 'ActionMenuList.Empty';\n\nexport const ActionMenuList = Object.assign(ActionMenuListRoot, {\n Root: ActionMenuListRoot,\n Content: ActionMenuListContent,\n Group: ActionMenuListGroup,\n Item: ActionMenuListItem,\n Empty: ActionMenuListEmpty,\n});\n\nexport type {\n ActionMenuListRootProps,\n ActionMenuListContentProps,\n ActionMenuListGroupProps,\n ActionMenuListItemProps,\n ActionMenuListEmptyProps,\n ActionMenuListApi,\n};\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|