@yoopta/ui 6.0.0-beta.2 → 6.0.0-beta.20

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 (173) hide show
  1. package/dist/action-menu-list/action-menu-list.d.ts +49 -13
  2. package/dist/action-menu-list/action-menu-list.d.ts.map +1 -1
  3. package/dist/action-menu-list/context.d.ts +27 -0
  4. package/dist/action-menu-list/context.d.ts.map +1 -0
  5. package/dist/action-menu-list/index.d.ts +5 -5
  6. package/dist/action-menu-list/index.d.ts.map +1 -1
  7. package/dist/action-menu-list.js +1 -0
  8. package/dist/block-dnd/block-dnd-context.d.ts +5 -0
  9. package/dist/block-dnd/block-dnd-context.d.ts.map +1 -0
  10. package/dist/block-dnd/drag-handle.d.ts +4 -0
  11. package/dist/block-dnd/drag-handle.d.ts.map +1 -0
  12. package/dist/block-dnd/index.d.ts +7 -0
  13. package/dist/block-dnd/index.d.ts.map +1 -0
  14. package/dist/block-dnd/sortable-block.d.ts +3 -0
  15. package/dist/block-dnd/sortable-block.d.ts.map +1 -0
  16. package/dist/block-dnd/types.d.ts +78 -0
  17. package/dist/block-dnd/types.d.ts.map +1 -0
  18. package/dist/block-dnd/use-block-dnd.d.ts +29 -0
  19. package/dist/block-dnd/use-block-dnd.d.ts.map +1 -0
  20. package/dist/block-dnd.js +7 -0
  21. package/dist/block-options/block-options.d.ts +61 -8
  22. package/dist/block-options/block-options.d.ts.map +1 -1
  23. package/dist/block-options/context.d.ts +11 -0
  24. package/dist/block-options/context.d.ts.map +1 -0
  25. package/dist/block-options/hooks.d.ts +14 -894
  26. package/dist/block-options/hooks.d.ts.map +1 -1
  27. package/dist/block-options/index.d.ts +2 -3
  28. package/dist/block-options/index.d.ts.map +1 -1
  29. package/dist/block-options.js +1 -0
  30. package/dist/chunks/_tslib-29461875.js +1 -0
  31. package/dist/chunks/createLucideIcon-8605f860.js +13 -0
  32. package/dist/chunks/debounce-c595d128.js +1 -0
  33. package/dist/chunks/floating-ui.react-993d5ee4.js +5 -0
  34. package/dist/chunks/floating-ui.react-dom-59d096f1.js +1 -0
  35. package/dist/chunks/style-inject.es-e87a8d02.js +1 -0
  36. package/dist/chunks/throttle-dea4a39e.js +1 -0
  37. package/dist/element-options/components/element-options-color-picker.d.ts +6 -0
  38. package/dist/element-options/components/element-options-color-picker.d.ts.map +1 -0
  39. package/dist/element-options/components/element-options-content.d.ts +6 -0
  40. package/dist/element-options/components/element-options-content.d.ts.map +1 -0
  41. package/dist/element-options/components/element-options-group.d.ts +6 -0
  42. package/dist/element-options/components/element-options-group.d.ts.map +1 -0
  43. package/dist/element-options/components/element-options-input.d.ts +6 -0
  44. package/dist/element-options/components/element-options-input.d.ts.map +1 -0
  45. package/dist/element-options/components/element-options-label.d.ts +6 -0
  46. package/dist/element-options/components/element-options-label.d.ts.map +1 -0
  47. package/dist/element-options/components/element-options-root.d.ts +6 -0
  48. package/dist/element-options/components/element-options-root.d.ts.map +1 -0
  49. package/dist/element-options/components/element-options-select.d.ts +6 -0
  50. package/dist/element-options/components/element-options-select.d.ts.map +1 -0
  51. package/dist/element-options/components/element-options-separator.d.ts +6 -0
  52. package/dist/element-options/components/element-options-separator.d.ts.map +1 -0
  53. package/dist/element-options/components/element-options-slider.d.ts +6 -0
  54. package/dist/element-options/components/element-options-slider.d.ts.map +1 -0
  55. package/dist/element-options/components/element-options-toggle.d.ts +6 -0
  56. package/dist/element-options/components/element-options-toggle.d.ts.map +1 -0
  57. package/dist/element-options/components/element-options-trigger.d.ts +6 -0
  58. package/dist/element-options/components/element-options-trigger.d.ts.map +1 -0
  59. package/dist/element-options/context/element-options-context.d.ts +13 -0
  60. package/dist/element-options/context/element-options-context.d.ts.map +1 -0
  61. package/dist/element-options/index.d.ts +64 -0
  62. package/dist/element-options/index.d.ts.map +1 -0
  63. package/dist/element-options/types.d.ts +94 -0
  64. package/dist/element-options/types.d.ts.map +1 -0
  65. package/dist/element-options.js +14 -0
  66. package/dist/floating-block-actions/context.d.ts +15 -0
  67. package/dist/floating-block-actions/context.d.ts.map +1 -0
  68. package/dist/floating-block-actions/floating-block-actions.d.ts +30 -6
  69. package/dist/floating-block-actions/floating-block-actions.d.ts.map +1 -1
  70. package/dist/floating-block-actions/hooks.d.ts +1 -29
  71. package/dist/floating-block-actions/hooks.d.ts.map +1 -1
  72. package/dist/floating-block-actions/index.d.ts +3 -4
  73. package/dist/floating-block-actions/index.d.ts.map +1 -1
  74. package/dist/floating-block-actions.js +1 -1
  75. package/dist/floating-toolbar/context.d.ts +12 -0
  76. package/dist/floating-toolbar/context.d.ts.map +1 -0
  77. package/dist/floating-toolbar/floating-toolbar.d.ts +44 -0
  78. package/dist/floating-toolbar/floating-toolbar.d.ts.map +1 -0
  79. package/dist/floating-toolbar/index.d.ts +5 -0
  80. package/dist/floating-toolbar/index.d.ts.map +1 -0
  81. package/dist/floating-toolbar.js +1 -0
  82. package/dist/highlight-color-picker/highlight-color-picker.d.ts +1 -0
  83. package/dist/highlight-color-picker/highlight-color-picker.d.ts.map +1 -1
  84. package/dist/highlight-color-picker/index.d.ts +0 -1
  85. package/dist/highlight-color-picker/index.d.ts.map +1 -1
  86. package/dist/highlight-color-picker.js +1 -0
  87. package/dist/index.d.ts +10 -6
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +1 -5
  90. package/dist/overlay.js +1 -0
  91. package/dist/portal/Portal.d.ts +1 -1
  92. package/dist/portal/Portal.d.ts.map +1 -1
  93. package/dist/portal.js +1 -0
  94. package/dist/selection-box/SelectionBox.d.ts +19 -0
  95. package/dist/selection-box/SelectionBox.d.ts.map +1 -0
  96. package/dist/selection-box/hooks.d.ts +7 -0
  97. package/dist/selection-box/hooks.d.ts.map +1 -0
  98. package/dist/selection-box/index.d.ts +4 -0
  99. package/dist/selection-box/index.d.ts.map +1 -0
  100. package/dist/selection-box.js +1 -0
  101. package/dist/slash-command-menu/components/{SlashCommandContent.d.ts → slash-command-content.d.ts} +1 -1
  102. package/dist/slash-command-menu/components/slash-command-content.d.ts.map +1 -0
  103. package/dist/slash-command-menu/components/{SlashCommandEmpty.d.ts → slash-command-empty.d.ts} +1 -1
  104. package/dist/slash-command-menu/components/slash-command-empty.d.ts.map +1 -0
  105. package/dist/slash-command-menu/components/{SlashCommandFooter.d.ts → slash-command-footer.d.ts} +1 -1
  106. package/dist/slash-command-menu/components/slash-command-footer.d.ts.map +1 -0
  107. package/dist/slash-command-menu/components/{SlashCommandGroup.d.ts → slash-command-group.d.ts} +1 -1
  108. package/dist/slash-command-menu/components/slash-command-group.d.ts.map +1 -0
  109. package/dist/slash-command-menu/components/{SlashCommandInput.d.ts → slash-command-input.d.ts} +1 -1
  110. package/dist/slash-command-menu/components/slash-command-input.d.ts.map +1 -0
  111. package/dist/slash-command-menu/components/{SlashCommandItem.d.ts → slash-command-item.d.ts} +1 -1
  112. package/dist/slash-command-menu/components/slash-command-item.d.ts.map +1 -0
  113. package/dist/slash-command-menu/components/{SlashCommandList.d.ts → slash-command-list.d.ts} +1 -1
  114. package/dist/slash-command-menu/components/slash-command-list.d.ts.map +1 -0
  115. package/dist/slash-command-menu/components/{SlashCommandLoading.d.ts → slash-command-loading.d.ts} +1 -1
  116. package/dist/slash-command-menu/components/slash-command-loading.d.ts.map +1 -0
  117. package/dist/slash-command-menu/components/{SlashCommandRoot.d.ts → slash-command-root.d.ts} +1 -1
  118. package/dist/slash-command-menu/components/slash-command-root.d.ts.map +1 -0
  119. package/dist/slash-command-menu/components/{SlashCommandSeparator.d.ts → slash-command-separator.d.ts} +1 -1
  120. package/dist/slash-command-menu/components/slash-command-separator.d.ts.map +1 -0
  121. package/dist/slash-command-menu/constants.d.ts.map +1 -1
  122. package/dist/slash-command-menu/context/{SlashCommandContext.d.ts → slash-command-context.d.ts} +1 -1
  123. package/dist/slash-command-menu/context/slash-command-context.d.ts.map +1 -0
  124. package/dist/slash-command-menu/index.d.ts +32 -33
  125. package/dist/slash-command-menu/index.d.ts.map +1 -1
  126. package/dist/slash-command-menu.js +1 -0
  127. package/dist/utils/debounce.d.ts +5 -0
  128. package/dist/utils/debounce.d.ts.map +1 -0
  129. package/package.json +93 -9
  130. package/dist/action-menu-list/hooks.d.ts +0 -912
  131. package/dist/action-menu-list/hooks.d.ts.map +0 -1
  132. package/dist/action-menu-list/store.d.ts +0 -22
  133. package/dist/action-menu-list/store.d.ts.map +0 -1
  134. package/dist/action-menu-list/store.test.d.ts +0 -2
  135. package/dist/action-menu-list/store.test.d.ts.map +0 -1
  136. package/dist/block-options/store.d.ts +0 -15
  137. package/dist/block-options/store.d.ts.map +0 -1
  138. package/dist/block-options/store.test.d.ts +0 -2
  139. package/dist/block-options/store.test.d.ts.map +0 -1
  140. package/dist/floating-block-actions/store.d.ts +0 -19
  141. package/dist/floating-block-actions/store.d.ts.map +0 -1
  142. package/dist/floating-block-actions/store.test.d.ts +0 -2
  143. package/dist/floating-block-actions/store.test.d.ts.map +0 -1
  144. package/dist/index-16ebe43d.js +0 -10
  145. package/dist/slash-command-menu/components/SlashCommandContent.d.ts.map +0 -1
  146. package/dist/slash-command-menu/components/SlashCommandEmpty.d.ts.map +0 -1
  147. package/dist/slash-command-menu/components/SlashCommandFooter.d.ts.map +0 -1
  148. package/dist/slash-command-menu/components/SlashCommandGroup.d.ts.map +0 -1
  149. package/dist/slash-command-menu/components/SlashCommandInput.d.ts.map +0 -1
  150. package/dist/slash-command-menu/components/SlashCommandItem.d.ts.map +0 -1
  151. package/dist/slash-command-menu/components/SlashCommandList.d.ts.map +0 -1
  152. package/dist/slash-command-menu/components/SlashCommandLoading.d.ts.map +0 -1
  153. package/dist/slash-command-menu/components/SlashCommandRoot.d.ts.map +0 -1
  154. package/dist/slash-command-menu/components/SlashCommandSeparator.d.ts.map +0 -1
  155. package/dist/slash-command-menu/context/SlashCommandContext.d.ts.map +0 -1
  156. package/dist/theme/ThemeProvider.d.ts +0 -16
  157. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  158. package/dist/theme/ThemeToggle.d.ts +0 -6
  159. package/dist/theme/ThemeToggle.d.ts.map +0 -1
  160. package/dist/theme/index.d.ts +0 -5
  161. package/dist/theme/index.d.ts.map +0 -1
  162. package/dist/theme/useTheme.d.ts +0 -8
  163. package/dist/theme/useTheme.d.ts.map +0 -1
  164. package/dist/toolbar/hooks.d.ts +0 -879
  165. package/dist/toolbar/hooks.d.ts.map +0 -1
  166. package/dist/toolbar/index.d.ts +0 -6
  167. package/dist/toolbar/index.d.ts.map +0 -1
  168. package/dist/toolbar/store.d.ts +0 -12
  169. package/dist/toolbar/store.d.ts.map +0 -1
  170. package/dist/toolbar/store.test.d.ts +0 -2
  171. package/dist/toolbar/store.test.d.ts.map +0 -1
  172. package/dist/toolbar/toolbar.d.ts +0 -20
  173. package/dist/toolbar/toolbar.d.ts.map +0 -1
@@ -0,0 +1,14 @@
1
+ import{s as e}from"./chunks/style-inject.es-e87a8d02.js";import{jsx as t,jsxs as n,Fragment as o}from"react/jsx-runtime";import*as r from"react";import a,{useState as i,useRef as s,useEffect as l,useMemo as c,useCallback as d,createContext as u,useContext as p}from"react";import*as f from"react-dom";import m from"react-dom";import{u as h,j as v,o as g,s as y,n as b,l as w,m as x,p as S,q as C}from"./chunks/floating-ui.react-dom-59d096f1.js";import{_ as E,a as k,b as P}from"./chunks/_tslib-29461875.js";import{useYooptaEditor as R,Elements as O}from"@yoopta/editor";import{d as N,Z as D,O as _}from"./chunks/debounce-c595d128.js";import{c as M}from"./chunks/createLucideIcon-8605f860.js";function A(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e?.(o),!1===n||!o.defaultPrevented)return t?.(o)}}function T(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function I(...e){return t=>{let n=!1;const o=e.map(e=>{const o=T(e,t);return n||"function"!=typeof o||(n=!0),o});if(n)return()=>{for(let t=0;t<o.length;t++){const n=o[t];"function"==typeof n?n():T(e[t],null)}}}}function L(...e){return r.useCallback(I(...e),e)}function F(e,n=[]){let o=[];const a=()=>{const t=o.map(e=>r.createContext(e));return function(n){const o=n?.[e]||t;return r.useMemo(()=>({[`__scope${e}`]:{...n,[e]:o}}),[n,o])}};return a.scopeName=e,[function(n,a){const i=r.createContext(a),s=o.length;o=[...o,a];const l=n=>{const{scope:o,children:a,...l}=n,c=o?.[e]?.[s]||i,d=r.useMemo(()=>l,Object.values(l));return t(c.Provider,{value:d,children:a})};return l.displayName=n+"Provider",[l,function(t,o){const l=o?.[e]?.[s]||i,c=r.useContext(l);if(c)return c;if(void 0!==a)return a;throw new Error(`\`${t}\` must be used within \`${n}\``)}]},j(a,...n)]}function j(...e){const t=e[0];if(1===e.length)return t;const n=()=>{const n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){const o=n.reduce((t,{useScope:n,scopeName:o})=>({...t,...n(e)[`__scope${o}`]}),{});return r.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function z(e){const n=W(e),o=r.forwardRef((e,o)=>{const{children:a,...i}=e,s=r.Children.toArray(a),l=s.find(H);if(l){const e=l.props.children,a=s.map(t=>t===l?r.Children.count(e)>1?r.Children.only(null):r.isValidElement(e)?e.props.children:null:t);return t(n,{...i,ref:o,children:r.isValidElement(e)?r.cloneElement(e,void 0,a):null})}return t(n,{...i,ref:o,children:a})});return o.displayName=`${e}.Slot`,o}function W(e){const t=r.forwardRef((e,t)=>{const{children:n,...o}=e;if(r.isValidElement(n)){const e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;if(n)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(n),a=function(e,t){const n={...t};for(const o in t){const r=e[o],a=t[o];/^on[A-Z]/.test(o)?r&&a?n[o]=(...e)=>{const t=a(...e);return r(...e),t}:r&&(n[o]=r):"style"===o?n[o]={...r,...a}:"className"===o&&(n[o]=[r,a].filter(Boolean).join(" "))}return{...e,...n}}(o,n.props);return n.type!==r.Fragment&&(a.ref=t?I(t,e):e),r.cloneElement(n,a)}return r.Children.count(n)>1?r.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}e(":root{--yoopta-ui-background:0 0% 100%;--yoopta-ui-foreground:222.2 84% 4.9%;--yoopta-ui-muted:210 40% 96.1%;--yoopta-ui-muted-foreground:215.4 16.3% 46.9%;--yoopta-ui-border:214.3 31.8% 91.4%;--yoopta-ui-ring:222.2 84% 4.9%;--yoopta-ui-accent:210 40% 96.1%;--yoopta-ui-accent-foreground:222.2 47.4% 11.2%;--yoopta-ui-primary:221.2 83.2% 53.3%;--yoopta-ui-primary-foreground:210 40% 98%;--yoopta-ui-destructive:0 84.2% 60.2%;--yoopta-ui-destructive-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.18),0 4px 16px -4px rgba(0,0,0,.1);--yoopta-ui-radius-sm:0.375rem;--yoopta-ui-radius:0.5rem;--yoopta-ui-radius-lg:0.625rem;--yoopta-ui-z-dropdown:50;--yoopta-ui-z-sticky:100;--yoopta-ui-z-overlay:200;--yoopta-ui-z-modal:9999;--yoopta-ui-transition-fast:100ms ease;--yoopta-ui-transition:150ms ease;--yoopta-ui-transition-slow:200ms ease}.dark,[data-theme=dark],[data-yoopta-theme=dark]{--yoopta-ui-background:222.2 84% 4.9%;--yoopta-ui-foreground:210 40% 98%;--yoopta-ui-muted:217.2 32.6% 17.5%;--yoopta-ui-muted-foreground:215 20.2% 65.1%;--yoopta-ui-border:217.2 32.6% 17.5%;--yoopta-ui-ring:212.7 26.8% 83.9%;--yoopta-ui-accent:217.2 32.6% 17.5%;--yoopta-ui-accent-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.3);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -4px rgba(0,0,0,.3);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.5),0 4px 16px -4px rgba(0,0,0,.3)}:root{--yoopta-ui-element-options-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--yoopta-ui-element-options-content-min-width:180px;--yoopta-ui-element-options-content-padding:8px;--yoopta-ui-element-options-content-radius:0.5rem;--yoopta-ui-element-options-content-z-index:50;--yoopta-ui-element-options-trigger-padding:4px;--yoopta-ui-element-options-trigger-radius:4px;--yoopta-ui-element-options-trigger-icon-size:16px;--yoopta-ui-element-options-control-padding-y:6px;--yoopta-ui-element-options-control-padding-x:10px;--yoopta-ui-element-options-control-radius:6px;--yoopta-ui-element-options-control-font-size:13px;--yoopta-ui-element-options-toggle-width:36px;--yoopta-ui-element-options-toggle-height:20px;--yoopta-ui-element-options-toggle-thumb-size:16px;--yoopta-ui-element-options-transition:background-color 0.15s ease,border-color 0.15s ease,opacity 0.15s ease,transform 0.15s ease}[data-element-options-root]{position:relative}[data-element-options-trigger]{align-items:center;background:transparent;border:none;border-radius:var(--yoopta-ui-element-options-trigger-radius);cursor:pointer;display:inline-flex;justify-content:center;padding:var(--yoopta-ui-element-options-trigger-padding);transition:var(--yoopta-ui-element-options-transition)}[data-element-options-trigger]:hover{background-color:hsl(var(--yoopta-ui-accent))}[data-element-options-trigger]:focus-visible{outline:2px solid hsl(var(--yoopta-ui-ring)/.5);outline-offset:2px}[data-element-options-trigger] .yoopta-ui-element-options-trigger-icon{color:hsl(var(--yoopta-ui-muted-foreground));height:var(--yoopta-ui-element-options-trigger-icon-size);width:var(--yoopta-ui-element-options-trigger-icon-size)}[data-element-options-content]{background-color:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-element-options-content-radius);box-shadow:var(--yoopta-ui-element-options-shadow);min-width:var(--yoopta-ui-element-options-content-min-width);padding:var(--yoopta-ui-element-options-content-padding);z-index:var(--yoopta-ui-element-options-content-z-index)}[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:hsl(var(--yoopta-ui-muted-foreground));font-size:12px;font-weight:500}[data-element-options-separator]{background-color:hsl(var(--yoopta-ui-border));height:1px;margin:8px 0}[data-element-options-select]{align-items:center;background-color:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-element-options-control-radius);color:hsl(var(--yoopta-ui-foreground));cursor:pointer;display:flex;font-size:var(--yoopta-ui-element-options-control-font-size);justify-content:space-between;padding:var(--yoopta-ui-element-options-control-padding-y) var(--yoopta-ui-element-options-control-padding-x);transition:var(--yoopta-ui-element-options-transition);width:100%}[data-element-options-select]:hover{border-color:hsl(var(--yoopta-ui-muted-foreground))}[data-element-options-select]:focus-visible{outline:2px solid hsl(var(--yoopta-ui-ring)/.5);outline-offset:2px}[data-element-options-select-value]{align-items:center;display:flex;gap:8px}[data-element-options-select-chevron]{color:hsl(var(--yoopta-ui-muted-foreground));height:14px;transition:var(--yoopta-ui-element-options-transition);width:14px}[data-element-options-select][data-state=open] [data-element-options-select-chevron]{transform:rotate(180deg)}[data-element-options-select-content]{background-color:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-element-options-control-radius);box-shadow:var(--yoopta-ui-element-options-shadow);min-width:var(--radix-select-trigger-width,140px);padding:4px;z-index:calc(var(--yoopta-ui-element-options-content-z-index) + 1)}[data-element-options-select-item]{align-items:center;background:transparent;border:none;border-radius:4px;color:hsl(var(--yoopta-ui-foreground));cursor:pointer;display:flex;font-size:var(--yoopta-ui-element-options-control-font-size);justify-content:space-between;padding:var(--yoopta-ui-element-options-control-padding-y) 8px;text-align:left;transition:var(--yoopta-ui-element-options-transition);width:100%}[data-element-options-select-item]:hover{background-color:hsl(var(--yoopta-ui-accent))}[data-element-options-select-item][data-selected=true]{background-color:hsl(var(--yoopta-ui-primary)/.1)}[data-element-options-select-item-content]{align-items:center;display:flex;gap:8px}[data-element-options-select-check]{color:hsl(var(--yoopta-ui-primary));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 hsl(var(--yoopta-ui-border));border-radius:50%;display:inline-block;height:12px;width:12px}[data-element-options-color-picker]{align-items:center;background-color:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-element-options-control-radius);color:hsl(var(--yoopta-ui-foreground));cursor:pointer;display:flex;font-size:var(--yoopta-ui-element-options-control-font-size);gap:8px;padding:var(--yoopta-ui-element-options-control-padding-y) var(--yoopta-ui-element-options-control-padding-x);transition:var(--yoopta-ui-element-options-transition);width:100%}[data-element-options-color-picker]:hover{border-color:hsl(var(--yoopta-ui-muted-foreground))}[data-element-options-color-preview]{border:1px solid hsl(var(--yoopta-ui-border));border-radius:4px;display:inline-block;height:20px;width:20px}[data-element-options-color-value]{color:hsl(var(--yoopta-ui-muted-foreground));font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px}[data-element-options-color-picker-content]{background-color:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-element-options-content-radius);box-shadow:var(--yoopta-ui-element-options-shadow);padding:12px;z-index:calc(var(--yoopta-ui-element-options-content-z-index) + 1)}[data-element-options-color-picker-content] .react-colorful{height:150px;width:180px}[data-element-options-color-presets]{border-top:1px solid hsl(var(--yoopta-ui-border));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:var(--yoopta-ui-element-options-transition);width:20px}[data-element-options-color-preset]:hover{transform:scale(1.1)}[data-element-options-color-preset][data-selected=true]{border-color:hsl(var(--yoopta-ui-primary))}[data-element-options-color-hex-row]{align-items:center;border-top:1px solid hsl(var(--yoopta-ui-border));display:flex;gap:8px;margin-top:10px;padding-top:10px}[data-element-options-color-swatch]{border:1px solid hsl(var(--yoopta-ui-border));border-radius:6px;flex-shrink:0;height:26px;width:26px}[data-element-options-color-hex-input]{background:transparent;border:1px solid hsl(var(--yoopta-ui-border));border-radius:6px;color:hsl(var(--yoopta-ui-foreground));flex:1;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px;height:26px;min-width:0;outline:none;padding:0 10px;transition:var(--yoopta-ui-element-options-transition)}[data-element-options-color-hex-input]:focus{border-color:hsl(var(--yoopta-ui-primary));box-shadow:0 0 0 2px hsl(var(--yoopta-ui-primary)/.15)}[data-element-options-toggle-wrapper]{align-items:center;display:flex;gap:8px}[data-element-options-toggle]{all:unset;align-items:center;background-color:hsl(var(--yoopta-ui-border));border-radius:10px;cursor:pointer;display:inline-flex;height:var(--yoopta-ui-element-options-toggle-height);transition:var(--yoopta-ui-element-options-transition);width:var(--yoopta-ui-element-options-toggle-width)}[data-element-options-toggle][data-state=checked]{background-color:hsl(var(--yoopta-ui-primary))}[data-element-options-toggle-thumb]{background-color:hsl(var(--yoopta-ui-background));border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.1);display:block;height:var(--yoopta-ui-element-options-toggle-thumb-size);transform:translateX(2px);transition:var(--yoopta-ui-element-options-transition);width:var(--yoopta-ui-element-options-toggle-thumb-size)}[data-element-options-toggle][data-state=checked] [data-element-options-toggle-thumb]{transform:translateX(18px)}[data-element-options-toggle-label]{color:hsl(var(--yoopta-ui-foreground));font-size:var(--yoopta-ui-element-options-control-font-size)}[data-element-options-slider]{align-items:center;display:flex;gap:10px}[data-element-options-slider-root]{align-items:center;cursor:pointer;display:flex;flex:1;height:14px;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}[data-element-options-slider-track]{background-color:hsl(var(--yoopta-ui-border));border-radius:2px;flex-grow:1;height:4px;overflow:hidden;position:relative}[data-element-options-slider-range]{background-color:hsl(var(--yoopta-ui-primary));border-radius:2px;height:100%;position:absolute}[data-element-options-slider-thumb]{all:unset;background-color:hsl(var(--yoopta-ui-background));border:2px solid hsl(var(--yoopta-ui-primary));border-radius:50%;cursor:pointer;display:block;height:14px;transition:var(--yoopta-ui-element-options-transition);width:14px}[data-element-options-slider-thumb]:hover{transform:scale(1.1)}[data-element-options-slider-thumb]:focus-visible{outline:2px solid hsl(var(--yoopta-ui-ring)/.5);outline-offset:2px}[data-element-options-slider-value]{color:hsl(var(--yoopta-ui-muted-foreground));font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px;min-width:32px;text-align:right}[data-element-options-input]{background-color:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-element-options-control-radius);color:hsl(var(--yoopta-ui-foreground));font-size:var(--yoopta-ui-element-options-control-font-size);padding:var(--yoopta-ui-element-options-control-padding-y) var(--yoopta-ui-element-options-control-padding-x);transition:var(--yoopta-ui-element-options-transition);width:100%}[data-element-options-input]:hover{border-color:hsl(var(--yoopta-ui-muted-foreground))}[data-element-options-input]:focus{border-color:hsl(var(--yoopta-ui-primary));box-shadow:0 0 0 2px hsl(var(--yoopta-ui-primary)/.1);outline:none}[data-element-options-input]::-moz-placeholder{color:hsl(var(--yoopta-ui-muted-foreground))}[data-element-options-input]::placeholder{color:hsl(var(--yoopta-ui-muted-foreground))}");var B=Symbol("radix.slottable");function H(e){return r.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===B}var K=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,n)=>{const o=z(`Primitive.${n}`),a=r.forwardRef((e,r)=>{const{asChild:a,...i}=e,s=a?o:n;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),t(s,{...i,ref:r})});return a.displayName=`Primitive.${n}`,{...e,[n]:a}},{});function V(e){const t=r.useRef(e);return r.useEffect(()=>{t.current=e}),r.useMemo(()=>(...e)=>t.current?.(...e),[])}var $,U="dismissableLayer.update",X="dismissableLayer.pointerDownOutside",Y="dismissableLayer.focusOutside",q=r.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Z=r.forwardRef((e,n)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:a,onPointerDownOutside:i,onFocusOutside:s,onInteractOutside:l,onDismiss:c,...d}=e,u=r.useContext(q),[p,f]=r.useState(null),m=p?.ownerDocument??globalThis?.document,[,h]=r.useState({}),v=L(n,e=>f(e)),g=Array.from(u.layers),[y]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),b=g.indexOf(y),w=p?g.indexOf(p):-1,x=u.layersWithOutsidePointerEventsDisabled.size>0,S=w>=b,C=function(e,t=globalThis?.document){const n=V(e),o=r.useRef(!1),a=r.useRef(()=>{});return r.useEffect(()=>{const e=e=>{if(e.target&&!o.current){let o=function(){J(X,n,r,{discrete:!0})};const r={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",a.current),a.current=o,t.addEventListener("click",a.current,{once:!0})):o()}else t.removeEventListener("click",a.current);o.current=!1},r=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(r),t.removeEventListener("pointerdown",e),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}(e=>{const t=e.target,n=[...u.branches].some(e=>e.contains(t));S&&!n&&(i?.(e),l?.(e),e.defaultPrevented||c?.())},m),E=function(e,t=globalThis?.document){const n=V(e),o=r.useRef(!1);return r.useEffect(()=>{const e=e=>{if(e.target&&!o.current){J(Y,n,{originalEvent:e},{discrete:!1})}};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}(e=>{const t=e.target;[...u.branches].some(e=>e.contains(t))||(s?.(e),l?.(e),e.defaultPrevented||c?.())},m);return function(e,t=globalThis?.document){const n=V(e);r.useEffect(()=>{const e=e=>{"Escape"===e.key&&n(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[n,t])}(e=>{w===u.layers.size-1&&(a?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))},m),r.useEffect(()=>{if(p)return o&&(0===u.layersWithOutsidePointerEventsDisabled.size&&($=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(p)),u.layers.add(p),G(),()=>{o&&1===u.layersWithOutsidePointerEventsDisabled.size&&(m.body.style.pointerEvents=$)}},[p,m,o,u]),r.useEffect(()=>()=>{p&&(u.layers.delete(p),u.layersWithOutsidePointerEventsDisabled.delete(p),G())},[p,u]),r.useEffect(()=>{const e=()=>h({});return document.addEventListener(U,e),()=>document.removeEventListener(U,e)},[]),t(K.div,{...d,ref:v,style:{pointerEvents:x?S?"auto":"none":void 0,...e.style},onFocusCapture:A(e.onFocusCapture,E.onFocusCapture),onBlurCapture:A(e.onBlurCapture,E.onBlurCapture),onPointerDownCapture:A(e.onPointerDownCapture,C.onPointerDownCapture)})});Z.displayName="DismissableLayer";function G(){const e=new CustomEvent(U);document.dispatchEvent(e)}function J(e,t,n,{discrete:o}){const r=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?function(e,t){e&&f.flushSync(()=>e.dispatchEvent(t))}(r,a):r.dispatchEvent(a)}r.forwardRef((e,n)=>{const o=r.useContext(q),a=r.useRef(null),i=L(n,a);return r.useEffect(()=>{const e=a.current;if(e)return o.branches.add(e),()=>{o.branches.delete(e)}},[o.branches]),t(K.div,{...e,ref:i})}).displayName="DismissableLayerBranch";var Q=0;function ee(){r.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??te()),document.body.insertAdjacentElement("beforeend",e[1]??te()),Q++,()=>{1===Q&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),Q--}},[])}function te(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ne="focusScope.autoFocusOnMount",oe="focusScope.autoFocusOnUnmount",re={bubbles:!1,cancelable:!0},ae=r.forwardRef((e,n)=>{const{loop:o=!1,trapped:a=!1,onMountAutoFocus:i,onUnmountAutoFocus:s,...l}=e,[c,d]=r.useState(null),u=V(i),p=V(s),f=r.useRef(null),m=L(n,e=>d(e)),h=r.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;r.useEffect(()=>{if(a){let e=function(e){if(h.paused||!c)return;const t=e.target;c.contains(t)?f.current=t:ce(f.current,{select:!0})},t=function(e){if(h.paused||!c)return;const t=e.relatedTarget;null!==t&&(c.contains(t)||ce(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(const t of e)t.removedNodes.length>0&&ce(c)};document.addEventListener("focusin",e),document.addEventListener("focusout",t);const o=new MutationObserver(n);return c&&o.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),o.disconnect()}}},[a,c,h.paused]),r.useEffect(()=>{if(c){de.add(h);const t=document.activeElement;if(!c.contains(t)){const n=new CustomEvent(ne,re);c.addEventListener(ne,u),c.dispatchEvent(n),n.defaultPrevented||(!function(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(ce(o,{select:t}),document.activeElement!==n)return}((e=ie(c),e.filter(e=>"A"!==e.tagName)),{select:!0}),document.activeElement===t&&ce(c))}return()=>{c.removeEventListener(ne,u),setTimeout(()=>{const e=new CustomEvent(oe,re);c.addEventListener(oe,p),c.dispatchEvent(e),e.defaultPrevented||ce(t??document.body,{select:!0}),c.removeEventListener(oe,p),de.remove(h)},0)}}var e},[c,u,p,h]);const v=r.useCallback(e=>{if(!o&&!a)return;if(h.paused)return;const t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){const t=e.currentTarget,[r,a]=function(e){const t=ie(e),n=se(t,e),o=se(t.reverse(),e);return[n,o]}(t);r&&a?e.shiftKey||n!==a?e.shiftKey&&n===r&&(e.preventDefault(),o&&ce(a,{select:!0})):(e.preventDefault(),o&&ce(r,{select:!0})):n===t&&e.preventDefault()}},[o,a,h.paused]);return t(K.div,{tabIndex:-1,...l,ref:m,onKeyDown:v})});function ie(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{const t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function se(e,t){for(const n of e)if(!le(n,{upTo:t}))return n}function le(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e;){if(void 0!==t&&e===t)return!1;if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}function ce(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&function(e){return e instanceof HTMLInputElement&&"select"in e}(e)&&t&&e.select()}}ae.displayName="FocusScope";var de=function(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=ue(e,t),e.unshift(t)},remove(t){e=ue(e,t),e[0]?.resume()}}}();function ue(e,t){const n=[...e],o=n.indexOf(t);return-1!==o&&n.splice(o,1),n}var pe=globalThis?.document?r.useLayoutEffect:()=>{},fe=r[" useId ".trim().toString()]||(()=>{}),me=0;function he(e){const[t,n]=r.useState(fe());return pe(()=>{e||n(e=>e??String(me++))},[e]),e||(t?`radix-${t}`:"")}var ve=r.forwardRef((e,n)=>{const{children:o,width:r=10,height:a=5,...i}=e;return t(K.svg,{...i,ref:n,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?o:t("polygon",{points:"0,0 30,0 15,10"})})});ve.displayName="Arrow";var ge=ve;function ye(e){const[t,n]=r.useState(void 0);return pe(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const t=new ResizeObserver(t=>{if(!Array.isArray(t))return;if(!t.length)return;const o=t[0];let r,a;if("borderBoxSize"in o){const e=o.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,a=t.blockSize}else r=e.offsetWidth,a=e.offsetHeight;n({width:r,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}n(void 0)},[e]),t}var be="Popper",[we,xe]=F(be),[Se,Ce]=we(be),Ee=e=>{const{__scopePopper:n,children:o}=e,[a,i]=r.useState(null);return t(Se,{scope:n,anchor:a,onAnchorChange:i,children:o})};Ee.displayName=be;var ke="PopperAnchor",Pe=r.forwardRef((e,n)=>{const{__scopePopper:o,virtualRef:a,...i}=e,s=Ce(ke,o),l=r.useRef(null),c=L(n,l),d=r.useRef(null);return r.useEffect(()=>{const e=d.current;d.current=a?.current||l.current,e!==d.current&&s.onAnchorChange(d.current)}),a?null:t(K.div,{...i,ref:c})});Pe.displayName=ke;var Re="PopperContent",[Oe,Ne]=we(Re),De=r.forwardRef((e,n)=>{const{__scopePopper:o,side:a="bottom",sideOffset:i=0,align:s="center",alignOffset:l=0,arrowPadding:c=0,avoidCollisions:d=!0,collisionBoundary:u=[],collisionPadding:p=0,sticky:f="partial",hideWhenDetached:m=!1,updatePositionStrategy:E="optimized",onPlaced:k,...P}=e,R=Ce(Re,o),[O,N]=r.useState(null),D=L(n,e=>N(e)),[_,M]=r.useState(null),A=ye(_),T=A?.width??0,I=A?.height??0,F=a+("center"!==s?"-"+s:""),j="number"==typeof p?p:{top:0,right:0,bottom:0,left:0,...p},z=Array.isArray(u)?u:[u],W=z.length>0,B={padding:j,boundary:z.filter(Te),altBoundary:W},{refs:H,floatingStyles:$,placement:U,isPositioned:X,middlewareData:Y}=h({strategy:"fixed",placement:F,whileElementsMounted:(...e)=>v(...e,{animationFrame:"always"===E}),elements:{reference:R.anchor},middleware:[g({mainAxis:i+I,alignmentAxis:l}),d&&y({mainAxis:!0,crossAxis:!1,limiter:"partial"===f?b():void 0,...B}),d&&w({...B}),x({...B,apply:({elements:e,rects:t,availableWidth:n,availableHeight:o})=>{const{width:r,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${n}px`),i.setProperty("--radix-popper-available-height",`${o}px`),i.setProperty("--radix-popper-anchor-width",`${r}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),_&&S({element:_,padding:c}),Ie({arrowWidth:T,arrowHeight:I}),m&&C({strategy:"referenceHidden",...B})]}),[q,Z]=Le(U),G=V(k);pe(()=>{X&&G?.()},[X,G]);const J=Y.arrow?.x,Q=Y.arrow?.y,ee=0!==Y.arrow?.centerOffset,[te,ne]=r.useState();return pe(()=>{O&&ne(window.getComputedStyle(O).zIndex)},[O]),t("div",{ref:H.setFloating,"data-radix-popper-content-wrapper":"",style:{...$,transform:X?$.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:te,"--radix-popper-transform-origin":[Y.transformOrigin?.x,Y.transformOrigin?.y].join(" "),...Y.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:t(Oe,{scope:o,placedSide:q,onArrowChange:M,arrowX:J,arrowY:Q,shouldHideArrow:ee,children:t(K.div,{"data-side":q,"data-align":Z,...P,ref:D,style:{...P.style,animation:X?void 0:"none"}})})})});De.displayName=Re;var _e="PopperArrow",Me={top:"bottom",right:"left",bottom:"top",left:"right"},Ae=r.forwardRef(function(e,n){const{__scopePopper:o,...r}=e,a=Ne(_e,o),i=Me[a.placedSide];return t("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:t(ge,{...r,ref:n,style:{...r.style,display:"block"}})})});function Te(e){return null!==e}Ae.displayName=_e;var Ie=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,a=0!==r.arrow?.centerOffset,i=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[l,c]=Le(n),d={start:"0%",center:"50%",end:"100%"}[c],u=(r.arrow?.x??0)+i/2,p=(r.arrow?.y??0)+s/2;let f="",m="";return"bottom"===l?(f=a?d:`${u}px`,m=-s+"px"):"top"===l?(f=a?d:`${u}px`,m=`${o.floating.height+s}px`):"right"===l?(f=-s+"px",m=a?d:`${p}px`):"left"===l&&(f=`${o.floating.width+s}px`,m=a?d:`${p}px`),{data:{x:f,y:m}}}});function Le(e){const[t,n="center"]=e.split("-");return[t,n]}var Fe=Ee,je=Pe,ze=De,We=Ae,Be=r.forwardRef((e,n)=>{const{container:o,...a}=e,[i,s]=r.useState(!1);pe(()=>s(!0),[]);const l=o||i&&globalThis?.document?.body;return l?m.createPortal(t(K.div,{...a,ref:n}),l):null});Be.displayName="Portal";var He=e=>{const{present:t,children:n}=e,o=function(e){const[t,n]=r.useState(),o=r.useRef(null),a=r.useRef(e),i=r.useRef("none"),s=e?"mounted":"unmounted",[l,c]=function(e,t){return r.useReducer((e,n)=>t[e][n]??e,e)}(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return r.useEffect(()=>{const e=Ke(o.current);i.current="mounted"===l?e:"none"},[l]),pe(()=>{const t=o.current,n=a.current;if(n!==e){const o=i.current,r=Ke(t);if(e)c("MOUNT");else if("none"===r||"none"===t?.display)c("UNMOUNT");else{c(n&&o!==r?"ANIMATION_OUT":"UNMOUNT")}a.current=e}},[e,c]),pe(()=>{if(t){let e;const n=t.ownerDocument.defaultView??window,r=r=>{const i=Ke(o.current).includes(CSS.escape(r.animationName));if(r.target===t&&i&&(c("ANIMATION_END"),!a.current)){const o=t.style.animationFillMode;t.style.animationFillMode="forwards",e=n.setTimeout(()=>{"forwards"===t.style.animationFillMode&&(t.style.animationFillMode=o)})}},s=e=>{e.target===t&&(i.current=Ke(o.current))};return t.addEventListener("animationstart",s),t.addEventListener("animationcancel",r),t.addEventListener("animationend",r),()=>{n.clearTimeout(e),t.removeEventListener("animationstart",s),t.removeEventListener("animationcancel",r),t.removeEventListener("animationend",r)}}c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:r.useCallback(e=>{o.current=e?getComputedStyle(e):null,n(e)},[])}}(t),a="function"==typeof n?n({present:o.isPresent}):r.Children.only(n),i=L(o.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;if(n)return e.ref;if(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n)return e.props.ref;return e.props.ref||e.ref}(a));return"function"==typeof n||o.isPresent?r.cloneElement(a,{ref:i}):null};function Ke(e){return e?.animationName||"none"}He.displayName="Presence";var Ve=r[" useInsertionEffect ".trim().toString()]||pe;function $e({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[a,i,s]=function({defaultProp:e,onChange:t}){const[n,o]=r.useState(e),a=r.useRef(n),i=r.useRef(t);return Ve(()=>{i.current=t},[t]),r.useEffect(()=>{a.current!==n&&(i.current?.(n),a.current=n)},[n,a]),[n,o,i]}({defaultProp:t,onChange:n}),l=void 0!==e,c=l?e:a;{const t=r.useRef(void 0!==e);r.useEffect(()=>{const e=t.current;if(e!==l){const t=e?"controlled":"uncontrolled",n=l?"controlled":"uncontrolled";console.warn(`${o} is changing from ${t} to ${n}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=l},[l,o])}const d=r.useCallback(t=>{if(l){const n=function(e){return"function"==typeof e}(t)?t(e):t;n!==e&&s.current?.(n)}else i(t)},[l,e,i,s]);return[c,d]}var Ue=new WeakMap,Xe=new WeakMap,Ye={},qe=0,Ze=function(e){return e&&(e.host||Ze(e.parentNode))},Ge=function(e,t,n,o){var r=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Ze(t);return n&&e.contains(n)?n:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)}).filter(function(e){return Boolean(e)})}(t,Array.isArray(e)?e:[e]);Ye[n]||(Ye[n]=new WeakMap);var a=Ye[n],i=[],s=new Set,l=new Set(r),c=function(e){e&&!s.has(e)&&(s.add(e),c(e.parentNode))};r.forEach(c);var d=function(e){e&&!l.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))d(e);else try{var t=e.getAttribute(o),r=null!==t&&"false"!==t,l=(Ue.get(e)||0)+1,c=(a.get(e)||0)+1;Ue.set(e,l),a.set(e,c),i.push(e),1===l&&r&&Xe.set(e,!0),1===c&&e.setAttribute(n,"true"),r||e.setAttribute(o,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return d(t),s.clear(),qe++,function(){i.forEach(function(e){var t=Ue.get(e)-1,r=a.get(e)-1;Ue.set(e,t),a.set(e,r),t||(Xe.has(e)||e.removeAttribute(o),Xe.delete(e)),r||e.removeAttribute(n)}),--qe||(Ue=new WeakMap,Ue=new WeakMap,Xe=new WeakMap,Ye={})}},Je=function(e,t,n){void 0===n&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=t||function(e){return"undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body}(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),Ge(o,r,n,"aria-hidden")):function(){return null}},Qe="right-scroll-bar-position",et="width-before-scroll-bar";function tt(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var nt="undefined"!=typeof window?r.useLayoutEffect:r.useEffect,ot=new WeakMap;function rt(e,t){var n,o,r,a=(n=t||null,o=function(t){return e.forEach(function(e){return tt(e,t)})},(r=i(function(){return{value:n,callback:o,facade:{get current(){return r.value},set current(e){var t=r.value;t!==e&&(r.value=e,r.callback(e,t))}}}})[0]).callback=o,r.facade);return nt(function(){var t=ot.get(a);if(t){var n=new Set(t),o=new Set(e),r=a.current;n.forEach(function(e){o.has(e)||tt(e,null)}),o.forEach(function(e){n.has(e)||tt(e,r)})}ot.set(a,e)},[e]),a}function at(e){return e}var it=function(e){var t=e.sideCar,n=k(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=t.read();if(!o)throw new Error("Sidecar medium not found");return r.createElement(o,E({},n))};it.isSideCarExport=!0;var st=function(e){void 0===e&&(e={});var t=function(e,t){void 0===t&&(t=at);var n=[],o=!1;return{read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var r=t(e,o);return n.push(r),function(){n=n.filter(function(e){return e!==r})}},assignSyncMedium:function(e){for(o=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){o=!0;var t=[];if(n.length){var r=n;n=[],r.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),n={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),n}}}}}(null);return t.options=E({async:!0,ssr:!1},e),t}(),lt=function(){},ct=r.forwardRef(function(e,t){var n=r.useRef(null),o=r.useState({onScrollCapture:lt,onWheelCapture:lt,onTouchMoveCapture:lt}),a=o[0],i=o[1],s=e.forwardProps,l=e.children,c=e.className,d=e.removeScrollBar,u=e.enabled,p=e.shards,f=e.sideCar,m=e.noRelative,h=e.noIsolation,v=e.inert,g=e.allowPinchZoom,y=e.as,b=void 0===y?"div":y,w=e.gapMode,x=k(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),S=f,C=rt([n,t]),P=E(E({},x),a);return r.createElement(r.Fragment,null,u&&r.createElement(S,{sideCar:st,removeScrollBar:d,shards:p,noRelative:m,noIsolation:h,inert:v,setCallbacks:i,allowPinchZoom:!!g,lockRef:n,gapMode:w}),s?r.cloneElement(r.Children.only(l),E(E({},P),{ref:C})):r.createElement(b,E({},P,{className:c,ref:C}),l))});ct.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},ct.classNames={fullWidth:et,zeroRight:Qe};function dt(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__}();return t&&e.setAttribute("nonce",t),e}var ut=function(){var e=0,t=null;return{add:function(n){var o,r;0==e&&(t=dt())&&(r=n,(o=t).styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r)),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(t)),e++},remove:function(){! --e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},pt=function(){var e,t=(e=ut(),function(t,n){r.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])});return function(e){var n=e.styles,o=e.dynamic;return t(n,o),null}},ft={left:0,top:0,right:0,gap:0},mt=function(e){return parseInt(e||"",10)||0},ht=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return ft;var t=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],o=t["padding"===e?"paddingTop":"marginTop"],r=t["padding"===e?"paddingRight":"marginRight"];return[mt(n),mt(o),mt(r)]}(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},vt=pt(),gt="data-scroll-locked",yt=function(e,t,n,o){var r=e.left,a=e.top,i=e.right,s=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(o,";\n padding-right: ").concat(s,"px ").concat(o,";\n }\n body[").concat(gt,"] {\n overflow: hidden ").concat(o,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(o,";"),"margin"===n&&"\n padding-left: ".concat(r,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(s,"px ").concat(o,";\n "),"padding"===n&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),"\n }\n \n .").concat(Qe," {\n right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(et," {\n margin-right: ").concat(s,"px ").concat(o,";\n }\n \n .").concat(Qe," .").concat(Qe," {\n right: 0 ").concat(o,";\n }\n \n .").concat(et," .").concat(et," {\n margin-right: 0 ").concat(o,";\n }\n \n body[").concat(gt,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(s,"px;\n }\n")},bt=function(){var e=parseInt(document.body.getAttribute(gt)||"0",10);return isFinite(e)?e:0},wt=function(e){var t=e.noRelative,n=e.noImportant,o=e.gapMode,a=void 0===o?"margin":o;r.useEffect(function(){return document.body.setAttribute(gt,(bt()+1).toString()),function(){var e=bt()-1;e<=0?document.body.removeAttribute(gt):document.body.setAttribute(gt,e.toString())}},[]);var i=r.useMemo(function(){return ht(a)},[a]);return r.createElement(vt,{styles:yt(i,!t,a,n?"":"!important")})},xt=!1;if("undefined"!=typeof window)try{var St=Object.defineProperty({},"passive",{get:function(){return xt=!0,!0}});window.addEventListener("test",St,St),window.removeEventListener("test",St,St)}catch(e){xt=!1}var Ct=!!xt&&{passive:!1},Et=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&!(n.overflowY===n.overflowX&&!function(e){return"TEXTAREA"===e.tagName}(e)&&"visible"===n[t])},kt=function(e,t){var n=t.ownerDocument,o=t;do{if("undefined"!=typeof ShadowRoot&&o instanceof ShadowRoot&&(o=o.host),Pt(e,o)){var r=Rt(e,o);if(r[1]>r[2])return!0}o=o.parentNode}while(o&&o!==n.body);return!1},Pt=function(e,t){return"v"===e?function(e){return Et(e,"overflowY")}(t):function(e){return Et(e,"overflowX")}(t)},Rt=function(e,t){return"v"===e?[(n=t).scrollTop,n.scrollHeight,n.clientHeight]:function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]}(t);var n},Ot=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Nt=function(e){return[e.deltaX,e.deltaY]},Dt=function(e){return e&&"current"in e?e.current:e},_t=function(e){return"\n .block-interactivity-".concat(e," {pointer-events: none;}\n .allow-interactivity-").concat(e," {pointer-events: all;}\n")},Mt=0,At=[];function Tt(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var It,Lt=(It=function(e){var t=r.useRef([]),n=r.useRef([0,0]),o=r.useRef(),a=r.useState(Mt++)[0],i=r.useState(pt)[0],s=r.useRef(e);r.useEffect(function(){s.current=e},[e]),r.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var t=P([e.lockRef.current],(e.shards||[]).map(Dt),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var l=r.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!s.current.allowPinchZoom;var r,a=Ot(e),i=n.current,l="deltaX"in e?e.deltaX:i[0]-a[0],c="deltaY"in e?e.deltaY:i[1]-a[1],d=e.target,u=Math.abs(l)>Math.abs(c)?"h":"v";if("touches"in e&&"h"===u&&"range"===d.type)return!1;var p=window.getSelection(),f=p&&p.anchorNode;if(f&&(f===d||f.contains(d)))return!1;var m=kt(u,d);if(!m)return!0;if(m?r=u:(r="v"===u?"h":"v",m=kt(u,d)),!m)return!1;if(!o.current&&"changedTouches"in e&&(l||c)&&(o.current=r),!r)return!0;var h=o.current||r;return function(e,t,n,o,r){var a=function(e,t){return"h"===e&&"rtl"===t?-1:1}(e,window.getComputedStyle(t).direction),i=a*o,s=n.target,l=t.contains(s),c=!1,d=i>0,u=0,p=0;do{if(!s)break;var f=Rt(e,s),m=f[0],h=f[1]-f[2]-a*m;(m||h)&&Pt(e,s)&&(u+=h,p+=m);var v=s.parentNode;s=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&(r&&Math.abs(u)<1||!r&&i>u)||!d&&(r&&Math.abs(p)<1||!r&&-i>p))&&(c=!0),c}(h,t,e,"h"===h?l:c,!0)},[]),c=r.useCallback(function(e){var n=e;if(At.length&&At[At.length-1]===i){var o="deltaY"in n?Nt(n):Ot(n),r=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&(t=e.delta,r=o,t[0]===r[0]&&t[1]===r[1]);var t,r})[0];if(r&&r.should)n.cancelable&&n.preventDefault();else if(!r){var a=(s.current.shards||[]).map(Dt).filter(Boolean).filter(function(e){return e.contains(n.target)});(a.length>0?l(n,a[0]):!s.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),d=r.useCallback(function(e,n,o,r){var a={name:e,delta:n,target:o,should:r,shadowParent:Tt(o)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=r.useCallback(function(e){n.current=Ot(e),o.current=void 0},[]),p=r.useCallback(function(t){d(t.type,Nt(t),t.target,l(t,e.lockRef.current))},[]),f=r.useCallback(function(t){d(t.type,Ot(t),t.target,l(t,e.lockRef.current))},[]);r.useEffect(function(){return At.push(i),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:f}),document.addEventListener("wheel",c,Ct),document.addEventListener("touchmove",c,Ct),document.addEventListener("touchstart",u,Ct),function(){At=At.filter(function(e){return e!==i}),document.removeEventListener("wheel",c,Ct),document.removeEventListener("touchmove",c,Ct),document.removeEventListener("touchstart",u,Ct)}},[]);var m=e.removeScrollBar,h=e.inert;return r.createElement(r.Fragment,null,h?r.createElement(i,{styles:_t(a)}):null,m?r.createElement(wt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},st.useMedium(It),it),Ft=r.forwardRef(function(e,t){return r.createElement(ct,E({},e,{ref:t,sideCar:Lt}))});Ft.classNames=ct.classNames;var jt=Ft,zt="Popover",[Wt,Bt]=F(zt,[xe]),Ht=xe(),[Kt,Vt]=Wt(zt),$t=e=>{const{__scopePopover:n,children:o,open:a,defaultOpen:i,onOpenChange:s,modal:l=!1}=e,c=Ht(n),d=r.useRef(null),[u,p]=r.useState(!1),[f,m]=$e({prop:a,defaultProp:i??!1,onChange:s,caller:zt});return t(Fe,{...c,children:t(Kt,{scope:n,contentId:he(),triggerRef:d,open:f,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:u,onCustomAnchorAdd:r.useCallback(()=>p(!0),[]),onCustomAnchorRemove:r.useCallback(()=>p(!1),[]),modal:l,children:o})})};$t.displayName=zt;var Ut="PopoverAnchor";r.forwardRef((e,n)=>{const{__scopePopover:o,...a}=e,i=Vt(Ut,o),s=Ht(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:c}=i;return r.useEffect(()=>(l(),()=>c()),[l,c]),t(je,{...s,...a,ref:n})}).displayName=Ut;var Xt="PopoverTrigger",Yt=r.forwardRef((e,n)=>{const{__scopePopover:o,...r}=e,a=Vt(Xt,o),i=Ht(o),s=L(n,a.triggerRef),l=t(K.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":sn(a.open),...r,ref:s,onClick:A(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?l:t(je,{asChild:!0,...i,children:l})});Yt.displayName=Xt;var qt="PopoverPortal",[Zt,Gt]=Wt(qt,{forceMount:void 0}),Jt=e=>{const{__scopePopover:n,forceMount:o,children:r,container:a}=e,i=Vt(qt,n);return t(Zt,{scope:n,forceMount:o,children:t(He,{present:o||i.open,children:t(Be,{asChild:!0,container:a,children:r})})})};Jt.displayName=qt;var Qt="PopoverContent",en=r.forwardRef((e,n)=>{const o=Gt(Qt,e.__scopePopover),{forceMount:r=o.forceMount,...a}=e,i=Vt(Qt,e.__scopePopover);return t(He,{present:r||i.open,children:i.modal?t(nn,{...a,ref:n}):t(on,{...a,ref:n})})});en.displayName=Qt;var tn=z("PopoverContent.RemoveScroll"),nn=r.forwardRef((e,n)=>{const o=Vt(Qt,e.__scopePopover),a=r.useRef(null),i=L(n,a),s=r.useRef(!1);return r.useEffect(()=>{const e=a.current;if(e)return Je(e)},[]),t(jt,{as:tn,allowPinchZoom:!0,children:t(rn,{...e,ref:i,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:A(e.onCloseAutoFocus,e=>{e.preventDefault(),s.current||o.triggerRef.current?.focus()}),onPointerDownOutside:A(e.onPointerDownOutside,e=>{const t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey,o=2===t.button||n;s.current=o},{checkForDefaultPrevented:!1}),onFocusOutside:A(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),on=r.forwardRef((e,n)=>{const o=Vt(Qt,e.__scopePopover),a=r.useRef(!1),i=r.useRef(!1);return t(rn,{...e,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(a.current||o.triggerRef.current?.focus(),t.preventDefault()),a.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(i.current=!0));const n=t.target,r=o.triggerRef.current?.contains(n);r&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),rn=r.forwardRef((e,n)=>{const{__scopePopover:o,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:i,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:d,onInteractOutside:u,...p}=e,f=Vt(Qt,o),m=Ht(o);return ee(),t(ae,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:i,children:t(Z,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:u,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:d,onDismiss:()=>f.onOpenChange(!1),children:t(ze,{"data-state":sn(f.open),role:"dialog",id:f.contentId,...m,...p,ref:n,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),an="PopoverClose";r.forwardRef((e,n)=>{const{__scopePopover:o,...r}=e,a=Vt(an,o);return t(K.button,{type:"button",...r,ref:n,onClick:A(e.onClick,()=>a.onOpenChange(!1))})}).displayName=an;function sn(e){return e?"open":"closed"}r.forwardRef((e,n)=>{const{__scopePopover:o,...r}=e,a=Ht(o);return t(We,{...a,...r,ref:n})}).displayName="PopoverArrow";var ln=$t,cn=Yt,dn=Jt,un=en;const pn=["#000000","#6B7280","#EF4444","#F59E0B","#22C55E","#3B82F6","#8B5CF6","#EC4899"],fn={width:"100%"},mn=({value:e,onChange:o,presetColors:r=pn,className:a,style:u})=>{const p=R(),[f,m]=i(e);s(e).current=e,l(()=>{m(e)},[e]);const h=c(()=>N(e=>{o(e)},300),[o]);l(()=>()=>{h.cancel()},[h]);const v=d(e=>{m(e),h(e)},[h]),g=d(e=>{h.cancel(),m(e),o(e)},[o,h]);return n(ln,{children:[t(cn,Object.assign({asChild:!0},{children:n("button",Object.assign({type:"button",className:a,style:u,onMouseDown:e=>e.preventDefault(),"data-element-options-color-picker":!0},{children:[t("span",{"data-element-options-color-preview":!0,style:{backgroundColor:f}}),t("span",Object.assign({"data-element-options-color-value":!0},{children:f}))]}))})),t(dn,Object.assign({container:p.refElement},{children:n(un,Object.assign({"data-element-options-color-picker-content":!0,side:"bottom",align:"start",sideOffset:4,collisionPadding:8,onOpenAutoFocus:e=>e.preventDefault(),onCloseAutoFocus:e=>{e.preventDefault(),h.flush()},onMouseDown:e=>e.preventDefault()},{children:[t(D,{color:f,onChange:v,"data-element-options-color-picker-picker":!0,style:fn}),r.length>0&&t("div",Object.assign({"data-element-options-color-presets":!0},{children:r.map(e=>t("button",{type:"button","data-element-options-color-preset":!0,"data-selected":e.toLowerCase()===(null==f?void 0:f.toLowerCase()),style:{backgroundColor:e},onClick:()=>g(e),onMouseDown:e=>e.preventDefault(),"aria-label":`Select color ${e}`},e))})),n("div",Object.assign({"data-element-options-color-hex-row":!0},{children:[t("div",{"data-element-options-color-swatch":!0,style:{backgroundColor:f}}),t(_,{color:f,onChange:g,"data-element-options-color-hex-input":!0,prefixed:!0})]}))]}))}))]})};mn.displayName="ElementOptions.ColorPicker";const hn=u(null);function vn(){const e=p(hn);if(!e)throw new Error("useElementOptionsContext must be used within an ElementOptions.Root");return e}function gn(){const{blockId:e,element:t,editor:n,isOpen:o,setIsOpen:r}=vn();return{blockId:e,element:t,editor:n,isOpen:o,setIsOpen:r}}function yn(){const{blockId:e,element:t,editor:n}=vn();return o=>{O.updateElement(n,{blockId:e,type:t.type,props:Object.assign(Object.assign({},t.props),o)})}}hn.displayName="ElementOptionsContext";const bn=({children:e,className:n,style:o,side:r="bottom",align:a="end",sideOffset:i=4,alignOffset:s=0})=>{const{isOpen:l}=vn(),c=R();return l?t(dn,Object.assign({container:c.refElement},{children:t(un,Object.assign({side:r,align:a,sideOffset:i,alignOffset:s,collisionPadding:8,className:n,style:o,"data-element-options-content":!0,"data-state":"open","data-side":r,"data-align":a,onOpenAutoFocus:e=>e.preventDefault(),onCloseAutoFocus:e=>e.preventDefault()},{children:e}))})):null};bn.displayName="ElementOptions.Content";const wn=({children:e,className:n,style:o})=>t("div",Object.assign({className:n,style:o,"data-element-options-group":!0},{children:e}));wn.displayName="ElementOptions.Group";const xn=({value:e,onChange:n,placeholder:o,type:r="text",className:a,style:i})=>t("input",{type:r,value:e,onChange:e=>{n(e.target.value)},onMouseDown:e=>{e.stopPropagation()},placeholder:o,className:a,style:i,"data-element-options-input":!0});xn.displayName="ElementOptions.Input";const Sn=({children:e,className:n,style:o})=>t("label",Object.assign({className:n,style:o,"data-element-options-label":!0},{children:e}));Sn.displayName="ElementOptions.Label";const Cn=({blockId:e,element:n,children:o,className:r,style:a})=>{const s=R(),[l,d]=i(!1),u=c(()=>({blockId:e,element:n,editor:s,isOpen:l,setIsOpen:d}),[e,n,s,l]);return t(hn.Provider,Object.assign({value:u},{children:t(ln,Object.assign({open:l,onOpenChange:d},{children:t("div",Object.assign({className:r,style:a,"data-element-options-root":!0,"data-state":l?"open":"closed"},{children:o}))}))}))};function En(e,[t,n]){return Math.min(n,Math.max(t,e))}function kn(e){const n=e+"CollectionProvider",[o,r]=F(n),[i,s]=o(n,{collectionRef:{current:null},itemMap:new Map}),l=e=>{const{scope:n,children:o}=e,r=a.useRef(null),s=a.useRef(new Map).current;return t(i,{scope:n,itemMap:s,collectionRef:r,children:o})};l.displayName=n;const c=e+"CollectionSlot",d=z(c),u=a.forwardRef((e,n)=>{const{scope:o,children:r}=e,a=L(n,s(c,o).collectionRef);return t(d,{ref:a,children:r})});u.displayName=c;const p=e+"CollectionItemSlot",f="data-radix-collection-item",m=z(p),h=a.forwardRef((e,n)=>{const{scope:o,children:r,...i}=e,l=a.useRef(null),c=L(n,l),d=s(p,o);return a.useEffect(()=>(d.itemMap.set(l,{ref:l,...i}),()=>{d.itemMap.delete(l)})),t(m,{[f]:"",ref:c,children:r})});return h.displayName=p,[{Provider:l,Slot:u,ItemSlot:h},function(t){const n=s(e+"CollectionConsumer",t);return a.useCallback(()=>{const e=n.collectionRef.current;if(!e)return[];const t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])},r]}Cn.displayName="ElementOptions.Root";var Pn=r.createContext(void 0);function Rn(e){const t=r.useContext(Pn);return e||t||"ltr"}function On(e){const t=r.useRef({value:e,previous:e});return r.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Nn=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"});r.forwardRef((e,n)=>t(K.span,{...e,ref:n,style:{...Nn,...e.style}})).displayName="VisuallyHidden";var Dn=[" ","Enter","ArrowUp","ArrowDown"],_n=[" ","Enter"],Mn="Select",[An,Tn,In]=kn(Mn),[Ln,Fn]=F(Mn,[In,xe]),jn=xe(),[zn,Wn]=Ln(Mn),[Bn,Hn]=Ln(Mn),Kn=e=>{const{__scopeSelect:o,children:a,open:i,defaultOpen:s,onOpenChange:l,value:c,defaultValue:d,onValueChange:u,dir:p,name:f,autoComplete:m,disabled:h,required:v,form:g}=e,y=jn(o),[b,w]=r.useState(null),[x,S]=r.useState(null),[C,E]=r.useState(!1),k=Rn(p),[P,R]=$e({prop:i,defaultProp:s??!1,onChange:l,caller:Mn}),[O,N]=$e({prop:c,defaultProp:d,onChange:u,caller:Mn}),D=r.useRef(null),_=!b||(g||!!b.closest("form")),[M,A]=r.useState(new Set),T=Array.from(M).map(e=>e.props.value).join(";");return t(Fe,{...y,children:n(zn,{required:v,scope:o,trigger:b,onTriggerChange:w,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:C,onValueNodeHasChildrenChange:E,contentId:he(),value:O,onValueChange:N,open:P,onOpenChange:R,dir:k,triggerPointerDownPosRef:D,disabled:h,children:[t(An.Provider,{scope:o,children:t(Bn,{scope:e.__scopeSelect,onNativeOptionAdd:r.useCallback(e=>{A(t=>new Set(t).add(e))},[]),onNativeOptionRemove:r.useCallback(e=>{A(t=>{const n=new Set(t);return n.delete(e),n})},[]),children:a})}),_?n(Po,{"aria-hidden":!0,required:v,tabIndex:-1,name:f,autoComplete:m,value:O,onChange:e=>N(e.target.value),disabled:h,form:g,children:[void 0===O?t("option",{value:""}):null,Array.from(M)]},T):null]})})};Kn.displayName=Mn;var Vn="SelectTrigger",$n=r.forwardRef((e,n)=>{const{__scopeSelect:o,disabled:a=!1,...i}=e,s=jn(o),l=Wn(Vn,o),c=l.disabled||a,d=L(n,l.onTriggerChange),u=Tn(o),p=r.useRef("touch"),[f,m,h]=Oo(e=>{const t=u().filter(e=>!e.disabled),n=t.find(e=>e.value===l.value),o=No(t,e,n);void 0!==o&&l.onValueChange(o.value)}),v=e=>{c||(l.onOpenChange(!0),h()),e&&(l.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return t(je,{asChild:!0,...s,children:t(K.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":Ro(l.value)?"":void 0,...i,ref:d,onClick:A(i.onClick,e=>{e.currentTarget.focus(),"mouse"!==p.current&&v(e)}),onPointerDown:A(i.onPointerDown,e=>{p.current=e.pointerType;const t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(v(e),e.preventDefault())}),onKeyDown:A(i.onKeyDown,e=>{const t=""!==f.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||m(e.key),t&&" "===e.key||Dn.includes(e.key)&&(v(),e.preventDefault())})})})});$n.displayName=Vn;var Un="SelectValue",Xn=r.forwardRef((e,n)=>{const{__scopeSelect:r,className:a,style:i,children:s,placeholder:l="",...c}=e,d=Wn(Un,r),{onValueNodeHasChildrenChange:u}=d,p=void 0!==s,f=L(n,d.onValueNodeChange);return pe(()=>{u(p)},[u,p]),t(K.span,{...c,ref:f,style:{pointerEvents:"none"},children:Ro(d.value)?t(o,{children:l}):s})});Xn.displayName=Un;var Yn=r.forwardRef((e,n)=>{const{__scopeSelect:o,children:r,...a}=e;return t(K.span,{"aria-hidden":!0,...a,ref:n,children:r||"▼"})});Yn.displayName="SelectIcon";var qn=e=>t(Be,{asChild:!0,...e});qn.displayName="SelectPortal";var Zn="SelectContent",Gn=r.forwardRef((e,n)=>{const o=Wn(Zn,e.__scopeSelect),[a,i]=r.useState();if(pe(()=>{i(new DocumentFragment)},[]),!o.open){const n=a;return n?f.createPortal(t(Qn,{scope:e.__scopeSelect,children:t(An.Slot,{scope:e.__scopeSelect,children:t("div",{children:e.children})})}),n):null}return t(no,{...e,ref:n})});Gn.displayName=Zn;var Jn=10,[Qn,eo]=Ln(Zn),to=z("SelectContent.RemoveScroll"),no=r.forwardRef((e,n)=>{const{__scopeSelect:o,position:a="item-aligned",onCloseAutoFocus:i,onEscapeKeyDown:s,onPointerDownOutside:l,side:c,sideOffset:d,align:u,alignOffset:p,arrowPadding:f,collisionBoundary:m,collisionPadding:h,sticky:v,hideWhenDetached:g,avoidCollisions:y,...b}=e,w=Wn(Zn,o),[x,S]=r.useState(null),[C,E]=r.useState(null),k=L(n,e=>S(e)),[P,R]=r.useState(null),[O,N]=r.useState(null),D=Tn(o),[_,M]=r.useState(!1),T=r.useRef(!1);r.useEffect(()=>{if(x)return Je(x)},[x]),ee();const I=r.useCallback(e=>{const[t,...n]=D().map(e=>e.ref.current),[o]=n.slice(-1),r=document.activeElement;for(const n of e){if(n===r)return;if(n?.scrollIntoView({block:"nearest"}),n===t&&C&&(C.scrollTop=0),n===o&&C&&(C.scrollTop=C.scrollHeight),n?.focus(),document.activeElement!==r)return}},[D,C]),F=r.useCallback(()=>I([P,x]),[I,P,x]);r.useEffect(()=>{_&&F()},[_,F]);const{onOpenChange:j,triggerPointerDownPosRef:z}=w;r.useEffect(()=>{if(x){let e={x:0,y:0};const t=t=>{e={x:Math.abs(Math.round(t.pageX)-(z.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(z.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():x.contains(n.target)||j(!1),document.removeEventListener("pointermove",t),z.current=null};return null!==z.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",n,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",n,{capture:!0})}}},[x,j,z]),r.useEffect(()=>{const e=()=>j(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[j]);const[W,B]=Oo(e=>{const t=D().filter(e=>!e.disabled),n=t.find(e=>e.ref.current===document.activeElement),o=No(t,e,n);o&&setTimeout(()=>o.ref.current.focus())}),H=r.useCallback((e,t,n)=>{const o=!T.current&&!n;(void 0!==w.value&&w.value===t||o)&&(R(e),o&&(T.current=!0))},[w.value]),K=r.useCallback(()=>x?.focus(),[x]),V=r.useCallback((e,t,n)=>{const o=!T.current&&!n;(void 0!==w.value&&w.value===t||o)&&N(e)},[w.value]),$="popper"===a?ro:oo,U=$===ro?{side:c,sideOffset:d,align:u,alignOffset:p,arrowPadding:f,collisionBoundary:m,collisionPadding:h,sticky:v,hideWhenDetached:g,avoidCollisions:y}:{};return t(Qn,{scope:o,content:x,viewport:C,onViewportChange:E,itemRefCallback:H,selectedItem:P,onItemLeave:K,itemTextRefCallback:V,focusSelectedItem:F,selectedItemText:O,position:a,isPositioned:_,searchRef:W,children:t(jt,{as:to,allowPinchZoom:!0,children:t(ae,{asChild:!0,trapped:w.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:A(i,e=>{w.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:t(Z,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>w.onOpenChange(!1),children:t($,{role:"listbox",id:w.contentId,"data-state":w.open?"open":"closed",dir:w.dir,onContextMenu:e=>e.preventDefault(),...b,...U,onPlaced:()=>M(!0),ref:k,style:{display:"flex",flexDirection:"column",outline:"none",...b.style},onKeyDown:A(b.onKeyDown,e=>{const t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||B(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=D().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){const n=e.target,o=t.indexOf(n);t=t.slice(o+1)}setTimeout(()=>I(t)),e.preventDefault()}})})})})})})});no.displayName="SelectContentImpl";var oo=r.forwardRef((e,n)=>{const{__scopeSelect:o,onPlaced:a,...i}=e,s=Wn(Zn,o),l=eo(Zn,o),[c,d]=r.useState(null),[u,p]=r.useState(null),f=L(n,e=>p(e)),m=Tn(o),h=r.useRef(!1),v=r.useRef(!0),{viewport:g,selectedItem:y,selectedItemText:b,focusSelectedItem:w}=l,x=r.useCallback(()=>{if(s.trigger&&s.valueNode&&c&&u&&g&&y&&b){const e=s.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=s.valueNode.getBoundingClientRect(),o=b.getBoundingClientRect();if("rtl"!==s.dir){const r=o.left-t.left,a=n.left-r,i=e.left-a,s=e.width+i,l=Math.max(s,t.width),d=window.innerWidth-Jn,u=En(a,[Jn,Math.max(Jn,d-l)]);c.style.minWidth=s+"px",c.style.left=u+"px"}else{const r=t.right-o.right,a=window.innerWidth-n.right-r,i=window.innerWidth-e.right-a,s=e.width+i,l=Math.max(s,t.width),d=window.innerWidth-Jn,u=En(a,[Jn,Math.max(Jn,d-l)]);c.style.minWidth=s+"px",c.style.right=u+"px"}const r=m(),i=window.innerHeight-2*Jn,l=g.scrollHeight,d=window.getComputedStyle(u),p=parseInt(d.borderTopWidth,10),f=parseInt(d.paddingTop,10),v=parseInt(d.borderBottomWidth,10),w=p+f+l+parseInt(d.paddingBottom,10)+v,x=Math.min(5*y.offsetHeight,w),S=window.getComputedStyle(g),C=parseInt(S.paddingTop,10),E=parseInt(S.paddingBottom,10),k=e.top+e.height/2-Jn,P=i-k,R=y.offsetHeight/2,O=p+f+(y.offsetTop+R),N=w-O;if(O<=k){const e=r.length>0&&y===r[r.length-1].ref.current;c.style.bottom="0px";const t=u.clientHeight-g.offsetTop-g.offsetHeight,n=O+Math.max(P,R+(e?E:0)+t+v);c.style.height=n+"px"}else{const e=r.length>0&&y===r[0].ref.current;c.style.top="0px";const t=Math.max(k,p+g.offsetTop+(e?C:0)+R)+N;c.style.height=t+"px",g.scrollTop=O-k+g.offsetTop}c.style.margin=`${Jn}px 0`,c.style.minHeight=x+"px",c.style.maxHeight=i+"px",a?.(),requestAnimationFrame(()=>h.current=!0)}},[m,s.trigger,s.valueNode,c,u,g,y,b,s.dir,a]);pe(()=>x(),[x]);const[S,C]=r.useState();pe(()=>{u&&C(window.getComputedStyle(u).zIndex)},[u]);const E=r.useCallback(e=>{e&&!0===v.current&&(x(),w?.(),v.current=!1)},[x,w]);return t(ao,{scope:o,contentWrapper:c,shouldExpandOnScrollRef:h,onScrollButtonChange:E,children:t("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:S},children:t(K.div,{...i,ref:f,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});oo.displayName="SelectItemAlignedPosition";var ro=r.forwardRef((e,n)=>{const{__scopeSelect:o,align:r="start",collisionPadding:a=Jn,...i}=e,s=jn(o);return t(ze,{...s,...i,ref:n,align:r,collisionPadding:a,style:{boxSizing:"border-box",...i.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ro.displayName="SelectPopperPosition";var[ao,io]=Ln(Zn,{}),so="SelectViewport",lo=r.forwardRef((e,a)=>{const{__scopeSelect:i,nonce:s,...l}=e,c=eo(so,i),d=io(so,i),u=L(a,c.onViewportChange),p=r.useRef(0);return n(o,{children:[t("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:s}),t(An.Slot,{scope:i,children:t(K.div,{"data-radix-select-viewport":"",role:"presentation",...l,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...l.style},onScroll:A(l.onScroll,e=>{const t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:o}=d;if(o?.current&&n){const e=Math.abs(p.current-t.scrollTop);if(e>0){const o=window.innerHeight-2*Jn,r=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),i=Math.max(r,a);if(i<o){const r=i+e,a=Math.min(o,r),s=r-a;n.style.height=a+"px","0px"===n.style.bottom&&(t.scrollTop=s>0?s:0,n.style.justifyContent="flex-end")}}}p.current=t.scrollTop})})})]})});lo.displayName=so;var co="SelectGroup",[uo,po]=Ln(co);r.forwardRef((e,n)=>{const{__scopeSelect:o,...r}=e,a=he();return t(uo,{scope:o,id:a,children:t(K.div,{role:"group","aria-labelledby":a,...r,ref:n})})}).displayName=co;var fo="SelectLabel";r.forwardRef((e,n)=>{const{__scopeSelect:o,...r}=e,a=po(fo,o);return t(K.div,{id:a.id,...r,ref:n})}).displayName=fo;var mo="SelectItem",[ho,vo]=Ln(mo),go=r.forwardRef((e,n)=>{const{__scopeSelect:o,value:a,disabled:i=!1,textValue:s,...l}=e,c=Wn(mo,o),d=eo(mo,o),u=c.value===a,[p,f]=r.useState(s??""),[m,h]=r.useState(!1),v=L(n,e=>d.itemRefCallback?.(e,a,i)),g=he(),y=r.useRef("touch"),b=()=>{i||(c.onValueChange(a),c.onOpenChange(!1))};if(""===a)throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return t(ho,{scope:o,value:a,disabled:i,textId:g,isSelected:u,onItemTextChange:r.useCallback(e=>{f(t=>t||(e?.textContent??"").trim())},[]),children:t(An.ItemSlot,{scope:o,value:a,disabled:i,textValue:p,children:t(K.div,{role:"option","aria-labelledby":g,"data-highlighted":m?"":void 0,"aria-selected":u&&m,"data-state":u?"checked":"unchecked","aria-disabled":i||void 0,"data-disabled":i?"":void 0,tabIndex:i?void 0:-1,...l,ref:v,onFocus:A(l.onFocus,()=>h(!0)),onBlur:A(l.onBlur,()=>h(!1)),onClick:A(l.onClick,()=>{"mouse"!==y.current&&b()}),onPointerUp:A(l.onPointerUp,()=>{"mouse"===y.current&&b()}),onPointerDown:A(l.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:A(l.onPointerMove,e=>{y.current=e.pointerType,i?d.onItemLeave?.():"mouse"===y.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:A(l.onPointerLeave,e=>{e.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:A(l.onKeyDown,e=>{""!==d.searchRef?.current&&" "===e.key||(_n.includes(e.key)&&b()," "===e.key&&e.preventDefault())})})})})});go.displayName=mo;var yo="SelectItemText",bo=r.forwardRef((e,a)=>{const{__scopeSelect:i,className:s,style:l,...c}=e,d=Wn(yo,i),u=eo(yo,i),p=vo(yo,i),m=Hn(yo,i),[h,v]=r.useState(null),g=L(a,e=>v(e),p.onItemTextChange,e=>u.itemTextRefCallback?.(e,p.value,p.disabled)),y=h?.textContent,b=r.useMemo(()=>t("option",{value:p.value,disabled:p.disabled,children:y},p.value),[p.disabled,p.value,y]),{onNativeOptionAdd:w,onNativeOptionRemove:x}=m;return pe(()=>(w(b),()=>x(b)),[w,x,b]),n(o,{children:[t(K.span,{id:p.textId,...c,ref:g}),p.isSelected&&d.valueNode&&!d.valueNodeHasChildren?f.createPortal(c.children,d.valueNode):null]})});bo.displayName=yo;var wo="SelectItemIndicator",xo=r.forwardRef((e,n)=>{const{__scopeSelect:o,...r}=e;return vo(wo,o).isSelected?t(K.span,{"aria-hidden":!0,...r,ref:n}):null});xo.displayName=wo;var So="SelectScrollUpButton";r.forwardRef((e,n)=>{const o=eo(So,e.__scopeSelect),a=io(So,e.__scopeSelect),[i,s]=r.useState(!1),l=L(n,a.onScrollButtonChange);return pe(()=>{if(o.viewport&&o.isPositioned){let e=function(){const e=t.scrollTop>0;s(e)};const t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),i?t(Eo,{...e,ref:l,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null}).displayName=So;var Co="SelectScrollDownButton";r.forwardRef((e,n)=>{const o=eo(Co,e.__scopeSelect),a=io(Co,e.__scopeSelect),[i,s]=r.useState(!1),l=L(n,a.onScrollButtonChange);return pe(()=>{if(o.viewport&&o.isPositioned){let e=function(){const e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;s(n)};const t=o.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[o.viewport,o.isPositioned]),i?t(Eo,{...e,ref:l,onAutoScroll:()=>{const{viewport:e,selectedItem:t}=o;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null}).displayName=Co;var Eo=r.forwardRef((e,n)=>{const{__scopeSelect:o,onAutoScroll:a,...i}=e,s=eo("SelectScrollButton",o),l=r.useRef(null),c=Tn(o),d=r.useCallback(()=>{null!==l.current&&(window.clearInterval(l.current),l.current=null)},[]);return r.useEffect(()=>()=>d(),[d]),pe(()=>{const e=c().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[c]),t(K.div,{"aria-hidden":!0,...i,ref:n,style:{flexShrink:0,...i.style},onPointerDown:A(i.onPointerDown,()=>{null===l.current&&(l.current=window.setInterval(a,50))}),onPointerMove:A(i.onPointerMove,()=>{s.onItemLeave?.(),null===l.current&&(l.current=window.setInterval(a,50))}),onPointerLeave:A(i.onPointerLeave,()=>{d()})})});r.forwardRef((e,n)=>{const{__scopeSelect:o,...r}=e;return t(K.div,{"aria-hidden":!0,...r,ref:n})}).displayName="SelectSeparator";var ko="SelectArrow";r.forwardRef((e,n)=>{const{__scopeSelect:o,...r}=e,a=jn(o),i=Wn(ko,o),s=eo(ko,o);return i.open&&"popper"===s.position?t(We,{...a,...r,ref:n}):null}).displayName=ko;var Po=r.forwardRef(({__scopeSelect:e,value:n,...o},a)=>{const i=r.useRef(null),s=L(a,i),l=On(n);return r.useEffect(()=>{const e=i.current;if(!e)return;const t=window.HTMLSelectElement.prototype,o=Object.getOwnPropertyDescriptor(t,"value").set;if(l!==n&&o){const t=new Event("change",{bubbles:!0});o.call(e,n),e.dispatchEvent(t)}},[l,n]),t(K.select,{...o,style:{...Nn,...o.style},ref:s,defaultValue:n})});function Ro(e){return""===e||void 0===e}function Oo(e){const t=V(e),n=r.useRef(""),o=r.useRef(0),a=r.useCallback(e=>{const r=n.current+e;t(r),function e(t){n.current=t,window.clearTimeout(o.current),""!==t&&(o.current=window.setTimeout(()=>e(""),1e3))}(r)},[t]),i=r.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return r.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,a,i]}function No(e,t,n){const o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,r=n?e.indexOf(n):-1;let a=(i=e,s=Math.max(r,0),i.map((e,t)=>i[(s+t)%i.length]));var i,s;1===o.length&&(a=a.filter(e=>e!==n));const l=a.find(e=>e.textValue.toLowerCase().startsWith(o.toLowerCase()));return l!==n?l:void 0}Po.displayName="SelectBubbleInput";var Do=Kn,_o=$n,Mo=Xn,Ao=Yn,To=qn,Io=Gn,Lo=lo,Fo=go,jo=bo,zo=xo;
2
+ /**
3
+ * @license lucide-react v0.294.0 - ISC
4
+ *
5
+ * This source code is licensed under the ISC license.
6
+ * See the LICENSE file in the root directory of this source tree.
7
+ */
8
+ const Wo=M("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),Bo=M("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),Ho=M("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"}]]),Ko=({value:e,options:r,onValueChange:a,placeholder:i="Select...",className:s,style:l,renderOption:c,renderValue:d})=>{const u=R(),p=r.find(t=>t.value===e),f=e=>n(o,{children:[e.icon&&t("span",Object.assign({"data-element-options-select-icon":!0},{children:e.icon})),e.color&&t("span",{"data-element-options-select-color":!0,style:{backgroundColor:e.color}}),t("span",{children:e.label})]});return n(Do,Object.assign({value:e,onValueChange:e=>a(e)},{children:[n(_o,Object.assign({className:s,style:l,"data-element-options-select":!0,onMouseDown:e=>e.preventDefault()},{children:[t(Mo,Object.assign({placeholder:i},{children:t("span",Object.assign({"data-element-options-select-value":!0},{children:d?d(p):(m=p,n(o,{children:[(null==m?void 0:m.icon)&&t("span",Object.assign({"data-element-options-select-icon":!0},{children:m.icon})),(null==m?void 0:m.color)&&t("span",{"data-element-options-select-color":!0,style:{backgroundColor:m.color}}),t("span",{children:null!==(h=null==m?void 0:m.label)&&void 0!==h?h:i})]}))}))})),t(Ao,{children:t(Bo,{"data-element-options-select-chevron":!0})})]})),t(To,Object.assign({container:u.refElement},{children:t(Io,Object.assign({"data-element-options-select-content":!0,position:"popper",sideOffset:4,onCloseAutoFocus:e=>e.preventDefault()},{children:t(Lo,{children:r.map(o=>n(Fo,Object.assign({value:String(o.value),"data-element-options-select-item":!0,"data-selected":o.value===e},{children:[t(jo,{children:t("span",Object.assign({"data-element-options-select-item-content":!0},{children:c?c(o):f(o)}))}),t(zo,{children:t(Wo,{"data-element-options-select-check":!0})})]}),String(o.value)))})}))}))]}));var m,h};
9
+ /**
10
+ * @license lucide-react v0.294.0 - ISC
11
+ *
12
+ * This source code is licensed under the ISC license.
13
+ * See the LICENSE file in the root directory of this source tree.
14
+ */Ko.displayName="ElementOptions.Select";const Vo=({className:e,style:n})=>t("div",{className:e,style:n,"data-element-options-separator":!0,role:"separator","aria-orientation":"horizontal"});Vo.displayName="ElementOptions.Separator";var $o=["PageUp","PageDown"],Uo=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],Xo={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Yo="Slider",[qo,Zo,Go]=kn(Yo),[Jo,Qo]=F(Yo,[Go]),[er,tr]=Jo(Yo),nr=r.forwardRef((e,n)=>{const{name:o,min:a=0,max:i=100,step:s=1,orientation:l="horizontal",disabled:c=!1,minStepsBetweenThumbs:d=0,defaultValue:u=[a],value:p,onValueChange:f=()=>{},onValueCommit:m=()=>{},inverted:h=!1,form:v,...g}=e,y=r.useRef(new Set),b=r.useRef(0),w="horizontal"===l?ar:ir,[x=[],S]=$e({prop:p,defaultProp:u,onChange:e=>{const t=[...y.current];t[b.current]?.focus(),f(e)}}),C=r.useRef(x);function E(e,t,{commit:n}={commit:!1}){const o=function(e){return(String(e).split(".")[1]||"").length}(s),r=function(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}(Math.round((e-a)/s)*s+a,o),l=En(r,[a,i]);S((e=[])=>{const o=function(e=[],t,n){const o=[...e];return o[n]=t,o.sort((e,t)=>e-t)}(e,l,t);if(function(e,t){if(t>0){const n=function(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}(e);return Math.min(...n)>=t}return!0}(o,d*s)){b.current=o.indexOf(l);const t=String(o)!==String(e);return t&&n&&m(o),t?o:e}return e})}return t(er,{scope:e.__scopeSlider,name:o,disabled:c,min:a,max:i,valueIndexToChangeRef:b,thumbs:y.current,values:x,orientation:l,form:v,children:t(qo.Provider,{scope:e.__scopeSlider,children:t(qo.Slot,{scope:e.__scopeSlider,children:t(w,{"aria-disabled":c,"data-disabled":c?"":void 0,...g,ref:n,onPointerDown:A(g.onPointerDown,()=>{c||(C.current=x)}),min:a,max:i,inverted:h,onSlideStart:c?void 0:function(e){const t=function(e,t){if(1===e.length)return 0;const n=e.map(e=>Math.abs(e-t)),o=Math.min(...n);return n.indexOf(o)}(x,e);E(e,t)},onSlideMove:c?void 0:function(e){E(e,b.current)},onSlideEnd:c?void 0:function(){const e=C.current[b.current];x[b.current]!==e&&m(x)},onHomeKeyDown:()=>!c&&E(a,0,{commit:!0}),onEndKeyDown:()=>!c&&E(i,x.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!c){const n=$o.includes(e.key)||e.shiftKey&&Uo.includes(e.key)?10:1,o=b.current;E(x[o]+s*n*t,o,{commit:!0})}}})})})})});nr.displayName=Yo;var[or,rr]=Jo(Yo,{startEdge:"left",endEdge:"right",size:"width",direction:1}),ar=r.forwardRef((e,n)=>{const{min:o,max:a,dir:i,inverted:s,onSlideStart:l,onSlideMove:c,onSlideEnd:d,onStepKeyDown:u,...p}=e,[f,m]=r.useState(null),h=L(n,e=>m(e)),v=r.useRef(void 0),g=Rn(i),y="ltr"===g,b=y&&!s||!y&&s;function w(e){const t=v.current||f.getBoundingClientRect(),n=gr([0,t.width],b?[o,a]:[a,o]);return v.current=t,n(e-t.left)}return t(or,{scope:e.__scopeSlider,startEdge:b?"left":"right",endEdge:b?"right":"left",direction:b?1:-1,size:"width",children:t(sr,{dir:g,"data-orientation":"horizontal",...p,ref:h,style:{...p.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{const t=w(e.clientX);l?.(t)},onSlideMove:e=>{const t=w(e.clientX);c?.(t)},onSlideEnd:()=>{v.current=void 0,d?.()},onStepKeyDown:e=>{const t=Xo[b?"from-left":"from-right"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),ir=r.forwardRef((e,n)=>{const{min:o,max:a,inverted:i,onSlideStart:s,onSlideMove:l,onSlideEnd:c,onStepKeyDown:d,...u}=e,p=r.useRef(null),f=L(n,p),m=r.useRef(void 0),h=!i;function v(e){const t=m.current||p.current.getBoundingClientRect(),n=gr([0,t.height],h?[a,o]:[o,a]);return m.current=t,n(e-t.top)}return t(or,{scope:e.__scopeSlider,startEdge:h?"bottom":"top",endEdge:h?"top":"bottom",size:"height",direction:h?1:-1,children:t(sr,{"data-orientation":"vertical",...u,ref:f,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{const t=v(e.clientY);s?.(t)},onSlideMove:e=>{const t=v(e.clientY);l?.(t)},onSlideEnd:()=>{m.current=void 0,c?.()},onStepKeyDown:e=>{const t=Xo[h?"from-bottom":"from-top"].includes(e.key);d?.({event:e,direction:t?-1:1})}})})}),sr=r.forwardRef((e,n)=>{const{__scopeSlider:o,onSlideStart:r,onSlideMove:a,onSlideEnd:i,onHomeKeyDown:s,onEndKeyDown:l,onStepKeyDown:c,...d}=e,u=tr(Yo,o);return t(K.span,{...d,ref:n,onKeyDown:A(e.onKeyDown,e=>{"Home"===e.key?(s(e),e.preventDefault()):"End"===e.key?(l(e),e.preventDefault()):$o.concat(Uo).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:A(e.onPointerDown,e=>{const t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():r(e)}),onPointerMove:A(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)}),onPointerUp:A(e.onPointerUp,e=>{const t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),i(e))})})}),lr="SliderTrack",cr=r.forwardRef((e,n)=>{const{__scopeSlider:o,...r}=e,a=tr(lr,o);return t(K.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:n})});cr.displayName=lr;var dr="SliderRange",ur=r.forwardRef((e,n)=>{const{__scopeSlider:o,...a}=e,i=tr(dr,o),s=rr(dr,o),l=L(n,r.useRef(null)),c=i.values.length,d=i.values.map(e=>vr(e,i.min,i.max)),u=c>1?Math.min(...d):0,p=100-Math.max(...d);return t(K.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?"":void 0,...a,ref:l,style:{...e.style,[s.startEdge]:u+"%",[s.endEdge]:p+"%"}})});ur.displayName=dr;var pr="SliderThumb",fr=r.forwardRef((e,n)=>{const o=Zo(e.__scopeSlider),[a,i]=r.useState(null),s=L(n,e=>i(e)),l=r.useMemo(()=>a?o().findIndex(e=>e.ref.current===a):-1,[o,a]);return t(mr,{...e,ref:s,index:l})}),mr=r.forwardRef((e,o)=>{const{__scopeSlider:a,index:i,name:s,...l}=e,c=tr(pr,a),d=rr(pr,a),[u,p]=r.useState(null),f=L(o,e=>p(e)),m=!u||(c.form||!!u.closest("form")),h=ye(u),v=c.values[i],g=void 0===v?0:vr(v,c.min,c.max),y=function(e,t){return t>2?`Value ${e+1} of ${t}`:2===t?["Minimum","Maximum"][e]:void 0}(i,c.values.length),b=h?.[d.size],w=b?function(e,t,n){const o=e/2,r=gr([0,50],[0,o]);return(o-r(t)*n)*n}(b,g,d.direction):0;return r.useEffect(()=>{if(u)return c.thumbs.add(u),()=>{c.thumbs.delete(u)}},[u,c.thumbs]),n("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[d.startEdge]:`calc(${g}% + ${w}px)`},children:[t(qo.ItemSlot,{scope:e.__scopeSlider,children:t(K.span,{role:"slider","aria-label":e["aria-label"]||y,"aria-valuemin":c.min,"aria-valuenow":v,"aria-valuemax":c.max,"aria-orientation":c.orientation,"data-orientation":c.orientation,"data-disabled":c.disabled?"":void 0,tabIndex:c.disabled?void 0:0,...l,ref:f,style:void 0===v?{display:"none"}:e.style,onFocus:A(e.onFocus,()=>{c.valueIndexToChangeRef.current=i})})}),m&&t(hr,{name:s??(c.name?c.name+(c.values.length>1?"[]":""):void 0),form:c.form,value:v},i)]})});fr.displayName=pr;var hr=r.forwardRef(({__scopeSlider:e,value:n,...o},a)=>{const i=r.useRef(null),s=L(i,a),l=On(n);return r.useEffect(()=>{const e=i.current;if(!e)return;const t=window.HTMLInputElement.prototype,o=Object.getOwnPropertyDescriptor(t,"value").set;if(l!==n&&o){const t=new Event("input",{bubbles:!0});o.call(e,n),e.dispatchEvent(t)}},[l,n]),t(K.input,{style:{display:"none"},...o,ref:s,defaultValue:n})});function vr(e,t,n){return En(100/(n-t)*(e-t),[0,100])}function gr(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const o=(t[1]-t[0])/(e[1]-e[0]);return t[0]+o*(n-e[0])}}hr.displayName="RadioBubbleInput";var yr=nr,br=cr,wr=ur,xr=fr;const Sr=({value:e,onValueChange:o,min:r=0,max:a=100,step:i=1,className:s,style:l})=>n("div",Object.assign({className:s,style:l,"data-element-options-slider":!0},{children:[n(yr,Object.assign({value:[e],onValueChange:([e])=>o(e),min:r,max:a,step:i,onMouseDown:e=>e.stopPropagation(),"data-element-options-slider-root":!0},{children:[t(br,Object.assign({"data-element-options-slider-track":!0},{children:t(wr,{"data-element-options-slider-range":!0})})),t(xr,{"data-element-options-slider-thumb":!0})]})),t("span",Object.assign({"data-element-options-slider-value":!0},{children:e}))]}));Sr.displayName="ElementOptions.Slider";var Cr="Switch",[Er,kr]=F(Cr),[Pr,Rr]=Er(Cr),Or=r.forwardRef((e,o)=>{const{__scopeSwitch:a,name:i,checked:s,defaultChecked:l,required:c,disabled:d,value:u="on",onCheckedChange:p,form:f,...m}=e,[h,v]=r.useState(null),g=L(o,e=>v(e)),y=r.useRef(!1),b=!h||(f||!!h.closest("form")),[w,x]=$e({prop:s,defaultProp:l??!1,onChange:p,caller:Cr});return n(Pr,{scope:a,checked:w,disabled:d,children:[t(K.button,{type:"button",role:"switch","aria-checked":w,"aria-required":c,"data-state":Mr(w),"data-disabled":d?"":void 0,disabled:d,value:u,...m,ref:g,onClick:A(e.onClick,e=>{x(e=>!e),b&&(y.current=e.isPropagationStopped(),y.current||e.stopPropagation())})}),b&&t(_r,{control:h,bubbles:!y.current,name:i,value:u,checked:w,required:c,disabled:d,form:f,style:{transform:"translateX(-100%)"}})]})});Or.displayName=Cr;var Nr="SwitchThumb",Dr=r.forwardRef((e,n)=>{const{__scopeSwitch:o,...r}=e,a=Rr(Nr,o);return t(K.span,{"data-state":Mr(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:n})});Dr.displayName=Nr;var _r=r.forwardRef(({__scopeSwitch:e,control:n,checked:o,bubbles:a=!0,...i},s)=>{const l=r.useRef(null),c=L(l,s),d=On(o),u=ye(n);return r.useEffect(()=>{const e=l.current;if(!e)return;const t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,"checked").set;if(d!==o&&n){const t=new Event("click",{bubbles:a});n.call(e,o),e.dispatchEvent(t)}},[d,o,a]),t("input",{type:"checkbox","aria-hidden":!0,defaultChecked:o,...i,tabIndex:-1,ref:c,style:{...i.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function Mr(e){return e?"checked":"unchecked"}_r.displayName="SwitchBubbleInput";var Ar=Or,Tr=Dr;const Ir=({checked:e,onCheckedChange:o,label:r,className:a,style:i})=>n("div",Object.assign({className:a,style:i,"data-element-options-toggle-wrapper":!0},{children:[t(Ar,Object.assign({checked:e,onCheckedChange:o,onMouseDown:e=>e.preventDefault(),"data-element-options-toggle":!0},{children:t(Tr,{"data-element-options-toggle-thumb":!0})})),r&&t("span",Object.assign({"data-element-options-toggle-label":!0},{children:r}))]}));Ir.displayName="ElementOptions.Toggle";const Lr=({children:e,className:n,style:o})=>{const{isOpen:r}=vn();return t(cn,Object.assign({asChild:!0},{children:t("button",Object.assign({type:"button",className:n,style:o,onMouseDown:e=>e.preventDefault(),"data-element-options-trigger":!0,"data-state":r?"open":"closed","aria-haspopup":"dialog"},{children:null!=e?e:t(Ho,{className:"yoopta-ui-element-options-trigger-icon"})}))}))};Lr.displayName="ElementOptions.Trigger";const Fr=Object.assign(Cn,{Root:Cn,Trigger:Lr,Content:bn,Group:wn,Label:Sn,Separator:Vo,Select:Ko,ColorPicker:mn,Toggle:Ir,Slider:Sr,Input:xn});export{Fr as ElementOptions,mn as ElementOptionsColorPicker,bn as ElementOptionsContent,hn as ElementOptionsContext,wn as ElementOptionsGroup,xn as ElementOptionsInput,Sn as ElementOptionsLabel,Cn as ElementOptionsRoot,Ko as ElementOptionsSelect,Vo as ElementOptionsSeparator,Sr as ElementOptionsSlider,Ir as ElementOptionsToggle,Lr as ElementOptionsTrigger,gn as useElementOptions,vn as useElementOptionsContext,yn as useUpdateElementProps};
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import type { YooptaBlockData } from '@yoopta/editor';
3
+ export type FloatingBlockActionsContextValue = {
4
+ /** Currently hovered block ID */
5
+ blockId: string | null;
6
+ /** Block data for the hovered block */
7
+ blockData: YooptaBlockData | null;
8
+ /** Whether actions are visible */
9
+ isVisible: boolean;
10
+ /** Hide the floating actions manually */
11
+ hide: () => void;
12
+ };
13
+ export declare const FloatingBlockActionsContext: import("react").Context<FloatingBlockActionsContextValue | null>;
14
+ export declare const useFloatingBlockActionsContext: () => FloatingBlockActionsContextValue;
15
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/floating-block-actions/context.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,MAAM,MAAM,gCAAgC,GAAG;IAC7C,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uCAAuC;IACvC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,2BAA2B,kEAA+D,CAAC;AAExG,eAAO,MAAM,8BAA8B,wCAQ1C,CAAC"}
@@ -1,14 +1,38 @@
1
- import { type ReactNode, type CSSProperties } from 'react';
1
+ import { type CSSProperties, type ReactNode } from 'react';
2
+ import { type YooptaBlockData } from '@yoopta/editor';
2
3
  import './floating-block-actions.css';
4
+ type FloatingBlockActionsApi = {
5
+ /** Currently hovered block ID */
6
+ blockId: string | null;
7
+ /** Block data for the hovered block */
8
+ blockData: YooptaBlockData | null;
9
+ /** Whether actions are visible */
10
+ isVisible: boolean;
11
+ /** Hide the floating actions manually */
12
+ hide: () => void;
13
+ };
3
14
  type FloatingBlockActionsRootProps = {
4
- children: ReactNode;
15
+ children: ReactNode | ((api: FloatingBlockActionsApi) => ReactNode);
16
+ /** When true, hover tracking is paused (e.g., when BlockOptions is open) */
17
+ frozen?: boolean;
5
18
  className?: string;
6
19
  style?: CSSProperties;
7
20
  };
8
- export declare const FloatingBlockActions: import("react").NamedExoticComponent<FloatingBlockActionsRootProps> & {
9
- readonly type: ({ children, className }: FloatingBlockActionsRootProps) => import("react/jsx-runtime").JSX.Element;
21
+ type FloatingBlockActionsButtonProps = {
22
+ children: ReactNode;
23
+ onClick?: (event: React.MouseEvent) => void;
24
+ className?: string;
25
+ disabled?: boolean;
26
+ title?: string;
27
+ } & React.ButtonHTMLAttributes<HTMLButtonElement>;
28
+ export declare const FloatingBlockActions: {
29
+ ({ children, style, frozen, className }: FloatingBlockActionsRootProps): import("react/jsx-runtime").JSX.Element;
30
+ displayName: string;
10
31
  } & {
11
- Root: import("react").MemoExoticComponent<({ children, className }: FloatingBlockActionsRootProps) => import("react/jsx-runtime").JSX.Element>;
32
+ Root: {
33
+ ({ children, style, frozen, className }: FloatingBlockActionsRootProps): import("react/jsx-runtime").JSX.Element;
34
+ displayName: string;
35
+ };
12
36
  Button: import("react").ForwardRefExoticComponent<{
13
37
  children: ReactNode;
14
38
  onClick?: ((event: React.MouseEvent) => void) | undefined;
@@ -17,5 +41,5 @@ export declare const FloatingBlockActions: import("react").NamedExoticComponent<
17
41
  title?: string | undefined;
18
42
  } & import("react").ButtonHTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>>;
19
43
  };
20
- export {};
44
+ export type { FloatingBlockActionsRootProps, FloatingBlockActionsButtonProps, FloatingBlockActionsApi };
21
45
  //# sourceMappingURL=floating-block-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"floating-block-actions.d.ts","sourceRoot":"","sources":["../../src/floating-block-actions/floating-block-actions.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,aAAa,EAAQ,MAAM,OAAO,CAAC;AAC7E,OAAO,8BAA8B,CAAC;AAGtC,KAAK,6BAA6B,GAAG;IACnC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AA8CF,eAAO,MAAM,oBAAoB;6CApC+B,6BAA6B;;wEAA7B,6BAA6B;;kBAPjF,SAAS;2BACD,gBAAgB,KAAK,IAAI;;;;;CA6C3C,CAAC"}
1
+ {"version":3,"file":"floating-block-actions.d.ts","sourceRoot":"","sources":["../../src/floating-block-actions/floating-block-actions.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,eAAe,EAAmB,MAAM,gBAAgB,CAAC;AAIvE,OAAO,8BAA8B,CAAC;AAEtC,KAAK,uBAAuB,GAAG;IAC7B,iCAAiC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uCAAuC;IACvC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAClC,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,KAAK,6BAA6B,GAAG;IACnC,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE,uBAAuB,KAAK,SAAS,CAAC,CAAC;IACpE,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAyOlD,eAAO,MAAM,oBAAoB;6CAnNsD,6BAA6B;;;;iDAA7B,6BAA6B;;;;kBA3BxG,SAAS;2BACD,gBAAgB,KAAK,IAAI;;;;;CAgP3C,CAAC;AAEH,YAAY,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1,30 +1,2 @@
1
- /// <reference types="react" />
2
- /**
3
- * Lightweight hook for accessing only store actions
4
- * Use this when you only need to control the state programmatically
5
- * without needing the mouse tracking logic
6
- */
7
- export declare const useFloatingBlockActionsActions: () => {
8
- reference: HTMLElement | null;
9
- floatingBlockId: string | null;
10
- state: import("./store").FloatingBlockActionsState;
11
- styles: import("react").CSSProperties;
12
- toggle: (actionState: import("./store").FloatingBlockActionsState, blockId?: string | null | undefined) => void;
13
- hide: () => void;
14
- reset: () => void;
15
- };
16
- /**
17
- * Full hook for FloatingBlockActions
18
- * Handles mouse tracking, positioning, and provides access to store
19
- * Use this only in the component that renders the FloatingBlockActions
20
- */
21
- export declare const useFloatingBlockActions: () => {
22
- reference: HTMLElement | null;
23
- floatingBlockId: string | null;
24
- state: import("./store").FloatingBlockActionsState;
25
- styles: import("react").CSSProperties;
26
- toggle: (actionState: import("./store").FloatingBlockActionsState, blockId?: string | null | undefined) => void;
27
- hide: () => void;
28
- reset: () => void;
29
- };
1
+ export { useFloatingBlockActionsContext } from './context';
30
2
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/floating-block-actions/hooks.ts"],"names":[],"mappings":";AAKA;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;CAY1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;CA6HnC,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/floating-block-actions/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC"}
@@ -1,6 +1,5 @@
1
1
  export { FloatingBlockActions } from './floating-block-actions';
2
- export { useFloatingBlockActions, useFloatingBlockActionsActions } from './hooks';
3
- export { useFloatingBlockActionsStore } from './store';
4
- export type { FloatingBlockActionsState, FloatingBlockActionsStore } from './store';
5
- import './floating-block-actions.css';
2
+ export type { FloatingBlockActionsApi, FloatingBlockActionsButtonProps, FloatingBlockActionsRootProps, } from './floating-block-actions';
3
+ export { useFloatingBlockActionsContext } from './hooks';
4
+ export type { FloatingBlockActionsContextValue } from './context';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/floating-block-actions/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAGlF,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AACvD,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAGpF,OAAO,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/floating-block-actions/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAGzD,YAAY,EAAE,gCAAgC,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- export{F as FloatingBlockActions,u as useFloatingBlockActions,a as useFloatingBlockActionsActions,b as useFloatingBlockActionsStore}from"./index-16ebe43d.js";import"react/jsx-runtime";import"react";import"@yoopta/editor";
1
+ import{a as o}from"./chunks/_tslib-29461875.js";import{jsx as t}from"react/jsx-runtime";import{createContext as i,useContext as a,forwardRef as n,useRef as e,useState as r,useCallback as u,useMemo as p,useEffect as l}from"react";import{useYooptaEditor as s}from"@yoopta/editor";import{t as c}from"./chunks/throttle-dea4a39e.js";import{s as d}from"./chunks/style-inject.es-e87a8d02.js";const g=i(null),y=()=>{const o=a(g);if(!o)throw new Error("FloatingBlockActions components must be used within <FloatingBlockActions>");return o};d(":root{--yoopta-ui-background:0 0% 100%;--yoopta-ui-foreground:222.2 84% 4.9%;--yoopta-ui-muted:210 40% 96.1%;--yoopta-ui-muted-foreground:215.4 16.3% 46.9%;--yoopta-ui-border:214.3 31.8% 91.4%;--yoopta-ui-ring:222.2 84% 4.9%;--yoopta-ui-accent:210 40% 96.1%;--yoopta-ui-accent-foreground:222.2 47.4% 11.2%;--yoopta-ui-primary:221.2 83.2% 53.3%;--yoopta-ui-primary-foreground:210 40% 98%;--yoopta-ui-destructive:0 84.2% 60.2%;--yoopta-ui-destructive-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.18),0 4px 16px -4px rgba(0,0,0,.1);--yoopta-ui-radius-sm:0.375rem;--yoopta-ui-radius:0.5rem;--yoopta-ui-radius-lg:0.625rem;--yoopta-ui-z-dropdown:50;--yoopta-ui-z-sticky:100;--yoopta-ui-z-overlay:200;--yoopta-ui-z-modal:9999;--yoopta-ui-transition-fast:100ms ease;--yoopta-ui-transition:150ms ease;--yoopta-ui-transition-slow:200ms ease}.dark,[data-theme=dark],[data-yoopta-theme=dark]{--yoopta-ui-background:222.2 84% 4.9%;--yoopta-ui-foreground:210 40% 98%;--yoopta-ui-muted:217.2 32.6% 17.5%;--yoopta-ui-muted-foreground:215 20.2% 65.1%;--yoopta-ui-border:217.2 32.6% 17.5%;--yoopta-ui-ring:212.7 26.8% 83.9%;--yoopta-ui-accent:217.2 32.6% 17.5%;--yoopta-ui-accent-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.3);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -4px rgba(0,0,0,.3);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.5),0 4px 16px -4px rgba(0,0,0,.3)}:root{--yoopta-ui-floating-shadow:0 1px 2px 0 rgba(0,0,0,.05);--yoopta-ui-floating-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--yoopta-ui-floating-z-index:100;--yoopta-ui-floating-gap:1px;--yoopta-ui-floating-padding:3px;--yoopta-ui-floating-radius:0.5rem;--yoopta-ui-floating-offset:46px;--yoopta-ui-floating-button-min-width:24px;--yoopta-ui-floating-button-min-height:24px;--yoopta-ui-floating-button-padding-y:4px;--yoopta-ui-floating-button-padding-x:6px;--yoopta-ui-floating-button-bg:transparent;--yoopta-ui-floating-button-radius:0.375rem;--yoopta-ui-floating-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;--yoopta-ui-floating-ring-offset:2px;--yoopta-ui-floating-icon-size:1rem}.yoopta-ui-floating-block-actions{align-items:center;background-color:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-floating-radius);box-shadow:var(--yoopta-ui-floating-shadow-md);display:inline-flex;gap:var(--yoopta-ui-floating-gap);padding:var(--yoopta-ui-floating-padding);position:relative;z-index:var(--yoopta-ui-floating-z-index)}.yoopta-ui-floating-action-button{align-items:center;background-color:var(--yoopta-ui-floating-button-bg);border:none;border-radius:var(--yoopta-ui-floating-button-radius);color:hsl(var(--yoopta-ui-foreground));cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;line-height:1;min-height:var(--yoopta-ui-floating-button-min-height);min-width:var(--yoopta-ui-floating-button-min-width);outline:none;padding:var(--yoopta-ui-floating-button-padding-y) var(--yoopta-ui-floating-button-padding-x);touch-action:manipulation;transition:var(--yoopta-ui-floating-transition);-moz-user-select:none;user-select:none;-webkit-user-select:none;white-space:nowrap}.yoopta-ui-floating-action-button:hover{background-color:hsl(var(--yoopta-ui-accent));color:hsl(var(--yoopta-ui-accent-foreground))}.yoopta-ui-floating-action-button:active{background-color:hsl(var(--yoopta-ui-accent));transform:scale(.98)}.yoopta-ui-floating-action-button:focus-visible{box-shadow:0 0 0 var(--yoopta-ui-floating-ring-offset) hsl(var(--yoopta-ui-background)),0 0 0 calc(var(--yoopta-ui-floating-ring-offset) + 2px) hsl(var(--yoopta-ui-ring));outline:none}.yoopta-ui-floating-action-button:disabled{opacity:.5;pointer-events:none}.yoopta-ui-floating-action-button svg{flex-shrink:0;height:var(--yoopta-ui-floating-icon-size);width:var(--yoopta-ui-floating-icon-size)}");const f={position:"fixed",top:0,left:0,opacity:0,pointerEvents:"none",transform:"scale(0.95)",transition:"transform 150ms ease-out"},b=({children:o,style:i,frozen:a=!1,className:n=""})=>{var d;const y=s(),b=e(null),[m,x]=r(null),[h,v]=r(Object.assign(Object.assign({},i),f)),k=m&&null!==(d=y.children[m])&&void 0!==d?d:null,w=null!==m&&1===h.opacity,j=u(()=>{x(null),v(Object.assign(Object.assign({},i),f))},[i]),z=u(o=>{var t,a;const n=o.getBoundingClientRect(),e=null!==(a=null===(t=b.current)||void 0===t?void 0:t.offsetWidth)&&void 0!==a?a:46;let r=0;const u=o.querySelector("[data-element-type]");if(u){const o=window.getComputedStyle(u);r=parseFloat(o.marginTop)||0}var p,l;v(Object.assign(Object.assign({},i),(p=n.top+r,l=n.left,{position:"fixed",top:p,left:l,opacity:1,pointerEvents:"auto",transform:`scale(1) translateX(-${e+2}px)`,transition:"transform 150ms ease-out"})))},[i]),E=u(o=>{if(!y.refElement)return null;const t=y.refElement.querySelectorAll("[data-yoopta-block]"),i=window.innerHeight;let a=null,n=1/0;for(const e of t){const t=e.getBoundingClientRect();if(t.bottom<-200||t.top>i+200)continue;if(o>=t.top&&o<=t.bottom){a=e,n=0;break}const r=o<t.top?t.top-o:o-t.bottom;r<n&&(n=r,a=e)}if(a&&n<=100){const o=a.getAttribute("data-yoopta-block-id"),t=o?y.children[o]:null;if(o&&t)return{element:a,data:t}}return null},[y]),O=u(o=>{var t,i;if(a)return;const n=o.target,e=null===(t=y.refElement)||void 0===t?void 0:t.contains(n),r=null===(i=b.current)||void 0===i?void 0:i.contains(n),u=(()=>{if(!b.current)return!1;const t=b.current.getBoundingClientRect(),i=8,a=24,n=8,e=8;return o.clientX>=t.left-e&&o.clientX<=t.right+a&&o.clientY>=t.top-i&&o.clientY<=t.bottom+n})();if(r||u)return;if(!e)return void j();if(y.readOnly)return;const p=E(o.clientY);if(p){const{element:o,data:t}=p;t.id!==m&&(x(t.id),z(o))}else null!==m&&j()},[a,y,m,E,z,j]),B=p(()=>c(O,100,{leading:!0,trailing:!0}),[O]);l(()=>{const o=()=>{a||j()};return document.addEventListener("mousemove",B),document.addEventListener("scroll",o,!0),()=>{document.removeEventListener("mousemove",B),document.removeEventListener("scroll",o,!0)}},[B,j,a]);const C=p(()=>({blockId:m,blockData:k,isVisible:w,hide:j}),[m,k,w,j]),N="function"==typeof o?o(C):o;return t(g.Provider,Object.assign({value:C},{children:t("div",Object.assign({ref:b,className:`yoopta-ui-floating-block-actions ${n}`,style:h,contentEditable:!1,onClick:o=>o.stopPropagation(),onMouseDown:o=>o.stopPropagation()},{children:N}))}))};b.displayName="FloatingBlockActions";const m=n((i,a)=>{var{children:n,onClick:e,className:r="",disabled:u,title:p}=i,l=o(i,["children","onClick","className","disabled","title"]);return t("button",Object.assign({ref:a,type:"button",className:`yoopta-ui-floating-action-button ${r}`,onClick:e,disabled:u,title:p,"aria-label":p},l,{children:n}))});m.displayName="FloatingBlockActions.Button";const x=Object.assign(b,{Root:b,Button:m});export{x as FloatingBlockActions,y as useFloatingBlockActionsContext};
@@ -0,0 +1,12 @@
1
+ import type { CSSProperties } from 'react';
2
+ export type FloatingToolbarContextValue = {
3
+ /** Whether toolbar is open/visible */
4
+ isOpen: boolean;
5
+ /** Floating UI styles for positioning */
6
+ floatingStyles: CSSProperties;
7
+ /** Ref setter for the floating element */
8
+ setFloatingRef: (node: HTMLElement | null) => void;
9
+ };
10
+ export declare const FloatingToolbarContext: import("react").Context<FloatingToolbarContextValue | null>;
11
+ export declare const useFloatingToolbarContext: () => FloatingToolbarContextValue;
12
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/floating-toolbar/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,2BAA2B,GAAG;IACxC,sCAAsC;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,cAAc,EAAE,aAAa,CAAC;IAC9B,0CAA0C;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CACpD,CAAC;AAEF,eAAO,MAAM,sBAAsB,6DAA0D,CAAC;AAE9F,eAAO,MAAM,yBAAyB,mCAQrC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { type HTMLAttributes, type ReactNode } from 'react';
2
+ import './floating-toolbar.css';
3
+ type FloatingToolbarApi = {
4
+ isOpen: boolean;
5
+ };
6
+ type FloatingToolbarRootProps = {
7
+ children: ReactNode | ((api: FloatingToolbarApi) => ReactNode);
8
+ /** When true, selection tracking is paused (e.g., when a popover is open) */
9
+ frozen?: boolean;
10
+ className?: string;
11
+ };
12
+ type FloatingToolbarContentProps = {
13
+ children: ReactNode;
14
+ className?: string;
15
+ } & HTMLAttributes<HTMLDivElement>;
16
+ type FloatingToolbarGroupProps = HTMLAttributes<HTMLDivElement>;
17
+ type FloatingToolbarSeparatorProps = HTMLAttributes<HTMLDivElement>;
18
+ type FloatingToolbarButtonProps = {
19
+ active?: boolean;
20
+ disabled?: boolean;
21
+ type?: 'button' | 'submit' | 'reset';
22
+ } & HTMLAttributes<HTMLButtonElement>;
23
+ export declare const FloatingToolbar: {
24
+ ({ children, frozen, className }: FloatingToolbarRootProps): import("react/jsx-runtime").JSX.Element;
25
+ displayName: string;
26
+ } & {
27
+ Root: {
28
+ ({ children, frozen, className }: FloatingToolbarRootProps): import("react/jsx-runtime").JSX.Element;
29
+ displayName: string;
30
+ };
31
+ Content: {
32
+ ({ children, className, ...props }: FloatingToolbarContentProps): import("react/jsx-runtime").JSX.Element | null;
33
+ displayName: string;
34
+ };
35
+ Group: import("react").ForwardRefExoticComponent<FloatingToolbarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
36
+ Separator: import("react").ForwardRefExoticComponent<FloatingToolbarSeparatorProps & import("react").RefAttributes<HTMLDivElement>>;
37
+ Button: import("react").ForwardRefExoticComponent<{
38
+ active?: boolean | undefined;
39
+ disabled?: boolean | undefined;
40
+ type?: "button" | "submit" | "reset" | undefined;
41
+ } & HTMLAttributes<HTMLButtonElement> & import("react").RefAttributes<HTMLButtonElement>>;
42
+ };
43
+ export type { FloatingToolbarRootProps, FloatingToolbarContentProps, FloatingToolbarGroupProps, FloatingToolbarSeparatorProps, FloatingToolbarButtonProps, FloatingToolbarApi, };
44
+ //# sourceMappingURL=floating-toolbar.d.ts.map
@@ -0,0 +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;AAmMF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AA8BnC,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;AA6BtC,eAAO,MAAM,eAAe;sCAzR+C,wBAAwB;;;;0CAAxB,wBAAwB;;;;4CAsM3B,2BAA2B;;;;;;;;;;CAyFjG,CAAC;AAEH,YAAY,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAC1B,kBAAkB,GACnB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { FloatingToolbar } from './floating-toolbar';
2
+ export type { FloatingToolbarApi, FloatingToolbarButtonProps, FloatingToolbarContentProps, FloatingToolbarGroupProps, FloatingToolbarRootProps, FloatingToolbarSeparatorProps, } from './floating-toolbar';
3
+ export { useFloatingToolbarContext } from './context';
4
+ export type { FloatingToolbarContextValue } from './context';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/floating-toolbar/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,kBAAkB,EAClB,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAGtD,YAAY,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ import{a as o}from"./chunks/_tslib-29461875.js";import{jsx as t}from"react/jsx-runtime";import{createContext as a,useContext as i,forwardRef as r,useState as e,useRef as n,useMemo as l,useCallback as p,useEffect as s}from"react";import{u,a as g,F as d}from"./chunks/floating-ui.react-993d5ee4.js";import{useYooptaEditor as c}from"@yoopta/editor";import{t as b}from"./chunks/throttle-dea4a39e.js";import{s as y}from"./chunks/style-inject.es-e87a8d02.js";import{k as f,l as m,s as x,o as h,j as v}from"./chunks/floating-ui.react-dom-59d096f1.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};y(":root{--yoopta-ui-background:0 0% 100%;--yoopta-ui-foreground:222.2 84% 4.9%;--yoopta-ui-muted:210 40% 96.1%;--yoopta-ui-muted-foreground:215.4 16.3% 46.9%;--yoopta-ui-border:214.3 31.8% 91.4%;--yoopta-ui-ring:222.2 84% 4.9%;--yoopta-ui-accent:210 40% 96.1%;--yoopta-ui-accent-foreground:222.2 47.4% 11.2%;--yoopta-ui-primary:221.2 83.2% 53.3%;--yoopta-ui-primary-foreground:210 40% 98%;--yoopta-ui-destructive:0 84.2% 60.2%;--yoopta-ui-destructive-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.18),0 4px 16px -4px rgba(0,0,0,.1);--yoopta-ui-radius-sm:0.375rem;--yoopta-ui-radius:0.5rem;--yoopta-ui-radius-lg:0.625rem;--yoopta-ui-z-dropdown:50;--yoopta-ui-z-sticky:100;--yoopta-ui-z-overlay:200;--yoopta-ui-z-modal:9999;--yoopta-ui-transition-fast:100ms ease;--yoopta-ui-transition:150ms ease;--yoopta-ui-transition-slow:200ms ease}.dark,[data-theme=dark],[data-yoopta-theme=dark]{--yoopta-ui-background:222.2 84% 4.9%;--yoopta-ui-foreground:210 40% 98%;--yoopta-ui-muted:217.2 32.6% 17.5%;--yoopta-ui-muted-foreground:215 20.2% 65.1%;--yoopta-ui-border:217.2 32.6% 17.5%;--yoopta-ui-ring:212.7 26.8% 83.9%;--yoopta-ui-accent:217.2 32.6% 17.5%;--yoopta-ui-accent-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.3);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -4px rgba(0,0,0,.3);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.5),0 4px 16px -4px rgba(0,0,0,.3)}:root{--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}.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 j=({children:o,frozen:a=!1,className:i=""})=>{const r=c(),[d,y]=e(!1),k=n(null),{refs:j,floatingStyles:N,context:z}=u({placement:"top-start",open:d,middleware:[f(),m(),x(),h(10)],whileElementsMounted:v}),{isMounted:O,styles:F}=g(z,{duration:100}),C=l(()=>Object.assign(Object.assign({},N),F),[N,F]),R=n(j.setReference);R.current=j.setReference;const E=p(()=>{y(!1)},[]),M=p(()=>{y(!0)},[]),A=p(()=>{var o,t;if(a)return;const i=k.current;if(null==i?void 0:i.contains(document.activeElement))return;const e=window.getSelection();if(!e||(null==e?void 0:e.isCollapsed)||(null==e?void 0:e.anchorOffset)===(null==e?void 0:e.focusOffset))return void(d&&E());const n=e.getRangeAt(0),l=n.getBoundingClientRect(),p=n.toString().trim(),s=null==n?void 0:n.commonAncestorContainer,u=!!(null===(o=null==s?void 0:s.closest)||void 0===o?void 0:o.call(s,"[data-custom-editor]"));if((null===(t=r.refElement)||void 0===t?void 0:t.contains(s))&&!u){if(n&&p.length>0){const o={getBoundingClientRect:()=>l,getClientRects:()=>n.getClientRects()};R.current(o),d||M()}}else d&&E()},[a,r.refElement,E,M,d]),S=p(()=>{var o;if(!Array.isArray(r.path.selected)||0===r.path.selected.length||"mousemove"!==r.path.source&&"keyboard"!==r.path.source)return void(d&&E());const t=Math.min(...r.path.selected),a=Math.max(...r.path.selected);let i=!0;"number"==typeof r.path.current&&(i=Math.abs(r.path.current-a)<=Math.abs(r.path.current-t));const e=r.getBlock({at:i?a:t});if(!e)return;const n=null===(o=r.refElement)||void 0===o?void 0:o.querySelector(`[data-yoopta-block-id="${e.id}"]`);n&&(R.current(n),d||M())},[r,E,M,d]),T=l(()=>b(A,200,{leading:!0,trailing:!0}),[A]);s(()=>{if(Array.isArray(r.path.selected)||r.path.selection){if(!Array.isArray(r.path.selected)||r.path.selection)return window.document.addEventListener("selectionchange",T),()=>window.document.removeEventListener("selectionchange",T);S()}else d&&E()},[r.path.selected,r.path.selection,d,T,E,S]);const $=p(o=>{k.current=o,j.setFloating(o)},[j.setFloating,j.setReference]),B=l(()=>({isOpen:O,floatingStyles:C,setFloatingRef:$}),[O,C,$]),D="function"==typeof o?o({isOpen:O}):o;return t(w.Provider,Object.assign({value:B},{children:t("div",Object.assign({contentEditable:!1,className:i},{children:D}))}))};j.displayName="FloatingToolbar";const N=a=>{var{children:i,className:r=""}=a,e=o(a,["children","className"]);const n=c(),{isOpen:l,floatingStyles:p,setFloatingRef:s}=k();return l?t(d,Object.assign({root:n.refElement,id:`yoopta-ui-floating-toolbar-portal-${n.id}`},{children:t("div",Object.assign({ref:s,className:`yoopta-ui-floating-toolbar ${r}`,style:p,onClick:o=>o.stopPropagation(),onMouseDown:o=>{o.preventDefault(),o.stopPropagation()}},e,{children:i}))})):null};N.displayName="FloatingToolbar.Content";const z=r((a,i)=>{var{className:r="",children:e}=a,n=o(a,["className","children"]);return t("div",Object.assign({ref:i,className:`yoopta-ui-floating-toolbar-group ${r}`},n,{children:e}))});z.displayName="FloatingToolbar.Group";const O=r((a,i)=>{var{className:r=""}=a,e=o(a,["className"]);return t("div",Object.assign({ref:i,className:`yoopta-ui-floating-toolbar-separator ${r}`},e))});O.displayName="FloatingToolbar.Separator";const F=r((a,i)=>{var{className:r="",children:e,active:n,disabled:l,type:p="button"}=a,s=o(a,["className","children","active","disabled","type"]);return t("button",Object.assign({ref:i,type:p,disabled:l,"data-active":n,className:`yoopta-ui-floating-toolbar-button ${r}`,onMouseDown:o=>{var t;o.preventDefault(),o.stopPropagation(),null===(t=s.onMouseDown)||void 0===t||t.call(s,o)},onClick:o=>{var t;o.stopPropagation(),null===(t=s.onClick)||void 0===t||t.call(s,o)}},s,{children:e}))});F.displayName="FloatingToolbar.Button";const C=Object.assign(j,{Root:j,Content:N,Group:z,Separator:O,Button:F});export{C as FloatingToolbar,k as useFloatingToolbarContext};
@@ -1,4 +1,5 @@
1
1
  import type { ReactElement } from 'react';
2
+ import './highlight-color-picker.css';
2
3
  export type HighlightColorPickerProps = {
3
4
  /** Current color values (hex format) */
4
5
  value?: {
@@ -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;AAM1C,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,sHAuNhC,CAAC"}
@@ -1,4 +1,3 @@
1
- import './highlight-color-picker.css';
2
1
  export { HighlightColorPicker } from './highlight-color-picker';
3
2
  export type { HighlightColorPickerProps } from './highlight-color-picker';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/highlight-color-picker/index.ts"],"names":[],"mappings":"AAAA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC"}
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"}
@@ -0,0 +1 @@
1
+ import{jsxs as o,Fragment as r,jsx as i}from"react/jsx-runtime";import{forwardRef as t,useState as e,useRef as a,useEffect as p,useMemo as l,useCallback as c,cloneElement as h}from"react";import{u as n}from"./chunks/floating-ui.react-993d5ee4.js";import{d as u,Z as s,O as g}from"./chunks/debounce-c595d128.js";import{s as d}from"./chunks/style-inject.es-e87a8d02.js";import{o as y,l as b,s as x,j as k}from"./chunks/floating-ui.react-dom-59d096f1.js";import"react-dom";d(":root{--yoopta-ui-background:0 0% 100%;--yoopta-ui-foreground:222.2 84% 4.9%;--yoopta-ui-muted:210 40% 96.1%;--yoopta-ui-muted-foreground:215.4 16.3% 46.9%;--yoopta-ui-border:214.3 31.8% 91.4%;--yoopta-ui-ring:222.2 84% 4.9%;--yoopta-ui-accent:210 40% 96.1%;--yoopta-ui-accent-foreground:222.2 47.4% 11.2%;--yoopta-ui-primary:221.2 83.2% 53.3%;--yoopta-ui-primary-foreground:210 40% 98%;--yoopta-ui-destructive:0 84.2% 60.2%;--yoopta-ui-destructive-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.18),0 4px 16px -4px rgba(0,0,0,.1);--yoopta-ui-radius-sm:0.375rem;--yoopta-ui-radius:0.5rem;--yoopta-ui-radius-lg:0.625rem;--yoopta-ui-z-dropdown:50;--yoopta-ui-z-sticky:100;--yoopta-ui-z-overlay:200;--yoopta-ui-z-modal:9999;--yoopta-ui-transition-fast:100ms ease;--yoopta-ui-transition:150ms ease;--yoopta-ui-transition-slow:200ms ease}.dark,[data-theme=dark],[data-yoopta-theme=dark]{--yoopta-ui-background:222.2 84% 4.9%;--yoopta-ui-foreground:210 40% 98%;--yoopta-ui-muted:217.2 32.6% 17.5%;--yoopta-ui-muted-foreground:215 20.2% 65.1%;--yoopta-ui-border:217.2 32.6% 17.5%;--yoopta-ui-ring:212.7 26.8% 83.9%;--yoopta-ui-accent:217.2 32.6% 17.5%;--yoopta-ui-accent-foreground:210 40% 98%;--yoopta-ui-shadow-sm:0 1px 2px 0 rgba(0,0,0,.3);--yoopta-ui-shadow:0 4px 6px -1px rgba(0,0,0,.4),0 2px 4px -2px rgba(0,0,0,.3);--yoopta-ui-shadow-lg:0 10px 15px -3px rgba(0,0,0,.5),0 4px 6px -4px rgba(0,0,0,.3);--yoopta-ui-shadow-xl:0 16px 48px -12px rgba(0,0,0,.5),0 4px 16px -4px rgba(0,0,0,.3)}:root{--yoopta-ui-highlight-color-picker-shadow:0 16px 48px -12px rgba(0,0,0,.18),0 4px 16px -4px rgba(0,0,0,.1);--yoopta-ui-highlight-color-picker-radius:0.625rem;--yoopta-ui-highlight-color-picker-padding:10px;--yoopta-ui-highlight-color-picker-gap:10px;--yoopta-ui-highlight-color-picker-width:224px;--yoopta-ui-highlight-color-picker-z-index:9999;--yoopta-ui-highlight-color-picker-picker-height:120px;--yoopta-ui-highlight-color-picker-preset-size:24px;--yoopta-ui-highlight-color-picker-input-height:26px;--yoopta-ui-highlight-color-picker-transition:background-color 120ms ease,color 120ms ease,border-color 120ms ease,box-shadow 120ms ease,transform 120ms ease}.yoopta-ui-highlight-color-picker{background:hsl(var(--yoopta-ui-background));border:1px solid hsl(var(--yoopta-ui-border));border-radius:var(--yoopta-ui-highlight-color-picker-radius);box-shadow:var(--yoopta-ui-highlight-color-picker-shadow);color:hsl(var(--yoopta-ui-foreground));display:flex;flex-direction:column;gap:8px;outline:none;padding:var(--yoopta-ui-highlight-color-picker-padding);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--yoopta-ui-highlight-color-picker-width);z-index:var(--yoopta-ui-highlight-color-picker-z-index)}.yoopta-ui-highlight-color-picker-mode-toggle{background:hsl(var(--yoopta-ui-border));border-radius:8px;display:flex;flex-shrink:0;gap:4px;padding:4px}.yoopta-ui-highlight-color-picker-mode-btn{background:transparent;border:none;border-radius:6px;color:hsl(var(--yoopta-ui-muted-foreground));cursor:pointer;flex:1;font-size:11px;font-weight:500;line-height:1.4;outline:none;padding:4px 8px;text-align:center;transition:var(--yoopta-ui-highlight-color-picker-transition)}.yoopta-ui-highlight-color-picker-mode-btn:hover{color:hsl(var(--yoopta-ui-foreground))}.yoopta-ui-highlight-color-picker-mode-btn[data-active=true]{background:hsl(var(--yoopta-ui-background));box-shadow:0 1px 2px rgba(0,0,0,.1);color:hsl(var(--yoopta-ui-foreground))}.yoopta-ui-highlight-color-picker-mode-btn:focus-visible{outline:2px solid hsl(var(--yoopta-ui-ring));outline-offset:2px}.yoopta-ui-highlight-color-picker-react-colorful{height:var(--yoopta-ui-highlight-color-picker-picker-height)!important;width:100%!important}.yoopta-ui-highlight-color-picker-react-colorful .react-colorful__saturation{border:1px solid hsl(var(--yoopta-ui-border));border-radius:8px}.yoopta-ui-highlight-color-picker-react-colorful .react-colorful__hue{border:1px solid hsl(var(--yoopta-ui-border));border-radius:999px;height:10px;margin-top:8px}.yoopta-ui-highlight-color-picker-react-colorful .react-colorful__pointer{border:2px solid hsl(var(--yoopta-ui-background));border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.22);height:16px;width:16px}.yoopta-ui-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:hsl(var(--yoopta-ui-border)) transparent;scrollbar-width:thin}.yoopta-ui-highlight-color-picker-presets::-webkit-scrollbar{height:6px}.yoopta-ui-highlight-color-picker-presets::-webkit-scrollbar-track{background:transparent}.yoopta-ui-highlight-color-picker-presets::-webkit-scrollbar-thumb{background-color:hsl(var(--yoopta-ui-border));border-radius:999px}.yoopta-ui-highlight-color-picker-preset{border:2px solid hsl(var(--yoopta-ui-border));border-radius:7px;cursor:pointer;flex:0 0 auto;height:var(--yoopta-ui-highlight-color-picker-preset-size);outline:none;padding:0;transition:var(--yoopta-ui-highlight-color-picker-transition);width:var(--yoopta-ui-highlight-color-picker-preset-size)}.yoopta-ui-highlight-color-picker-preset:hover{transform:scale(1.08)}.yoopta-ui-highlight-color-picker-preset:focus-visible{border-color:hsl(var(--yoopta-ui-ring));box-shadow:0 0 0 2px hsl(var(--yoopta-ui-ring))}.yoopta-ui-highlight-color-picker-preset[data-selected=true]{border-color:hsl(var(--yoopta-ui-ring));box-shadow:0 0 0 2px hsl(var(--yoopta-ui-ring)/.35)}.yoopta-ui-highlight-color-picker-hex-row{align-items:center;display:flex;gap:8px}.yoopta-ui-highlight-color-picker-swatch{border:1px solid hsl(var(--yoopta-ui-border));border-radius:7px;flex:0 0 auto;height:var(--yoopta-ui-highlight-color-picker-input-height);width:var(--yoopta-ui-highlight-color-picker-input-height)}.yoopta-ui-highlight-color-picker-hex-input{background:transparent;border:1px solid hsl(var(--yoopta-ui-border));border-radius:9px;color:hsl(var(--yoopta-ui-foreground));flex:1;font-size:12px;height:var(--yoopta-ui-highlight-color-picker-input-height);line-height:1;min-width:0;outline:none;padding:0 10px}.yoopta-ui-highlight-color-picker-hex-input:focus{border-color:hsl(var(--yoopta-ui-ring));box-shadow:0 0 0 2px hsl(var(--yoopta-ui-ring)/.25)}.yoopta-ui-highlight-color-picker-hex-input::-moz-placeholder{color:hsl(var(--yoopta-ui-muted-foreground))}.yoopta-ui-highlight-color-picker-hex-input::placeholder{color:hsl(var(--yoopta-ui-muted-foreground))}");const m=["#FFFF00","#FFE066","#FFCC99","#FF9999","#99CCFF","#99FF99","#FF99FF","#CC99FF"],f=t(({value:t={backgroundColor:"#FFFF00"},onChange:d,presets:f=m,showInput:v=!0,className:w,children:C,placement:F="bottom",offset:j=8},O)=>{const[z,N]=e(!1),[E,_]=e("backgroundColor"),[L,M]=e(t.backgroundColor),[P,D]=e(t.color),{refs:B,floatingStyles:S}=n({open:z,onOpenChange:N,placement:F,middleware:[y(j),b(),x()],whileElementsMounted:k}),T=a(t);T.current=t;const $=a(E);$.current=E,p(()=>{t.backgroundColor&&M(t.backgroundColor),t.color&&D(t.color)},[t]);const H=l(()=>u((o,r)=>{"backgroundColor"===r?null==d||d(Object.assign(Object.assign({},T.current),{backgroundColor:o})):null==d||d(Object.assign(Object.assign({},T.current),{color:o}))},300),[d]);p(()=>()=>{H.cancel()},[H]),p(()=>{if(!z)return;const o=o=>{const r=o.target,i=B.reference.current,t=B.floating.current;i&&i instanceof Element&&i.contains(r)||(null==t?void 0:t.contains(r))||(H.flush(),N(!1))};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[z,B.floating,B.reference,H]);const I=c(o=>{"backgroundColor"===$.current?M(o):D(o),H(o,$.current)},[H]),R=c(o=>{H.cancel(),"backgroundColor"===E?(M(o),null==d||d(Object.assign(Object.assign({},t),{backgroundColor:o}))):(D(o),null==d||d(Object.assign(Object.assign({},t),{color:o})))},[E,t,d,H]),q="backgroundColor"===E?L:P,A=h(C,{ref:B.setReference,onClick:o=>{var r,i;o.stopPropagation(),N(o=>!o),null===(i=(r=C.props).onClick)||void 0===i||i.call(r,o)}});return o(r,{children:[A,z&&o("div",Object.assign({ref:o=>{B.setFloating(o),O&&("function"==typeof O?O(o):O.current=o)},style:S,className:`yoopta-ui-highlight-color-picker ${null!=w?w:""}`,onClick:o=>o.stopPropagation(),contentEditable:!1,onMouseDown:o=>o.stopPropagation()},{children:[o("div",Object.assign({className:"yoopta-ui-highlight-color-picker-mode-toggle"},{children:[i("button",Object.assign({type:"button",className:"yoopta-ui-highlight-color-picker-mode-btn","data-active":"backgroundColor"===E,onMouseDown:()=>_("backgroundColor"),"aria-label":"Background color"},{children:"Background"})),i("button",Object.assign({type:"button",className:"yoopta-ui-highlight-color-picker-mode-btn","data-active":"color"===E,onMouseDown:()=>_("color"),"aria-label":"Text color"},{children:"Text"}))]})),i("div",Object.assign({className:"yoopta-ui-highlight-color-picker-picker"},{children:i(s,{color:q,onChange:I,className:"yoopta-ui-highlight-color-picker-react-colorful"})})),f.length>0&&i("div",Object.assign({className:"yoopta-ui-highlight-color-picker-presets"},{children:f.map(o=>{const r=(null==q?void 0:q.toLowerCase())===o.toLowerCase();return i("button",{type:"button",className:"yoopta-ui-highlight-color-picker-preset","data-selected":r,style:{backgroundColor:o},onClick:()=>R(o),"aria-label":`Select color ${o}`},o)})})),v&&o("div",Object.assign({className:"yoopta-ui-highlight-color-picker-hex-row"},{children:[i("div",{className:"yoopta-ui-highlight-color-picker-swatch",style:{backgroundColor:q}}),i(g,{color:q,onChange:R,className:"yoopta-ui-highlight-color-picker-hex-input",prefixed:!0})]}))]}))]})});f.displayName="HighlightColorPicker";export{f as HighlightColorPicker};
package/dist/index.d.ts CHANGED
@@ -1,12 +1,16 @@
1
- export { FloatingBlockActions, useFloatingBlockActions, useFloatingBlockActionsActions, } from './floating-block-actions';
2
- export { BlockOptions, useBlockOptions, useBlockOptionsActions } from './block-options';
3
- export { Toolbar, useToolbar } from './toolbar';
4
- export { ActionMenuList, useActionMenuList, useActionMenuListActions } from './action-menu-list';
1
+ export { FloatingBlockActions, } from './floating-block-actions';
2
+ export { BlockOptions, useBlockActions, useBlockOptionsContext } from './block-options';
3
+ export { FloatingToolbar } from './floating-toolbar';
4
+ export { ActionMenuList } from './action-menu-list';
5
5
  export { SlashCommandMenu } from './slash-command-menu';
6
- export { useTheme, ThemeProvider, ThemeToggle, useThemeContext } from './theme';
7
- export type { Theme } from './theme';
8
6
  export { Portal } from './portal';
9
7
  export { Overlay } from './overlay';
10
8
  export { HighlightColorPicker } from './highlight-color-picker';
11
9
  export type { HighlightColorPickerProps } from './highlight-color-picker';
10
+ export { SelectionBox, useRectangeSelectionBox } from './selection-box';
11
+ export type { RectangeSelectionProps, RectangeSelectionState, SelectionBoxProps, } from './selection-box';
12
+ export { ElementOptions, useElementOptions, useElementOptionsContext, useUpdateElementProps, } from './element-options';
13
+ export type { ElementOptionsContextValue, ElementOptionsRootProps, ElementOptionsTriggerProps, ElementOptionsContentProps, ElementOptionsGroupProps, ElementOptionsLabelProps, ElementOptionsSeparatorProps, ElementOptionsSelectProps, ElementOptionsColorPickerProps, ElementOptionsToggleProps, ElementOptionsSliderProps, ElementOptionsInputProps, SelectOption, } from './element-options';
14
+ export { BlockDndContext, useBlockDndContext, SortableBlock, DragHandle, useBlockDnd, getOrderedBlockIds, } from './block-dnd';
15
+ export type { BlockDndContextProps, BlockDndContextValue, SortableBlockProps, DragHandleProps, DropIndicatorProps, UseBlockDndOptions, UseBlockDndReturn, } from './block-dnd';
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAChF,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACxE,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAC"}