@yoopta/themes-shadcn 6.0.1 → 6.0.3

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 (190) hide show
  1. package/dist/accordion.js +1 -1
  2. package/dist/applyTheme.d.ts.map +1 -1
  3. package/dist/carousel.js +1 -1
  4. package/dist/chunks/button-f335deaa.js +1 -0
  5. package/dist/chunks/{dropdown-menu-eb328f8d.js → dropdown-menu-36750aec.js} +3 -3
  6. package/dist/chunks/{hover-card-d6a71398.js → hover-card-8048e9ce.js} +1 -1
  7. package/dist/chunks/index-371259c9.js +1 -0
  8. package/dist/chunks/{index-f85dae42.js → index-5b487f4e.js} +1 -1
  9. package/dist/chunks/{index-ba3032f8.js → index-a77c7d53.js} +1 -1
  10. package/dist/chunks/{index-23db6fea.js → index-bd6363d4.js} +1 -1
  11. package/dist/chunks/label-35a74462.js +1 -0
  12. package/dist/chunks/{language-select-89735035.js → language-select-ee2698cf.js} +1 -1
  13. package/dist/chunks/pen-d6258303.js +7 -0
  14. package/dist/chunks/popover-dae0ce5f.js +1 -0
  15. package/dist/chunks/{scroll-area-dae47c2c.js → scroll-area-8321348a.js} +1 -1
  16. package/dist/chunks/{select-a8bcd8b5.js → select-a3724728.js} +1 -1
  17. package/dist/chunks/separator-f4e74aca.js +1 -0
  18. package/dist/chunks/{tabs-294764a6.js → tabs-370c3f2c.js} +1 -1
  19. package/dist/chunks/{tooltip-65b9c3a0.js → tooltip-5defff1d.js} +2 -2
  20. package/dist/code-group.js +1 -1
  21. package/dist/code.js +1 -1
  22. package/dist/divider.js +1 -1
  23. package/dist/embed/elements/embed/embed-element.d.ts +1 -1
  24. package/dist/embed/elements/embed/embed-element.d.ts.map +1 -1
  25. package/dist/embed/elements/embed/embed-inline-toolbar.d.ts.map +1 -1
  26. package/dist/embed/elements/embed/embed-render.d.ts.map +1 -1
  27. package/dist/embed/index.d.ts +1 -1
  28. package/dist/embed.js +2 -2
  29. package/dist/emoji.js +1 -1
  30. package/dist/file/elements/file/file-element.d.ts +1 -1
  31. package/dist/file/elements/file/file-element.d.ts.map +1 -1
  32. package/dist/file/elements/file/file-inline-toolbar.d.ts.map +1 -1
  33. package/dist/file/index.d.ts +1 -1
  34. package/dist/file.js +3 -3
  35. package/dist/image/elements/image/image-element.d.ts +1 -1
  36. package/dist/image/elements/image/image-element.d.ts.map +1 -1
  37. package/dist/image/elements/image/image-inline-toolbar.d.ts.map +1 -1
  38. package/dist/image/elements/image/image-render.d.ts.map +1 -1
  39. package/dist/image/index.d.ts +1 -1
  40. package/dist/image.js +2 -2
  41. package/dist/index.d.ts +1 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -1
  44. package/dist/link.js +1 -7
  45. package/dist/math/elements/math/math-edit.d.ts +13 -0
  46. package/dist/math/elements/math/math-edit.d.ts.map +1 -0
  47. package/dist/math/elements/math/math-element.d.ts +3 -0
  48. package/dist/math/elements/math/math-element.d.ts.map +1 -0
  49. package/dist/math/elements/math/math-preview.d.ts +10 -0
  50. package/dist/math/elements/math/math-preview.d.ts.map +1 -0
  51. package/dist/math/elements/math-block/math-block-element.d.ts +3 -0
  52. package/dist/math/elements/math-block/math-block-element.d.ts.map +1 -0
  53. package/dist/math/index.d.ts +15 -0
  54. package/dist/math/index.d.ts.map +1 -0
  55. package/dist/math.js +1 -0
  56. package/dist/mention.js +3 -3
  57. package/dist/steps/elements/steps-list-item.d.ts.map +1 -1
  58. package/dist/steps.js +1 -1
  59. package/dist/table-of-contents/elements/table-of-contents.d.ts.map +1 -1
  60. package/dist/table-of-contents.js +1 -1
  61. package/dist/table.js +3 -3
  62. package/dist/tabs.js +1 -1
  63. package/dist/video/elements/video/video-element.d.ts +1 -1
  64. package/dist/video/elements/video/video-element.d.ts.map +1 -1
  65. package/dist/video/elements/video/video-inline-toolbar.d.ts.map +1 -1
  66. package/dist/video/elements/video/video-render.d.ts.map +1 -1
  67. package/dist/video/index.d.ts +1 -1
  68. package/dist/video.js +2 -2
  69. package/package.json +21 -14
  70. package/dist/accordion.js.map +0 -1
  71. package/dist/blockquote.js.map +0 -1
  72. package/dist/callout.js.map +0 -1
  73. package/dist/carousel.js.map +0 -1
  74. package/dist/chunks/Combination-3c924518.js +0 -1080
  75. package/dist/chunks/Combination-3c924518.js.map +0 -1
  76. package/dist/chunks/_tslib-514d60fe.js +0 -67
  77. package/dist/chunks/_tslib-514d60fe.js.map +0 -1
  78. package/dist/chunks/arrow-right-5ddace59.js +0 -30
  79. package/dist/chunks/arrow-right-5ddace59.js.map +0 -1
  80. package/dist/chunks/button-27a1fbc2.js +0 -76
  81. package/dist/chunks/button-27a1fbc2.js.map +0 -1
  82. package/dist/chunks/button-7aec29d6.js +0 -1
  83. package/dist/chunks/card-12ed876a.js +0 -38
  84. package/dist/chunks/card-12ed876a.js.map +0 -1
  85. package/dist/chunks/check-9acc031a.js +0 -14
  86. package/dist/chunks/check-9acc031a.js.map +0 -1
  87. package/dist/chunks/chevron-down-7424d0c3.js +0 -16
  88. package/dist/chunks/chevron-down-7424d0c3.js.map +0 -1
  89. package/dist/chunks/chevron-up-546faa64.js +0 -14
  90. package/dist/chunks/chevron-up-546faa64.js.map +0 -1
  91. package/dist/chunks/code-5407bf8e.js +0 -17
  92. package/dist/chunks/code-5407bf8e.js.map +0 -1
  93. package/dist/chunks/createLucideIcon-6ba35914.js +0 -56
  94. package/dist/chunks/createLucideIcon-6ba35914.js.map +0 -1
  95. package/dist/chunks/dropdown-menu-9ba446af.js +0 -1250
  96. package/dist/chunks/dropdown-menu-9ba446af.js.map +0 -1
  97. package/dist/chunks/external-link-1bf3c7a2.js +0 -18
  98. package/dist/chunks/external-link-1bf3c7a2.js.map +0 -1
  99. package/dist/chunks/file-text-9e348575.js +0 -23
  100. package/dist/chunks/file-text-9e348575.js.map +0 -1
  101. package/dist/chunks/hover-card-22a4067b.js +0 -258
  102. package/dist/chunks/hover-card-22a4067b.js.map +0 -1
  103. package/dist/chunks/index-0c94b090.js +0 -222
  104. package/dist/chunks/index-0c94b090.js.map +0 -1
  105. package/dist/chunks/index-12e7c5fd.js +0 -155
  106. package/dist/chunks/index-12e7c5fd.js.map +0 -1
  107. package/dist/chunks/index-23c7fb16.js +0 -1
  108. package/dist/chunks/index-26994c9d.js +0 -131
  109. package/dist/chunks/index-26994c9d.js.map +0 -1
  110. package/dist/chunks/index-600be8f8.js +0 -190
  111. package/dist/chunks/index-600be8f8.js.map +0 -1
  112. package/dist/chunks/index-7e966ec9.js +0 -16
  113. package/dist/chunks/index-7e966ec9.js.map +0 -1
  114. package/dist/chunks/index-9ac5afe2.js +0 -201
  115. package/dist/chunks/index-9ac5afe2.js.map +0 -1
  116. package/dist/chunks/index-9bb7ddb4.js +0 -104
  117. package/dist/chunks/index-9bb7ddb4.js.map +0 -1
  118. package/dist/chunks/index-ae9b48d5.js +0 -12
  119. package/dist/chunks/index-ae9b48d5.js.map +0 -1
  120. package/dist/chunks/index-b26053ec.js +0 -3805
  121. package/dist/chunks/index-b26053ec.js.map +0 -1
  122. package/dist/chunks/index-b8f2908d.js +0 -40
  123. package/dist/chunks/index-b8f2908d.js.map +0 -1
  124. package/dist/chunks/index-c655a86f.js +0 -7
  125. package/dist/chunks/index-c655a86f.js.map +0 -1
  126. package/dist/chunks/index-d9171717.js +0 -13
  127. package/dist/chunks/index-d9171717.js.map +0 -1
  128. package/dist/chunks/index-e42d0aaf.js +0 -36
  129. package/dist/chunks/index-e42d0aaf.js.map +0 -1
  130. package/dist/chunks/index-ebc47eac.js +0 -2765
  131. package/dist/chunks/index-ebc47eac.js.map +0 -1
  132. package/dist/chunks/index-ffe23855.js +0 -71
  133. package/dist/chunks/index-ffe23855.js.map +0 -1
  134. package/dist/chunks/input-7c5e4260.js +0 -13
  135. package/dist/chunks/input-7c5e4260.js.map +0 -1
  136. package/dist/chunks/label-21d46c31.js +0 -1
  137. package/dist/chunks/label-2a076b3f.js +0 -70
  138. package/dist/chunks/label-2a076b3f.js.map +0 -1
  139. package/dist/chunks/language-select-b35256ab.js +0 -12
  140. package/dist/chunks/language-select-b35256ab.js.map +0 -1
  141. package/dist/chunks/play-c2a06e4e.js +0 -16
  142. package/dist/chunks/play-c2a06e4e.js.map +0 -1
  143. package/dist/chunks/plus-f36f52e8.js +0 -17
  144. package/dist/chunks/plus-f36f52e8.js.map +0 -1
  145. package/dist/chunks/popover-4b5c0941.js +0 -385
  146. package/dist/chunks/popover-4b5c0941.js.map +0 -1
  147. package/dist/chunks/popover-8e6ee2ab.js +0 -1
  148. package/dist/chunks/scroll-area-8dc03d8f.js +0 -727
  149. package/dist/chunks/scroll-area-8dc03d8f.js.map +0 -1
  150. package/dist/chunks/select-88f1b66c.js +0 -1281
  151. package/dist/chunks/select-88f1b66c.js.map +0 -1
  152. package/dist/chunks/separator-219dc1f7.js +0 -1
  153. package/dist/chunks/separator-a6b3e5d2.js +0 -74
  154. package/dist/chunks/separator-a6b3e5d2.js.map +0 -1
  155. package/dist/chunks/settings-2-8e53118c.js +0 -19
  156. package/dist/chunks/settings-2-8e53118c.js.map +0 -1
  157. package/dist/chunks/sparkles-a0316be3.js +0 -26
  158. package/dist/chunks/sparkles-a0316be3.js.map +0 -1
  159. package/dist/chunks/style-inject.es-746bb8ed.js +0 -29
  160. package/dist/chunks/style-inject.es-746bb8ed.js.map +0 -1
  161. package/dist/chunks/tabs-38ee85c4.js +0 -205
  162. package/dist/chunks/tabs-38ee85c4.js.map +0 -1
  163. package/dist/chunks/tooltip-eb8a0f63.js +0 -1671
  164. package/dist/chunks/tooltip-eb8a0f63.js.map +0 -1
  165. package/dist/chunks/trash-2-41ddec45.js +0 -20
  166. package/dist/chunks/trash-2-41ddec45.js.map +0 -1
  167. package/dist/chunks/upload-b987996c.js +0 -44
  168. package/dist/chunks/upload-b987996c.js.map +0 -1
  169. package/dist/chunks/utils-208f599b.js +0 -2500
  170. package/dist/chunks/utils-208f599b.js.map +0 -1
  171. package/dist/chunks/x-f7edc87d.js +0 -17
  172. package/dist/chunks/x-f7edc87d.js.map +0 -1
  173. package/dist/code-group.js.map +0 -1
  174. package/dist/code.js.map +0 -1
  175. package/dist/divider.js.map +0 -1
  176. package/dist/embed.js.map +0 -1
  177. package/dist/emoji.js.map +0 -1
  178. package/dist/file.js.map +0 -1
  179. package/dist/headings.js.map +0 -1
  180. package/dist/image.js.map +0 -1
  181. package/dist/index.js.map +0 -1
  182. package/dist/link.js.map +0 -1
  183. package/dist/lists.js.map +0 -1
  184. package/dist/mention.js.map +0 -1
  185. package/dist/paragraph.js.map +0 -1
  186. package/dist/steps.js.map +0 -1
  187. package/dist/table-of-contents.js.map +0 -1
  188. package/dist/table.js.map +0 -1
  189. package/dist/tabs.js.map +0 -1
  190. package/dist/video.js.map +0 -1
package/dist/file.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"file.js","sources":["../../../../node_modules/lucide-react/src/icons/archive.ts","../../../../node_modules/lucide-react/src/icons/file-audio.ts","../../../../node_modules/lucide-react/src/icons/file-image.ts","../../../../node_modules/lucide-react/src/icons/file-spreadsheet.ts","../../../../node_modules/lucide-react/src/icons/file-video.ts","../../../../node_modules/lucide-react/src/icons/file.ts","../../../../node_modules/lucide-react/src/icons/presentation.ts","../src/file/elements/file/file-placeholder.tsx","../src/file/elements/file/file-icons.tsx","../src/file/elements/file/file-inline-toolbar.tsx","../src/file/elements/file/file-render.tsx","../src/file/elements/file/file-element.tsx","../src/file/index.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Archive\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMjAiIGhlaWdodD0iNSIgeD0iMiIgeT0iMyIgcng9IjEiIC8+CiAgPHBhdGggZD0iTTQgOHYxMWEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOCIgLz4KICA8cGF0aCBkPSJNMTAgMTJoNCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/archive\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Archive = createLucideIcon('Archive', [\n ['rect', { width: '20', height: '5', x: '2', y: '3', rx: '1', key: '1wp1u1' }],\n ['path', { d: 'M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8', key: '1s80jp' }],\n ['path', { d: 'M10 12h4', key: 'a56b0p' }],\n]);\n\nexport default Archive;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileAudio\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcuNSAyMmguNWMuNSAwIDEtLjIgMS40LS42LjQtLjQuNi0uOS42LTEuNFY3LjVMMTQuNSAySDZjLS41IDAtMSAuMi0xLjQuNkM0LjIgMyA0IDMuNSA0IDR2MyIgLz4KICA8cG9seWxpbmUgcG9pbnRzPSIxNCAyIDE0IDggMjAgOCIgLz4KICA8cGF0aCBkPSJNMTAgMjB2LTFhMiAyIDAgMSAxIDQgMHYxYTIgMiAwIDEgMS00IDBaIiAvPgogIDxwYXRoIGQ9Ik02IDIwdi0xYTIgMiAwIDEgMC00IDB2MWEyIDIgMCAxIDAgNCAwWiIgLz4KICA8cGF0aCBkPSJNMiAxOXYtM2E2IDYgMCAwIDEgMTIgMHYzIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-audio\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileAudio = createLucideIcon('FileAudio', [\n [\n 'path',\n {\n d: 'M17.5 22h.5c.5 0 1-.2 1.4-.6.4-.4.6-.9.6-1.4V7.5L14.5 2H6c-.5 0-1 .2-1.4.6C4.2 3 4 3.5 4 4v3',\n key: '1013sb',\n },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['path', { d: 'M10 20v-1a2 2 0 1 1 4 0v1a2 2 0 1 1-4 0Z', key: 'gqt63y' }],\n ['path', { d: 'M6 20v-1a2 2 0 1 0-4 0v1a2 2 0 1 0 4 0Z', key: 'cf7lqx' }],\n ['path', { d: 'M2 19v-3a6 6 0 0 1 12 0v3', key: '1acxgf' }],\n]);\n\nexport default FileAudio;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileImage\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNy41TDE0LjUgMnoiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgPGNpcmNsZSBjeD0iMTAiIGN5PSIxMyIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjAgMTctMS4wOS0xLjA5YTIgMiAwIDAgMC0yLjgyIDBMMTAgMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileImage = createLucideIcon('FileImage', [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['circle', { cx: '10', cy: '13', r: '2', key: '6v46hv' }],\n ['path', { d: 'm20 17-1.09-1.09a2 2 0 0 0-2.82 0L10 22', key: '17vly1' }],\n]);\n\nexport default FileImage;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileSpreadsheet\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNy41TDE0LjUgMnoiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgPHBhdGggZD0iTTggMTNoMiIgLz4KICA8cGF0aCBkPSJNOCAxN2gyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxM2gyIiAvPgogIDxwYXRoIGQ9Ik0xNCAxN2gyIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-spreadsheet\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileSpreadsheet = createLucideIcon('FileSpreadsheet', [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['path', { d: 'M8 13h2', key: 'yr2amv' }],\n ['path', { d: 'M8 17h2', key: '2yhykz' }],\n ['path', { d: 'M14 13h2', key: 'un5t4a' }],\n ['path', { d: 'M14 17h2', key: '10kma7' }],\n]);\n\nexport default FileSpreadsheet;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name FileVideo\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNy41TDE0LjUgMnoiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+CiAgPHBhdGggZD0ibTEwIDExIDUgMy01IDN2LTZaIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/file-video\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileVideo = createLucideIcon('FileVideo', [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n ['path', { d: 'm10 11 5 3-5 3v-6Z', key: '7ntvm4' }],\n]);\n\nexport default FileVideo;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name File\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTQuNSAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWNy41TDE0LjUgMnoiIC8+CiAgPHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst File = createLucideIcon('File', [\n [\n 'path',\n { d: 'M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z', key: '1nnpy2' },\n ],\n ['polyline', { points: '14 2 14 8 20 8', key: '1ew0cm' }],\n]);\n\nexport default File;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Presentation\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMiAzaDIwIiAvPgogIDxwYXRoIGQ9Ik0yMSAzdjExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjMiIC8+CiAgPHBhdGggZD0ibTcgMjEgNS01IDUgNSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/presentation\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Presentation = createLucideIcon('Presentation', [\n ['path', { d: 'M2 3h20', key: '91anmk' }],\n ['path', { d: 'M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3', key: '2k9sn8' }],\n ['path', { d: 'm7 21 5-5 5 5', key: 'bip4we' }],\n]);\n\nexport default Presentation;\n","import { useRef } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport type { FileUploadProgress } from '@yoopta/file';\nimport { File as FileIcon, Loader2, Upload } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { cn } from '../../../utils';\n\ntype FilePlaceholderProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n className?: string;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n progress: FileUploadProgress | null;\n loading: boolean;\n accept?: string;\n};\n\n// Upload Progress Component\ntype FileUploadProgressProps = {\n progress: FileUploadProgress;\n};\n\nconst FileUploadProgressOverlay = ({ progress }: FileUploadProgressProps) => (\n <div className=\"absolute inset-0 z-20 flex flex-col items-center justify-center gap-4 bg-background/95 backdrop-blur-sm p-6 rounded-lg border\">\n <div className=\"w-full max-w-md space-y-4\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-medium\">Uploading file...</span>\n <span className=\"text-muted-foreground\">{progress.percentage}%</span>\n </div>\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-muted\">\n <div\n className=\"h-full bg-primary transition-all duration-300 ease-out\"\n style={{ width: `${progress.percentage}%` }}\n />\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span>\n {(progress.loaded / 1024 / 1024).toFixed(2)} MB / {(progress.total / 1024 / 1024).toFixed(2)} MB\n </span>\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n </div>\n </div>\n </div>\n </div>\n);\n\n// Upload Form Component\ntype FileUploadFormProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n accept?: string;\n};\n\nconst FileUploadForm = ({ onUpload, accept }: FileUploadFormProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n return (\n <div className=\"flex flex-col items-center gap-3 py-6\">\n <div className=\"rounded-lg bg-muted p-3\">\n <FileIcon className=\"h-6 w-6 text-muted-foreground\" />\n </div>\n <div className=\"text-center\">\n <p className=\"text-sm font-medium\">Upload a file</p>\n <p className=\"text-xs text-muted-foreground\">Click to select a file</p>\n </div>\n <Button onClick={() => fileInputRef.current?.click()} variant=\"default\" className=\"gap-2\">\n <Upload className=\"h-4 w-4\" />\n Choose file\n </Button>\n <input ref={fileInputRef} type=\"file\" accept={accept} onChange={onUpload} className=\"hidden\" />\n </div>\n );\n};\n\n// Main Component\nexport const FilePlaceholder = ({\n onUpload,\n className,\n attributes,\n children,\n progress,\n loading,\n accept,\n}: FilePlaceholderProps) => {\n const showUploadProgress = loading && progress;\n\n return (\n <div\n className={cn('mt-2 relative rounded-lg border bg-background overflow-hidden', className)}\n {...attributes}\n contentEditable={false}>\n <FileUploadForm onUpload={onUpload} accept={accept} />\n {showUploadProgress && progress && <FileUploadProgressOverlay progress={progress} />}\n {children}\n </div>\n );\n};\n","import type { FileType } from '@yoopta/file';\nimport {\n Archive,\n Code,\n File,\n FileAudio,\n FileImage,\n FileSpreadsheet,\n FileText,\n FileVideo,\n type LucideIcon,\n Presentation,\n} from 'lucide-react';\n\n// Map file types to icons and colors\nconst FILE_TYPE_ICONS: Record<FileType, { icon: LucideIcon; color: string; bgColor: string }> = {\n pdf: {\n icon: FileText,\n color: 'text-red-600 dark:text-red-400',\n bgColor: 'bg-red-100 dark:bg-red-900/30',\n },\n document: {\n icon: FileText,\n color: 'text-blue-600 dark:text-blue-400',\n bgColor: 'bg-blue-100 dark:bg-blue-900/30',\n },\n spreadsheet: {\n icon: FileSpreadsheet,\n color: 'text-green-600 dark:text-green-400',\n bgColor: 'bg-green-100 dark:bg-green-900/30',\n },\n presentation: {\n icon: Presentation,\n color: 'text-orange-600 dark:text-orange-400',\n bgColor: 'bg-orange-100 dark:bg-orange-900/30',\n },\n image: {\n icon: FileImage,\n color: 'text-purple-600 dark:text-purple-400',\n bgColor: 'bg-purple-100 dark:bg-purple-900/30',\n },\n video: {\n icon: FileVideo,\n color: 'text-pink-600 dark:text-pink-400',\n bgColor: 'bg-pink-100 dark:bg-pink-900/30',\n },\n audio: {\n icon: FileAudio,\n color: 'text-yellow-600 dark:text-yellow-400',\n bgColor: 'bg-yellow-100 dark:bg-yellow-900/30',\n },\n archive: {\n icon: Archive,\n color: 'text-amber-600 dark:text-amber-400',\n bgColor: 'bg-amber-100 dark:bg-amber-900/30',\n },\n code: {\n icon: Code,\n color: 'text-cyan-600 dark:text-cyan-400',\n bgColor: 'bg-cyan-100 dark:bg-cyan-900/30',\n },\n text: {\n icon: FileText,\n color: 'text-gray-600 dark:text-gray-400',\n bgColor: 'bg-gray-100 dark:bg-gray-800/50',\n },\n unknown: {\n icon: File,\n color: 'text-muted-foreground',\n bgColor: 'bg-muted',\n },\n};\n\ntype FileIconProps = {\n fileType: FileType;\n className?: string;\n};\n\nexport const FileIcon = ({ fileType, className }: FileIconProps) => {\n const config = FILE_TYPE_ICONS[fileType] ?? FILE_TYPE_ICONS.unknown;\n const Icon = config.icon;\n\n return <Icon className={className} />;\n};\n\nexport const getFileTypeStyles = (fileType: FileType) => FILE_TYPE_ICONS[fileType] ?? FILE_TYPE_ICONS.unknown;\n","import { useLayoutEffect, useState } from 'react';\nimport { FloatingPortal, autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react';\nimport copy from 'copy-to-clipboard';\nimport { Copy, Download, ExternalLink, RotateCw, Trash2 } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../ui/tooltip';\nimport { cn } from '../../../utils';\nimport type { FileElementProps } from '../../types';\n\ntype FileInlineToolbarProps = {\n referenceRef: React.MutableRefObject<HTMLElement | null>;\n elementProps: FileElementProps;\n onReplace: () => void;\n onDelete: () => void;\n onDownload?: () => void;\n};\n\nexport const FileInlineToolbar = ({\n referenceRef,\n elementProps,\n onReplace,\n onDelete,\n onDownload,\n}: FileInlineToolbarProps) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isReady, setIsReady] = useState(false);\n\n const { refs, floatingStyles } = useFloating({\n placement: 'top-end',\n strategy: 'absolute',\n middleware: [\n offset(8),\n flip({\n fallbackPlacements: ['bottom-end', 'top-start', 'bottom-start'],\n padding: 10,\n }),\n shift({ padding: 10 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n // Use useLayoutEffect to set reference before paint\n useLayoutEffect(() => {\n const element = referenceRef.current;\n if (element) {\n refs.setReference(element);\n setIsReady(true);\n }\n }, [referenceRef, refs]);\n\n // Show animation after ready\n useLayoutEffect(() => {\n if (isReady) {\n const timer = requestAnimationFrame(() => {\n setIsVisible(true);\n });\n return () => cancelAnimationFrame(timer);\n }\n }, [isReady]);\n\n const handleDownload = () => {\n if (onDownload) {\n onDownload();\n } else if (elementProps.src) {\n const a = document.createElement('a');\n a.href = elementProps.src;\n a.download = elementProps.name ?? `file-${Date.now()}`;\n a.click();\n }\n };\n\n const handleCopy = () => {\n if (elementProps.src) {\n copy(elementProps.src);\n }\n };\n\n const handleOpenLink = () => {\n if (elementProps.src) {\n window.open(elementProps.src, '_blank');\n }\n };\n\n // Don't render until reference is available and ready\n if (!isReady) return null;\n\n return (\n <FloatingPortal>\n <div\n ref={refs.setFloating}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => e.stopPropagation()}\n className={cn(\n 'pointer-events-auto z-50',\n 'flex items-center gap-1 rounded-lg border bg-background/95 backdrop-blur-sm p-1 shadow-lg',\n 'transition-opacity duration-200 ease-out',\n isVisible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-2',\n )}\n style={floatingStyles}>\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={onReplace}>\n <RotateCw className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Replace</TooltipContent>\n </Tooltip>\n\n {elementProps.src && (\n <>\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={handleDownload}>\n <Download className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Download</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={handleCopy}>\n <Copy className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Copy URL</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={handleOpenLink}>\n <ExternalLink className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Open in new tab</TooltipContent>\n </Tooltip>\n </>\n )}\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7 text-destructive hover:bg-destructive/10 hover:text-destructive\"\n onClick={onDelete}>\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Delete</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n </FloatingPortal>\n );\n};\n","import { useRef } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { useBlockSelected, useElementSelected } from '@yoopta/editor';\nimport { formatFileSize, getFileType } from '@yoopta/file';\nimport { Download } from 'lucide-react';\n\nimport { FileIcon, getFileTypeStyles } from './file-icons';\nimport { FileInlineToolbar } from './file-inline-toolbar';\nimport { Button } from '../../../ui/button';\nimport { cn } from '../../../utils';\nimport type { FileElementProps } from '../../types';\n\ntype Props = {\n blockId: string;\n onDelete: () => void;\n onReplace: () => void;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n elementProps: FileElementProps;\n};\n\nexport const FileRender = ({ blockId, attributes, children, elementProps, onDelete, onReplace }: Props) => {\n const { isElementSelected } = useElementSelected();\n const isBlockSelected = useBlockSelected({ blockId });\n const isSelected = isElementSelected && isBlockSelected;\n const cardRef = useRef<HTMLDivElement | null>(null);\n\n const { name, format, size, src } = elementProps;\n const displayName = format ? `${name}.${format}` : name ?? 'Untitled file';\n const fileType = getFileType(displayName);\n const typeStyles = getFileTypeStyles(fileType);\n\n const handleDownload = () => {\n if (!src) return;\n const a = document.createElement('a');\n a.href = src;\n a.download = displayName;\n a.click();\n };\n\n return (\n <div {...attributes} className=\"group/file mt-2 relative transition-all w-full\">\n <div className=\"relative\" contentEditable={false}>\n <div\n ref={cardRef}\n className={cn(\n 'flex items-center gap-3 p-3 rounded-lg border bg-card transition-all',\n 'hover:bg-accent/50',\n isSelected && 'ring-2 ring-primary ring-offset-2',\n )}>\n {/* File Icon */}\n <div className={cn('flex-shrink-0 rounded-lg p-2.5', typeStyles.bgColor)}>\n <FileIcon fileType={fileType} className={cn('h-5 w-5', typeStyles.color)} />\n </div>\n\n {/* File Info */}\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium truncate\">{displayName}</p>\n <p className=\"text-xs text-muted-foreground\">{formatFileSize(size)}</p>\n </div>\n\n {/* Download Button */}\n {src && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"flex-shrink-0 h-8 w-8 opacity-0 group-hover/file:opacity-100 transition-opacity\"\n onClick={handleDownload}>\n <Download className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n\n {isSelected && (\n <FileInlineToolbar\n referenceRef={cardRef}\n elementProps={elementProps}\n onReplace={onReplace}\n onDelete={onDelete}\n onDownload={handleDownload}\n />\n )}\n </div>\n {children}\n </div>\n );\n};\n","import { useCallback } from 'react';\nimport { type PluginElementRenderProps, useYooptaPluginOptions } from '@yoopta/editor';\nimport { Blocks, Elements, useYooptaEditor } from '@yoopta/editor';\nimport { useFileDelete, useFileUpload } from '@yoopta/file';\nimport type { FileElement as FileElementType, FilePluginOptions } from '@yoopta/file';\nimport { Editor, Element } from 'slate';\n\nimport { FilePlaceholder } from './file-placeholder';\nimport { FileRender } from './file-render';\nimport type { FileElementProps } from '../../types';\n\nexport const FileElement = ({ element, attributes, children, blockId }: PluginElementRenderProps) => {\n const editor = useYooptaEditor();\n const pluginOptions = useYooptaPluginOptions<FilePluginOptions>('File');\n const { upload: uploadFileToStorage, progress, loading } = useFileUpload(pluginOptions.upload);\n const { deleteFile: deleteFileFromStorage } = useFileDelete(pluginOptions.delete);\n\n const updateElement = useCallback(\n (props: Partial<FileElementProps>) => {\n Elements.updateElement(editor, {\n blockId,\n type: 'file',\n props: {\n ...element.props,\n ...props,\n },\n });\n },\n [editor, blockId, element.props],\n );\n\n const deleteFile = useCallback(async () => {\n await deleteFileFromStorage(element as FileElementType);\n const slate = Blocks.getBlockSlate(editor, { id: blockId });\n if (!slate) return;\n\n const elementPath = Elements.getElementPath(editor, { blockId, element });\n if (!elementPath) return;\n\n const parentEntry = elementPath ? Editor.parent(slate, elementPath) : undefined;\n if (parentEntry && Element.isElement(parentEntry[0]) && !Editor.isEditor(parentEntry[0])) {\n Elements.deleteElement(editor, {\n blockId,\n type: 'file',\n path: elementPath,\n });\n return;\n }\n\n Blocks.deleteBlock(editor, { blockId, focus: true });\n }, [editor, blockId, element, deleteFileFromStorage]);\n\n const replaceFile = useCallback(() => {\n Elements.updateElement(editor, {\n blockId,\n type: 'file',\n props: {\n ...element.props,\n id: null,\n src: null,\n name: null,\n size: null,\n format: null,\n },\n });\n }, [editor, blockId, element.props]);\n\n const onUpload = useCallback(\n async (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n const result = await uploadFileToStorage(file);\n\n // Parse name and format from result or file\n let name = result.name ?? file.name;\n let format: string | null = null;\n\n const dotIndex = name.lastIndexOf('.');\n if (dotIndex > 0) {\n format = name.slice(dotIndex + 1);\n name = name.slice(0, dotIndex);\n }\n\n updateElement({\n id: result.id,\n src: result.url,\n name,\n size: result.size ?? file.size,\n format,\n });\n },\n [uploadFileToStorage, updateElement],\n );\n\n // Show placeholder if no src\n if (!element.props.src) {\n return (\n <FilePlaceholder\n onUpload={onUpload}\n progress={progress}\n loading={loading}\n accept={pluginOptions.accept}\n attributes={attributes}>\n {children}\n </FilePlaceholder>\n );\n }\n\n return (\n <FileRender\n blockId={blockId}\n onDelete={deleteFile}\n attributes={attributes}\n onReplace={replaceFile}\n elementProps={element.props as FileElementProps}>\n {children}\n </FileRender>\n );\n};\n","import { FileElement } from './elements/file/file-element';\n\nexport const FileUI = {\n file: {\n render: FileElement,\n },\n};\n"],"names":["_jsx","_jsxs","FileIcon","copy","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaM,MAAA,OAAA,GAAU,iBAAiB,SAAW,EAAA;AAAA,EAC1C,CAAC,MAAA,EAAQ,EAAE,KAAA,EAAO,IAAA,EAAM,MAAQ,EAAA,GAAA,EAAK,CAAG,EAAA,GAAA,EAAK,CAAG,EAAA,GAAK,EAAA,EAAA,EAAI,GAAK,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EAC7E,CAAC,MAAQ,EAAA,EAAE,GAAG,0CAA4C,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACzE,CAAC,MAAQ,EAAA,EAAE,GAAG,UAAY,EAAA,GAAA,EAAK,UAAU,CAAA;AAC3C,CAAC,CAAA;;;;;;;;;;ACJK,MAAA,SAAA,GAAY,gBAAiB,CAAA,WAAa,EAAA;AAAA,EAC9C;AAAA,IACE,MAAA;AAAA,IACA;AAAA,MACE,CAAG,EAAA,8FAAA;AAAA,MACH,GAAK,EAAA,QAAA;AAAA,KACP;AAAA,GACF;AAAA,EACA,CAAC,UAAY,EAAA,EAAE,MAAQ,EAAA,gBAAkB,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxD,CAAC,MAAQ,EAAA,EAAE,GAAG,0CAA4C,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACzE,CAAC,MAAQ,EAAA,EAAE,CAAG,EAAA,yCAA2C,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxE,CAAC,MAAQ,EAAA,EAAE,CAAG,EAAA,2BAA6B,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAC5D,CAAC,CAAA;;;;;;;;;;ACZK,MAAA,SAAA,GAAY,gBAAiB,CAAA,WAAa,EAAA;AAAA,EAC9C;AAAA,IACE,MAAA;AAAA,IACA,EAAE,CAAA,EAAG,uEAAyE,EAAA,GAAA,EAAK,QAAS,EAAA;AAAA,GAC9F;AAAA,EACA,CAAC,UAAY,EAAA,EAAE,MAAQ,EAAA,gBAAkB,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxD,CAAC,QAAU,EAAA,EAAE,EAAI,EAAA,IAAA,EAAM,EAAI,EAAA,IAAA,EAAM,CAAG,EAAA,GAAA,EAAK,GAAK,EAAA,QAAA,EAAU,CAAA;AAAA,EACxD,CAAC,MAAQ,EAAA,EAAE,CAAG,EAAA,yCAA2C,EAAA,GAAA,EAAK,UAAU,CAAA;AAC1E,CAAC,CAAA;;;;;;;;;;ACRK,MAAA,eAAA,GAAkB,gBAAiB,CAAA,iBAAmB,EAAA;AAAA,EAC1D;AAAA,IACE,MAAA;AAAA,IACA,EAAE,CAAA,EAAG,uEAAyE,EAAA,GAAA,EAAK,QAAS,EAAA;AAAA,GAC9F;AAAA,EACA,CAAC,UAAY,EAAA,EAAE,MAAQ,EAAA,gBAAkB,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxD,CAAC,MAAQ,EAAA,EAAE,GAAG,SAAW,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxC,CAAC,MAAQ,EAAA,EAAE,GAAG,SAAW,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxC,CAAC,MAAQ,EAAA,EAAE,CAAA,EAAG,UAAY,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACzC,CAAC,MAAQ,EAAA,EAAE,GAAG,UAAY,EAAA,GAAA,EAAK,UAAU,CAAA;AAC3C,CAAC,CAAA;;;;;;;;;;ACVK,MAAA,SAAA,GAAY,gBAAiB,CAAA,WAAa,EAAA;AAAA,EAC9C;AAAA,IACE,MAAA;AAAA,IACA,EAAE,CAAA,EAAG,uEAAyE,EAAA,GAAA,EAAK,QAAS,EAAA;AAAA,GAC9F;AAAA,EACA,CAAC,UAAY,EAAA,EAAE,MAAQ,EAAA,gBAAkB,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxD,CAAC,MAAQ,EAAA,EAAE,CAAG,EAAA,oBAAsB,EAAA,GAAA,EAAK,UAAU,CAAA;AACrD,CAAC,CAAA;;;;;;;;;;ACPK,MAAA,IAAA,GAAO,gBAAA,CAAiB,MAAQ,EAAA;AAAA,EACpC;AAAA,IACE,MAAA;AAAA,IACA,EAAE,CAAA,EAAG,uEAAyE,EAAA,GAAA,EAAK,QAAS,EAAA;AAAA,GAC9F;AAAA,EACA,CAAC,UAAY,EAAA,EAAE,MAAA,EAAQ,gBAAkB,EAAA,GAAA,EAAK,UAAU,CAAA;AAC1D,CAAC,CAAA;;;;;;;;;;ACNK,MAAA,YAAA,GAAe,gBAAiB,CAAA,cAAgB,EAAA;AAAA,EACpD,CAAC,MAAQ,EAAA,EAAE,GAAG,SAAW,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACxC,CAAC,MAAQ,EAAA,EAAE,GAAG,0CAA4C,EAAA,GAAA,EAAK,QAAA,EAAU,CAAA;AAAA,EACzE,CAAC,MAAQ,EAAA,EAAE,CAAA,EAAG,eAAiB,EAAA,GAAA,EAAK,UAAU,CAAA;AAChD,CAAC,CAAA;;ACMD,MAAM,yBAAyB,GAAG,CAAC,EAAE,QAAQ,EAA2B,MACtEA,GAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAK,SAAS,EAAC,+HAA+H,EAAA,EAAA,EAAA,QAAA,EAC5IA,GAAK,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAC,2BAA2B,EACxC,EAAA,EAAA,QAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAK,SAAS,EAAC,WAAW,EAAA,EAAA,EAAA,QAAA,EAAA,CACxBA,IAAK,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAC,2CAA2C,iBACxDD,GAAM,CAAA,MAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAC,aAAa,EAAyB,EAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,EACtDC,IAAM,CAAA,MAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAC,uBAAuB,EAAE,EAAA,EAAA,QAAA,EAAA,CAAA,QAAQ,CAAC,UAAU,EAAS,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CACjE,EACND,GAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAK,SAAS,EAAC,kDAAkD,EAAA,EAAA,EAAA,QAAA,EAC/DA,GACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,wDAAwD,EAClE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAA,EAAG,QAAQ,CAAC,UAAU,CAAA,CAAA,CAAG,EAAE,EAAA,CAC3C,EACE,CAAA,CAAA,EACNC,IAAK,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAC,iEAAiE,EAC9E,EAAA,EAAA,QAAA,EAAA,CAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CACG,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,YAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EACvF,KAAA,CAAA,EAAA,CAAA,EACPD,GAAC,CAAA,OAAO,EAAC,EAAA,SAAS,EAAC,0BAA0B,EAAG,CAAA,CAAA,EAAA,CAAA,CAC5C,CACF,EAAA,CAAA,CAAA,EAAA,CAAA,CACF,EACF,CAAA,CAAA,CACP,CAAC;AAQF,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAuB,KAAI;AACnE,IAAA,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAEpD,QACEC,4BAAK,SAAS,EAAC,uCAAuC,EACpD,EAAA,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAK,SAAS,EAAC,yBAAyB,gBACtCA,GAAC,CAAAE,IAAQ,IAAC,SAAS,EAAC,+BAA+B,EAAG,CAAA,EAAA,CAAA,CAClD,EACND,IAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAK,SAAS,EAAC,aAAa,EAC1B,EAAA,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAA,GAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAG,SAAS,EAAC,qBAAqB,mCAAkB,EACpDA,GAAA,CAAA,GAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAG,SAAS,EAAC,+BAA+B,4CAA2B,CACnE,EAAA,CAAA,CAAA,EACNC,KAAC,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,OAAO,EAAE,MAAK,EAAA,IAAA,EAAA,CAAA,CAAC,OAAA,CAAA,EAAA,GAAA,YAAY,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAA,EAAA,EAAE,OAAO,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EACvF,EAAA,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAC,MAAM,EAAC,EAAA,SAAS,EAAC,SAAS,EAAG,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAEvB,EACTA,GAAO,CAAA,OAAA,EAAA,EAAA,GAAG,EAAE,YAAY,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAC,QAAQ,EAAA,CAAG,CAC3F,EAAA,CAAA,CAAA,EACN;AACJ,CAAC,CAAC;AAEF;AACO,MAAM,eAAe,GAAG,CAAC,EAC9B,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,GACe,KAAI;AACzB,IAAA,MAAM,kBAAkB,GAAG,OAAO,IAAI,QAAQ,CAAC;IAE/C,QACEC,4BACE,SAAS,EAAE,EAAE,CAAC,+DAA+D,EAAE,SAAS,CAAC,IACrF,UAAU,EAAA,EACd,eAAe,EAAE,KAAK,iBACtBD,GAAC,CAAA,cAAc,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAA,CAAI,EACrD,kBAAkB,IAAI,QAAQ,IAAIA,GAAA,CAAC,yBAAyB,EAAC,EAAA,QAAQ,EAAE,QAAQ,EAAA,CAAI,EACnF,QAAQ,CAAA,EAAA,CAAA,CACL,EACN;AACJ,CAAC;;ACnFD;AACA,MAAM,eAAe,GAA2E;AAC9F,IAAA,GAAG,EAAE;AACH,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,gCAAgC;AACvC,QAAA,OAAO,EAAE,+BAA+B;AACzC,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,kCAAkC;AACzC,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,KAAK,EAAE,oCAAoC;AAC3C,QAAA,OAAO,EAAE,mCAAmC;AAC7C,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,KAAK,EAAE,sCAAsC;AAC7C,QAAA,OAAO,EAAE,qCAAqC;AAC/C,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,sCAAsC;AAC7C,QAAA,OAAO,EAAE,qCAAqC;AAC/C,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,kCAAkC;AACzC,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,sCAAsC;AAC7C,QAAA,OAAO,EAAE,qCAAqC;AAC/C,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,oCAAoC;AAC3C,QAAA,OAAO,EAAE,mCAAmC;AAC7C,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE,kCAAkC;AACzC,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,kCAAkC;AACzC,QAAA,OAAO,EAAE,iCAAiC;AAC3C,KAAA;AACD,IAAA,OAAO,EAAE;AACP,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE,uBAAuB;AAC9B,QAAA,OAAO,EAAE,UAAU;AACpB,KAAA;CACF,CAAC;AAOK,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAiB,KAAI;;IACjE,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,eAAe,CAAC,QAAQ,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,eAAe,CAAC,OAAO,CAAC;AACpE,IAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AAEzB,IAAA,OAAOA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAE,SAAS,GAAI,CAAC;AACxC,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,QAAkB,KAAK,EAAA,IAAA,EAAA,CAAA,CAAA,OAAA,MAAA,eAAe,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,eAAe,CAAC,OAAO,CAAA,EAAA;;ACnEtG,MAAM,iBAAiB,GAAG,CAAC,EAChC,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,UAAU,GACa,KAAI;IAC3B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAE9C,IAAA,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;AAC3C,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,UAAU,EAAE;YACV,MAAM,CAAC,CAAC,CAAC;AACT,YAAA,IAAI,CAAC;AACH,gBAAA,kBAAkB,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,cAAc,CAAC;AAC/D,gBAAA,OAAO,EAAE,EAAE;aACZ,CAAC;AACF,YAAA,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACvB,SAAA;AACD,QAAA,oBAAoB,EAAE,UAAU;AACjC,KAAA,CAAC,CAAC;;IAGH,eAAe,CAAC,MAAK;AACnB,QAAA,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;AACrC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,CAAC;AAClB,SAAA;AACH,KAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;;IAGzB,eAAe,CAAC,MAAK;AACnB,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAK;gBACvC,YAAY,CAAC,IAAI,CAAC,CAAC;AACrB,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAA;AACH,KAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,cAAc,GAAG,MAAK;;AAC1B,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,UAAU,EAAE,CAAC;AACd,SAAA;aAAM,IAAI,YAAY,CAAC,GAAG,EAAE;YAC3B,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC;AAC1B,YAAA,CAAC,CAAC,QAAQ,GAAG,CAAA,EAAA,GAAA,YAAY,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,CAAA,KAAA,EAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACvD,CAAC,CAAC,KAAK,EAAE,CAAC;AACX,SAAA;AACH,KAAC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAK;QACtB,IAAI,YAAY,CAAC,GAAG,EAAE;AACpB,YAAAG,eAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACxB,SAAA;AACH,KAAC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAK;QAC1B,IAAI,YAAY,CAAC,GAAG,EAAE;YACpB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzC,SAAA;AACH,KAAC,CAAC;;AAGF,IAAA,IAAI,CAAC,OAAO;AAAE,QAAA,OAAO,IAAI,CAAC;AAE1B,IAAA,QACEH,GAAC,CAAA,cAAc,EACb,EAAA,QAAA,EAAAA,GAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EACE,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,WAAW,EAAE,CAAC,CAAC,KAAI;gBACjB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;AACtB,aAAC,EACD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EACnC,SAAS,EAAE,EAAE,CACX,0BAA0B,EAC1B,2FAA2F,EAC3F,0CAA0C,EAC1C,SAAS,GAAG,2BAA2B,GAAG,yBAAyB,CACpE,EACD,KAAK,EAAE,cAAc,EACrB,EAAA,EAAA,QAAA,EAAAC,IAAA,CAAC,eAAe,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,aAAa,EAAE,CAAC,EAAA,EAAA,EAAA,QAAA,EAAA,CAC/BA,KAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACND,GAAC,CAAA,cAAc,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,OAAO,EACrB,IAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,GAAA,CAAC,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,SAAS,EACxE,EAAA,EAAA,QAAA,EAAAA,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,IACzB,EACM,CAAA,CAAA,EACjBA,GAAC,CAAA,cAAc,EAAyB,EAAA,QAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,CAChC,EAET,YAAY,CAAC,GAAG,KACfC,IACE,CAAAG,QAAA,EAAA,EAAA,QAAA,EAAA,CAAAH,IAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACND,IAAC,cAAc,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EACrBA,GAAC,CAAA,MAAM,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,cAAc,EAAA,EAAA,EAAA,QAAA,EAC7EA,GAAC,CAAA,QAAQ,EAAC,EAAA,SAAS,EAAC,SAAS,EAAG,CAAA,EAAA,CAAA,CACzB,EACM,CAAA,CAAA,EACjBA,IAAC,cAAc,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,CAA0B,CACjC,EAAA,CAAA,EAEVC,IAAC,CAAA,OAAO,EACN,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAC,cAAc,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EACrBA,GAAC,CAAA,MAAM,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,UAAU,EACzE,EAAA,EAAA,QAAA,EAAAA,GAAA,CAAC,IAAI,EAAC,EAAA,SAAS,EAAC,SAAS,EAAG,CAAA,EAAA,CAAA,CACrB,EACM,CAAA,CAAA,EACjBA,GAAC,CAAA,cAAc,EAA0B,EAAA,QAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,CACjC,EAEVC,IAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACND,IAAC,cAAc,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EACrBA,GAAC,CAAA,MAAM,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,cAAc,EAAA,EAAA,EAAA,QAAA,EAC7EA,GAAC,CAAA,YAAY,EAAC,EAAA,SAAS,EAAC,SAAS,EAAG,CAAA,EAAA,CAAA,CAC7B,EACM,CAAA,CAAA,EACjBA,IAAC,cAAc,EAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAiC,CACxC,EAAA,CAAA,CAAA,EAAA,CACT,CACJ,EAEDC,IAAC,CAAA,OAAO,EACN,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAC,cAAc,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EACrBA,GAAC,CAAA,MAAM,kBACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,yEAAyE,EACnF,OAAO,EAAE,QAAQ,EAAA,EAAA,EAAA,QAAA,EACjBA,IAAC,MAAM,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EACvB,CAAA,CAAA,EAAA,CAAA,CACM,EACjBA,GAAA,CAAC,cAAc,EAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAAwB,CAC/B,EAAA,CAAA,CAAA,EAAA,CAAA,CACM,EACd,CAAA,CAAA,EAAA,CACS,EACjB;AACJ,CAAC;;AC3IM,MAAM,UAAU,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAS,KAAI;AACxG,IAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACnD,MAAM,eAAe,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACtD,IAAA,MAAM,UAAU,GAAG,iBAAiB,IAAI,eAAe,CAAC;AACxD,IAAA,MAAM,OAAO,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEpD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAA,EAAG,IAAI,CAAI,CAAA,EAAA,MAAM,EAAE,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,IAAI,GAAI,eAAe,CAAC;AAC3E,IAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;AAC1C,IAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAG,MAAK;AAC1B,QAAA,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACtC,QAAA,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;AACb,QAAA,CAAC,CAAC,QAAQ,GAAG,WAAW,CAAC;QACzB,CAAC,CAAC,KAAK,EAAE,CAAC;AACZ,KAAC,CAAC;AAEF,IAAA,QACEC,IAAS,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,UAAU,EAAE,EAAA,SAAS,EAAC,gDAAgD,EAAA,EAAA,EAAA,QAAA,EAAA,CAC7EA,IAAK,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,SAAS,EAAC,UAAU,EAAC,eAAe,EAAE,KAAK,EAC9C,EAAA,EAAA,QAAA,EAAA,CAAAA,IAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,EAAE,CACX,sEAAsE,EACtE,oBAAoB,EACpB,UAAU,IAAI,mCAAmC,CAClD,EAAA,EAAA,EAAA,QAAA,EAAA,CAEDD,2BAAK,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,UAAU,CAAC,OAAO,CAAC,EACtE,EAAA,EAAA,QAAA,EAAAA,GAAA,CAAC,QAAQ,EAAA,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,KAAK,CAAC,EAAA,CAAI,IACxE,EAGNC,IAAA,CAAA,KAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAK,SAAS,EAAC,gBAAgB,EAC7B,EAAA,EAAA,QAAA,EAAA,CAAAD,GAAA,CAAA,GAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAG,SAAS,EAAC,8BAA8B,EAAE,EAAA,EAAA,QAAA,EAAA,WAAW,EAAK,CAAA,CAAA,EAC7DA,yBAAG,SAAS,EAAC,+BAA+B,EAAA,EAAA,EAAA,QAAA,EAAE,cAAc,CAAC,IAAI,CAAC,EAAA,CAAA,CAAK,KACnE,EAGL,GAAG,KACFA,IAAC,MAAM,EAAA,MAAA,CAAA,MAAA,CAAA,EACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,iFAAiF,EAC3F,OAAO,EAAE,cAAc,EACvB,EAAA,EAAA,QAAA,EAAAA,GAAA,CAAC,QAAQ,EAAC,EAAA,SAAS,EAAC,SAAS,GAAG,EACzB,CAAA,CAAA,CACV,CACG,EAAA,CAAA,CAAA,EAEL,UAAU,KACTA,GAAC,CAAA,iBAAiB,IAChB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,cAAc,GAC1B,CACH,CAAA,EAAA,CAAA,CACG,EACL,QAAQ,CAAA,EAAA,CAAA,CACL,EACN;AACJ,CAAC;;AC3EM,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAA4B,KAAI;AAClG,IAAA,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;AACjC,IAAA,MAAM,aAAa,GAAG,sBAAsB,CAAoB,MAAM,CAAC,CAAC;AACxE,IAAA,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/F,IAAA,MAAM,EAAE,UAAU,EAAE,qBAAqB,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAElF,IAAA,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAgC,KAAI;AACnC,QAAA,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7B,OAAO;AACP,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,kCACA,OAAO,CAAC,KAAK,CAAA,EACb,KAAK,CACT;AACF,SAAA,CAAC,CAAC;KACJ,EACD,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CACjC,CAAC;AAEF,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAW,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AACxC,QAAA,MAAM,qBAAqB,CAAC,OAA0B,CAAC,CAAC;AACxD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,KAAK;YAAE,OAAO;AAEnB,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,WAAW;YAAE,OAAO;AAEzB,QAAA,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,SAAS,CAAC;QAChF,IAAI,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;AACxF,YAAA,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE;gBAC7B,OAAO;AACP,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,IAAI,EAAE,WAAW;AAClB,aAAA,CAAC,CAAC;YACH,OAAO;AACR,SAAA;AAED,QAAA,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,KAAC,CAAA,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAEtD,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAK;AACnC,QAAA,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE;YAC7B,OAAO;AACP,YAAA,IAAI,EAAE,MAAM;YACZ,KAAK,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACA,OAAO,CAAC,KAAK,CAAA,EAAA,EAChB,EAAE,EAAE,IAAI,EACR,GAAG,EAAE,IAAI,EACT,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,IAAI,EACb,CAAA;AACF,SAAA,CAAC,CAAC;KACJ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AAErC,IAAA,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAO,CAAsC,KAAI,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;QAC/C,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,MAAM,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAG,CAAC,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;AAElB,QAAA,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;;QAG/C,IAAI,IAAI,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC;QACpC,IAAI,MAAM,GAAkB,IAAI,CAAC;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChC,SAAA;AAED,QAAA,aAAa,CAAC;YACZ,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI;YACJ,IAAI,EAAE,MAAA,MAAM,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC,IAAI;YAC9B,MAAM;AACP,SAAA,CAAC,CAAC;KACJ,CAAA,EACD,CAAC,mBAAmB,EAAE,aAAa,CAAC,CACrC,CAAC;;AAGF,IAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE;AACtB,QAAA,QACEA,GAAA,CAAC,eAAe,EAAA,MAAA,CAAA,MAAA,CAAA,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,aAAa,CAAC,MAAM,EAC5B,UAAU,EAAE,UAAU,EAAA,EAAA,EAAA,QAAA,EACrB,QAAQ,EAAA,CAAA,CACO,EAClB;AACH,KAAA;AAED,IAAA,QACEA,GAAA,CAAC,UAAU,EAAA,MAAA,CAAA,MAAA,CAAA,EACT,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,WAAW,EACtB,YAAY,EAAE,OAAO,CAAC,KAAyB,EAAA,EAAA,EAAA,QAAA,EAC9C,QAAQ,EAAA,CAAA,CACE,EACb;AACJ,CAAC;;ACrHY,MAAA,MAAM,GAAG;AACpB,IAAA,IAAI,EAAE;AACJ,QAAA,MAAM,EAAE,WAAW;AACpB,KAAA;;;;;","x_google_ignoreList":[0,1,2,3,4,5,6]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"headings.js","sources":["../src/headings/heading-one/elements/heading-one.tsx","../src/headings/heading-one/index.ts","../src/headings/heading-three/elements/heading-three.tsx","../src/headings/heading-three/index.ts","../src/headings/heading-two/elements/heading-two.tsx","../src/headings/heading-two/index.ts","../src/headings/index.ts"],"sourcesContent":["import { Anchor, PopoverContent, PopoverTrigger } from '@radix-ui/react-popover';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { Popover } from '../../../ui/popover';\nimport { Input } from '../../../ui/input';\n\nexport const HeadingOne = (props: PluginElementRenderProps) => {\n const { attributes, children, element } = props;\n\n return (\n <h1\n id={element.id}\n draggable={false}\n {...attributes}\n className=\"scroll-m-20 mt-8 text-4xl font-extrabold tracking-tight lg:text-5xl\">\n {children}\n </h1>\n );\n};\n","import { HeadingOne } from './elements/heading-one';\n\nexport const HeadingOneUI = {\n 'heading-one': {\n render: HeadingOne,\n },\n};\n","import type { PluginElementRenderProps } from '@yoopta/editor';\n\nexport const HeadingThree = (props: PluginElementRenderProps) => {\n const { attributes, children, element } = props;\n\n return (\n <h3\n id={element.id}\n draggable={false}\n {...attributes}\n className=\"mt-4 scroll-m-20 text-2xl font-semibold tracking-tight\">\n {children}\n </h3>\n );\n};\n","import { HeadingThree } from './elements/heading-three';\n\nexport const HeadingThreeUI = {\n 'heading-three': {\n render: HeadingThree,\n },\n};\n","import type { PluginElementRenderProps } from '@yoopta/editor';\n\nexport const HeadingTwo = (props: PluginElementRenderProps) => {\n const { attributes, children, element } = props;\n\n return (\n <h2\n id={element.id}\n draggable={false}\n {...attributes}\n className=\"mt-6 scroll-m-20 text-3xl font-semibold tracking-tight transition-colors\">\n {children}\n </h2>\n );\n};\n","import { HeadingTwo } from './elements/heading-two';\n\nexport const HeadingTwoUI = {\n 'heading-two': {\n render: HeadingTwo,\n },\n};\n","import { HeadingOneUI } from './heading-one';\nimport { HeadingThreeUI } from './heading-three';\nimport { HeadingTwoUI } from './heading-two';\n\nexport const HeadingsUI = {\n HeadingOne: HeadingOneUI,\n HeadingTwo: HeadingTwoUI,\n HeadingThree: HeadingThreeUI,\n};\n"],"names":["_jsx"],"mappings":";;AAKO,MAAM,UAAU,GAAG,CAAC,KAA+B,KAAI;IAC5D,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhD,QACEA,0BACE,EAAE,EAAE,OAAO,CAAC,EAAE,EACd,SAAS,EAAE,KAAK,EACZ,EAAA,UAAU,IACd,SAAS,EAAC,qEAAqE,EAC9E,EAAA,EAAA,QAAA,EAAA,QAAQ,EACN,CAAA,CAAA,EACL;AACJ,CAAC;;ACfM,MAAM,YAAY,GAAG;AAC1B,IAAA,aAAa,EAAE;AACb,QAAA,MAAM,EAAE,UAAU;AACnB,KAAA;CACF;;ACJM,MAAM,YAAY,GAAG,CAAC,KAA+B,KAAI;IAC9D,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhD,QACEA,0BACE,EAAE,EAAE,OAAO,CAAC,EAAE,EACd,SAAS,EAAE,KAAK,EACZ,EAAA,UAAU,IACd,SAAS,EAAC,wDAAwD,EACjE,EAAA,EAAA,QAAA,EAAA,QAAQ,EACN,CAAA,CAAA,EACL;AACJ,CAAC;;ACZM,MAAM,cAAc,GAAG;AAC5B,IAAA,eAAe,EAAE;AACf,QAAA,MAAM,EAAE,YAAY;AACrB,KAAA;CACF;;ACJM,MAAM,UAAU,GAAG,CAAC,KAA+B,KAAI;IAC5D,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhD,QACEA,0BACE,EAAE,EAAE,OAAO,CAAC,EAAE,EACd,SAAS,EAAE,KAAK,EACZ,EAAA,UAAU,IACd,SAAS,EAAC,0EAA0E,EACnF,EAAA,EAAA,QAAA,EAAA,QAAQ,EACN,CAAA,CAAA,EACL;AACJ,CAAC;;ACZM,MAAM,YAAY,GAAG;AAC1B,IAAA,aAAa,EAAE;AACb,QAAA,MAAM,EAAE,UAAU;AACnB,KAAA;CACF;;ACFY,MAAA,UAAU,GAAG;AACxB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,YAAY,EAAE,cAAc;;;;;"}
package/dist/image.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.js","sources":["../../../../node_modules/lucide-react/src/icons/image.ts","../src/image/elements/image/image-placeholder-unsplash.tsx","../src/image/elements/image/image-placeholder.tsx","../../../../node_modules/@radix-ui/react-slider/src/slider.tsx","../src/ui/slider.tsx","../src/image/elements/image/image-inline-toolbar-settings.tsx","../src/image/elements/image/image-inline-toolbar.tsx","../src/image/elements/image/image-render.tsx","../src/image/elements/image/image-element.tsx","../src/image/index.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Image\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjMiIHJ4PSIyIiByeT0iMiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMiIgLz4KICA8cGF0aCBkPSJtMjEgMTUtMy4wODYtMy4wODZhMiAyIDAgMCAwLTIuODI4IDBMNiAyMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/image\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Image = createLucideIcon('Image', [\n ['rect', { width: '18', height: '18', x: '3', y: '3', rx: '2', ry: '2', key: '1m3agn' }],\n ['circle', { cx: '9', cy: '9', r: '2', key: 'af1f0g' }],\n ['path', { d: 'm21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21', key: '1xmnt7' }],\n]);\n\nexport default Image;\n","import { Button } from '../../../ui/button';\nimport { TabsContent } from '../../../ui/tabs';\n\nexport const ImagePlaceholderUnsplash = ({ onInsertFromUnsplash }) => (\n <TabsContent value=\"unsplash\" className=\"mt-4\">\n <div className=\"flex flex-col items-center gap-3 py-6\">\n <div className=\"rounded-lg bg-muted p-3\">\n <svg className=\"h-6 w-6\" viewBox=\"0 0 32 32\" fill=\"currentColor\">\n <path d=\"M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z\" />\n </svg>\n </div>\n <div className=\"text-center\">\n <p className=\"text-sm font-medium\">Browse free photos</p>\n <p className=\"text-xs text-muted-foreground\">Powered by Unsplash</p>\n </div>\n <Button onClick={onInsertFromUnsplash}>Browse photos</Button>\n </div>\n </TabsContent>\n);\n","import { useRef, useState } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport type { ImageUploadPreview, ImageUploadProgress } from '@yoopta/image';\nimport { ImageIcon, LinkIcon, Loader2, Sparkles, Upload } from 'lucide-react';\n\nimport { ImagePlaceholderUnsplash } from './image-placeholder-unsplash';\nimport { Button } from '../../../ui/button';\nimport { Input } from '../../../ui/input';\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from '../../../ui/tabs';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../../../ui/tooltip';\nimport { cn } from '../../../utils';\n\ntype ImagePlaceholderProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onInsertUrl: (url: string) => void;\n onInsertFromUnsplash?: () => void;\n onInsertFromAI?: (prompt: string) => void;\n className?: string;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n preview: ImageUploadPreview | null;\n progress: ImageUploadProgress | null;\n loading: boolean;\n};\n\n// Preview Image Component\ntype ImagePreviewProps = {\n preview: ImageUploadPreview;\n};\n\nconst ImagePreview = ({ preview }: ImagePreviewProps) => (\n <div\n className=\"absolute inset-0 overflow-hidden\"\n style={{\n width: preview.width,\n height: preview.height,\n }}>\n <img\n src={preview.url}\n alt=\"Preview\"\n className=\"h-full w-full object-cover object-center\"\n style={{\n width: preview.width,\n height: preview.height,\n }}\n draggable={false}\n />\n </div>\n);\n\n// Upload Progress Component\ntype ImageUploadProgressProps = {\n progress: ImageUploadProgress;\n};\n\nconst ImageUploadProgressOverlay = ({ progress }: ImageUploadProgressProps) => (\n <div className=\"absolute inset-0 z-20 flex flex-col items-center justify-center gap-4 bg-black/70 backdrop-blur-sm p-6\">\n <div className=\"w-full max-w-md space-y-4\">\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-medium text-white\">Uploading...</span>\n <span className=\"text-white/80\">{progress.percentage}%</span>\n </div>\n <div className=\"h-2 w-full overflow-hidden rounded-full bg-white/20\">\n <div\n className=\"h-full bg-primary transition-all duration-300 ease-out\"\n style={{ width: `${progress.percentage}%` }}\n />\n </div>\n <div className=\"flex items-center justify-between text-xs text-white/60\">\n <span>\n {(progress.loaded / 1024 / 1024).toFixed(2)} MB /{' '}\n {(progress.total / 1024 / 1024).toFixed(2)} MB\n </span>\n <Loader2 className=\"h-3.5 w-3.5 animate-spin\" />\n </div>\n </div>\n </div>\n </div>\n);\n\n// Upload Form Component\ntype ImageUploadFormProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n hasPreview: boolean;\n};\n\nconst ImageUploadForm = ({ onUpload, hasPreview }: ImageUploadFormProps) => {\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n if (hasPreview) {\n return (\n <div className=\"flex flex-col items-center justify-center gap-4 py-8\">\n <div className=\"text-center space-y-2\">\n <p className=\"text-sm font-medium text-white\">Image preview</p>\n <p className=\"text-xs text-white/80\">Uploading your image...</p>\n </div>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n onChange={onUpload}\n className=\"hidden\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col items-center gap-3 py-6\">\n <div className=\"rounded-lg bg-muted p-3\">\n <ImageIcon className=\"h-6 w-6 text-muted-foreground\" />\n </div>\n <div className=\"text-center\">\n <p className=\"text-sm font-medium\">Upload an image</p>\n <p className=\"text-xs text-muted-foreground\">Click or drag and drop</p>\n </div>\n <Button onClick={() => fileInputRef.current?.click()}>Choose file</Button>\n <input\n ref={fileInputRef}\n type=\"file\"\n accept=\"image/*\"\n onChange={onUpload}\n className=\"hidden\"\n />\n </div>\n );\n};\n\n// Link Form Component\ntype ImageLinkFormProps = {\n onInsertUrl: (url: string) => void;\n};\n\nconst ImageLinkForm = ({ onInsertUrl }: ImageLinkFormProps) => {\n const [urlInput, setUrlInput] = useState('');\n\n const handleSubmit = () => {\n if (urlInput.trim()) {\n onInsertUrl(urlInput.trim());\n setUrlInput('');\n }\n };\n\n return (\n <div className=\"mt-4 space-y-3\">\n <Input\n placeholder=\"Paste image URL...\"\n value={urlInput}\n onChange={(e) => setUrlInput(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && urlInput.trim()) {\n handleSubmit();\n }\n }}\n />\n <Button className=\"w-full\" onClick={handleSubmit} disabled={!urlInput.trim()}>\n Embed image\n </Button>\n </div>\n );\n};\n\n// AI Form Component\ntype ImageAIFormProps = {\n onInsertFromAI: (prompt: string) => void;\n};\n\nconst ImageAIForm = ({ onInsertFromAI }: ImageAIFormProps) => {\n const [aiPrompt, setAiPrompt] = useState('');\n const [isGenerating, setIsGenerating] = useState(false);\n\n const handleSubmit = () => {\n if (aiPrompt.trim() && !isGenerating) {\n setIsGenerating(true);\n onInsertFromAI(aiPrompt.trim());\n setIsGenerating(false);\n setAiPrompt('');\n }\n };\n\n return (\n <div className=\"mt-4 space-y-3\">\n <div className=\"space-y-2\">\n <Input\n placeholder=\"Describe the image...\"\n value={aiPrompt}\n onChange={(e) => setAiPrompt(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleSubmit();\n }\n }}\n disabled={isGenerating}\n />\n <p className=\"text-xs text-muted-foreground\">\n Example: &quot;A sunset over mountains with dramatic clouds&rdquo;\n </p>\n </div>\n <Button\n className=\"w-full gap-2\"\n onClick={handleSubmit}\n disabled={!aiPrompt.trim() || isGenerating}>\n {isGenerating ? (\n <>\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n Generating...\n </>\n ) : (\n <>\n <Sparkles className=\"h-4 w-4\" />\n Generate image\n </>\n )}\n </Button>\n </div>\n );\n};\n\n// Tabs Container Component\ntype ImagePlaceholderTabsProps = {\n onUpload: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onInsertUrl: (url: string) => void;\n onInsertFromUnsplash?: () => void;\n onInsertFromAI?: (prompt: string) => void;\n hasPreview: boolean;\n};\n\nconst ImagePlaceholderTabs = ({\n onUpload,\n onInsertUrl,\n onInsertFromUnsplash,\n onInsertFromAI,\n hasPreview,\n}: ImagePlaceholderTabsProps) => (\n <div className={cn('relative p-4', hasPreview && 'min-h-[300px] flex flex-col')}>\n <Tabs defaultValue=\"upload\" className=\"w-full\">\n <TabsList\n className={cn(\n 'grid w-full grid-cols-4',\n hasPreview && 'bg-background/80 backdrop-blur-sm',\n )}>\n <TabsTrigger value=\"upload\" className=\"gap-1.5\">\n <Upload className=\"h-3.5 w-3.5\" />\n Upload\n </TabsTrigger>\n <Tooltip>\n <TooltipTrigger asChild>\n <TabsTrigger value=\"link\" disabled className=\"gap-1.5\">\n <LinkIcon className=\"h-3.5 w-3.5\" />\n Link\n </TabsTrigger>\n </TooltipTrigger>\n <TooltipContent>\n Link is not available yet\n </TooltipContent>\n </Tooltip>\n {onInsertFromUnsplash && (\n <Tooltip>\n <TooltipTrigger asChild>\n <TabsTrigger value=\"unsplash\" disabled className=\"gap-1.5\">\n <svg className=\"h-3.5 w-3.5\" viewBox=\"0 0 32 32\" fill=\"currentColor\">\n <path d=\"M10 9V0h12v9H10zm12 5h10v18H0V14h10v9h12v-9z\" />\n </svg>\n Unsplash\n </TabsTrigger>\n </TooltipTrigger>\n <TooltipContent>\n Unsplash is not available yet\n </TooltipContent>\n </Tooltip>\n )}\n {onInsertFromAI && (\n <Tooltip>\n <TooltipTrigger asChild>\n <TabsTrigger value=\"ai\" disabled className=\"gap-1.5\">\n <Sparkles className=\"h-3.5 w-3.5\" />\n AI\n </TabsTrigger>\n </TooltipTrigger>\n <TooltipContent>\n AI is not available yet\n </TooltipContent>\n </Tooltip>\n )}\n </TabsList>\n\n <TabsContent value=\"upload\" className=\"mt-4\">\n <ImageUploadForm onUpload={onUpload} hasPreview={hasPreview} />\n </TabsContent>\n\n <TabsContent value=\"link\">\n <ImageLinkForm onInsertUrl={onInsertUrl} />\n </TabsContent>\n\n {onInsertFromUnsplash && (\n <ImagePlaceholderUnsplash onInsertFromUnsplash={onInsertFromUnsplash} />\n )}\n\n {onInsertFromAI && (\n <TabsContent value=\"ai\">\n <ImageAIForm onInsertFromAI={onInsertFromAI} />\n </TabsContent>\n )}\n </Tabs>\n </div>\n);\n\n// Main Component\nexport const ImagePlaceholder = ({\n onUpload,\n onInsertUrl,\n onInsertFromUnsplash,\n onInsertFromAI,\n className,\n attributes,\n children,\n preview,\n progress,\n loading,\n}: ImagePlaceholderProps) => {\n const hasPreview = preview !== null && !!preview.url;\n const showUploadProgress = loading && progress;\n\n return (\n <div\n className={cn(\n 'mt-2 relative rounded-lg border bg-background overflow-hidden',\n hasPreview && 'min-h-[300px]',\n className,\n )}\n {...attributes}\n contentEditable={false}>\n {hasPreview && <ImagePreview preview={preview} />}\n\n {!hasPreview && (\n <ImagePlaceholderTabs\n onUpload={onUpload}\n onInsertUrl={onInsertUrl}\n onInsertFromUnsplash={onInsertFromUnsplash}\n onInsertFromAI={onInsertFromAI}\n hasPreview={hasPreview}\n />\n )}\n\n {showUploadProgress && progress && <ImageUploadProgressOverlay progress={progress} />}\n {children}\n </div>\n );\n};\n","import * as React from 'react';\nimport { clamp } from '@radix-ui/number';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useSize } from '@radix-ui/react-use-size';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { createCollection } from '@radix-ui/react-collection';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Direction = 'ltr' | 'rtl';\n\nconst PAGE_KEYS = ['PageUp', 'PageDown'];\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\ntype SlideDirection = 'from-left' | 'from-right' | 'from-bottom' | 'from-top';\nconst BACK_KEYS: Record<SlideDirection, string[]> = {\n 'from-left': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-right': ['Home', 'PageDown', 'ArrowDown', 'ArrowRight'],\n 'from-bottom': ['Home', 'PageDown', 'ArrowDown', 'ArrowLeft'],\n 'from-top': ['Home', 'PageDown', 'ArrowUp', 'ArrowLeft'],\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Slider\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLIDER_NAME = 'Slider';\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<SliderThumbElement>(SLIDER_NAME);\n\ntype ScopedProps<P> = P & { __scopeSlider?: Scope };\nconst [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope,\n]);\n\ntype SliderContextValue = {\n name: string | undefined;\n disabled: boolean | undefined;\n min: number;\n max: number;\n values: number[];\n valueIndexToChangeRef: React.MutableRefObject<number>;\n thumbs: Set<SliderThumbElement>;\n orientation: SliderProps['orientation'];\n form: string | undefined;\n};\n\nconst [SliderProvider, useSliderContext] = createSliderContext<SliderContextValue>(SLIDER_NAME);\n\ntype SliderElement = SliderHorizontalElement | SliderVerticalElement;\ninterface SliderProps\n extends Omit<\n SliderHorizontalProps | SliderVerticalProps,\n keyof SliderOrientationPrivateProps | 'defaultValue'\n > {\n name?: string;\n disabled?: boolean;\n orientation?: React.AriaAttributes['aria-orientation'];\n dir?: Direction;\n min?: number;\n max?: number;\n step?: number;\n minStepsBetweenThumbs?: number;\n value?: number[];\n defaultValue?: number[];\n onValueChange?(value: number[]): void;\n onValueCommit?(value: number[]): void;\n inverted?: boolean;\n form?: string;\n}\n\nconst Slider = React.forwardRef<SliderElement, SliderProps>(\n (props: ScopedProps<SliderProps>, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = 'horizontal',\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {},\n onValueCommit = () => {},\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef<SliderContextValue['thumbs']>(new Set());\n const valueIndexToChangeRef = React.useRef<number>(0);\n const isHorizontal = orientation === 'horizontal';\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value);\n },\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n\n function handleSlideStart(value: number) {\n const closestIndex = getClosestValueIndex(values, value);\n updateValues(value, closestIndex);\n }\n\n function handleSlideMove(value: number) {\n updateValues(value, valueIndexToChangeRef.current);\n }\n\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n\n function updateValues(value: number, atIndex: number, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n\n return (\n <SliderProvider\n scope={props.__scopeSlider}\n name={name}\n disabled={disabled}\n min={min}\n max={max}\n valueIndexToChangeRef={valueIndexToChangeRef}\n thumbs={thumbRefs.current}\n values={values}\n orientation={orientation}\n form={form}\n >\n <Collection.Provider scope={props.__scopeSlider}>\n <Collection.Slot scope={props.__scopeSlider}>\n <SliderOrientation\n aria-disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n {...sliderProps}\n ref={forwardedRef}\n onPointerDown={composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n })}\n min={min}\n max={max}\n inverted={inverted}\n onSlideStart={disabled ? undefined : handleSlideStart}\n onSlideMove={disabled ? undefined : handleSlideMove}\n onSlideEnd={disabled ? undefined : handleSlideEnd}\n onHomeKeyDown={() => !disabled && updateValues(min, 0, { commit: true })}\n onEndKeyDown={() =>\n !disabled && updateValues(max, values.length - 1, { commit: true })\n }\n onStepKeyDown={({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || (event.shiftKey && ARROW_KEYS.includes(event.key));\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value = values[atIndex]!;\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value + stepInDirection, atIndex, { commit: true });\n }\n }}\n />\n </Collection.Slot>\n </Collection.Provider>\n </SliderProvider>\n );\n }\n);\n\nSlider.displayName = SLIDER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderHorizontal\n * -----------------------------------------------------------------------------------------------*/\n\ntype Side = 'top' | 'right' | 'bottom' | 'left';\n\nconst [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext<{\n startEdge: Side;\n endEdge: Side;\n size: keyof NonNullable<ReturnType<typeof useSize>>;\n direction: number;\n}>(SLIDER_NAME, {\n startEdge: 'left',\n endEdge: 'right',\n size: 'width',\n direction: 1,\n});\n\ntype SliderOrientationPrivateProps = {\n min: number;\n max: number;\n inverted: boolean;\n onSlideStart?(value: number): void;\n onSlideMove?(value: number): void;\n onSlideEnd?(): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(step: { event: React.KeyboardEvent; direction: number }): void;\n};\ninterface SliderOrientationProps\n extends Omit<SliderImplProps, keyof SliderImplPrivateProps>,\n SliderOrientationPrivateProps {}\n\ntype SliderHorizontalElement = SliderImplElement;\ninterface SliderHorizontalProps extends SliderOrientationProps {\n dir?: Direction;\n}\n\nconst SliderHorizontal = React.forwardRef<SliderHorizontalElement, SliderHorizontalProps>(\n (props: ScopedProps<SliderHorizontalProps>, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState<SliderImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef<DOMRect>(undefined);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n const isSlidingFromLeft = (isDirectionLTR && !inverted) || (!isDirectionLTR && inverted);\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || slider!.getBoundingClientRect();\n const input: [number, number] = [0, rect.width];\n const output: [number, number] = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromLeft ? 'left' : 'right'}\n endEdge={isSlidingFromLeft ? 'right' : 'left'}\n direction={isSlidingFromLeft ? 1 : -1}\n size=\"width\"\n >\n <SliderImpl\n dir={direction}\n data-orientation=\"horizontal\"\n {...sliderProps}\n ref={composedRefs}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateX(-50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromLeft ? 'from-left' : 'from-right';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderVertical\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderVerticalElement = SliderImplElement;\ninterface SliderVerticalProps extends SliderOrientationProps {}\n\nconst SliderVertical = React.forwardRef<SliderVerticalElement, SliderVerticalProps>(\n (props: ScopedProps<SliderVerticalProps>, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef<SliderImplElement>(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef<DOMRect>(undefined);\n const isSlidingFromBottom = !inverted;\n\n function getValueFromPointer(pointerPosition: number) {\n const rect = rectRef.current || sliderRef.current!.getBoundingClientRect();\n const input: [number, number] = [0, rect.height];\n const output: [number, number] = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n\n return (\n <SliderOrientationProvider\n scope={props.__scopeSlider}\n startEdge={isSlidingFromBottom ? 'bottom' : 'top'}\n endEdge={isSlidingFromBottom ? 'top' : 'bottom'}\n size=\"height\"\n direction={isSlidingFromBottom ? 1 : -1}\n >\n <SliderImpl\n data-orientation=\"vertical\"\n {...sliderProps}\n ref={ref}\n style={{\n ...sliderProps.style,\n ['--radix-slider-thumb-transform' as any]: 'translateY(50%)',\n }}\n onSlideStart={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n }}\n onSlideMove={(event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n }}\n onSlideEnd={() => {\n rectRef.current = undefined;\n onSlideEnd?.();\n }}\n onStepKeyDown={(event) => {\n const slideDirection = isSlidingFromBottom ? 'from-bottom' : 'from-top';\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }}\n />\n </SliderOrientationProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderImpl\n * -----------------------------------------------------------------------------------------------*/\n\ntype SliderImplElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ntype SliderImplPrivateProps = {\n onSlideStart(event: React.PointerEvent): void;\n onSlideMove(event: React.PointerEvent): void;\n onSlideEnd(event: React.PointerEvent): void;\n onHomeKeyDown(event: React.KeyboardEvent): void;\n onEndKeyDown(event: React.KeyboardEvent): void;\n onStepKeyDown(event: React.KeyboardEvent): void;\n};\ninterface SliderImplProps extends PrimitiveDivProps, SliderImplPrivateProps {}\n\nconst SliderImpl = React.forwardRef<SliderImplElement, SliderImplProps>(\n (props: ScopedProps<SliderImplProps>, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n\n return (\n <Primitive.span\n {...sliderProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === 'Home') {\n onHomeKeyDown(event);\n // Prevent scrolling to page start\n event.preventDefault();\n } else if (event.key === 'End') {\n onEndKeyDown(event);\n // Prevent scrolling to page end\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n // Prevent scrolling for directional key presses\n event.preventDefault();\n }\n })}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target as HTMLElement;\n target.setPointerCapture(event.pointerId);\n // Prevent browser focus behaviour because we focus a thumb manually when values change.\n event.preventDefault();\n // Touch devices have a delay before focusing so won't focus if touch immediately moves\n // away from target (sliding). We want thumb to focus regardless.\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n })}\n onPointerMove={composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n })}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })}\n />\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * SliderTrack\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRACK_NAME = 'SliderTrack';\n\ntype SliderTrackElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface SliderTrackProps extends PrimitiveSpanProps {}\n\nconst SliderTrack = React.forwardRef<SliderTrackElement, SliderTrackProps>(\n (props: ScopedProps<SliderTrackProps>, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return (\n <Primitive.span\n data-disabled={context.disabled ? '' : undefined}\n data-orientation={context.orientation}\n {...trackProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nSliderTrack.displayName = TRACK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderRange\n * -----------------------------------------------------------------------------------------------*/\n\nconst RANGE_NAME = 'SliderRange';\n\ntype SliderRangeElement = React.ComponentRef<typeof Primitive.span>;\ninterface SliderRangeProps extends PrimitiveSpanProps {}\n\nconst SliderRange = React.forwardRef<SliderRangeElement, SliderRangeProps>(\n (props: ScopedProps<SliderRangeProps>, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef<HTMLSpanElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map((value) =>\n convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n\n return (\n <Primitive.span\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n {...rangeProps}\n ref={composedRefs}\n style={{\n ...props.style,\n [orientation.startEdge]: offsetStart + '%',\n [orientation.endEdge]: offsetEnd + '%',\n }}\n />\n );\n }\n);\n\nSliderRange.displayName = RANGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderThumb\n * -----------------------------------------------------------------------------------------------*/\n\nconst THUMB_NAME = 'SliderThumb';\n\ntype SliderThumbElement = SliderThumbImplElement;\ninterface SliderThumbProps extends Omit<SliderThumbImplProps, 'index'> {}\n\nconst SliderThumb = React.forwardRef<SliderThumbElement, SliderThumbProps>(\n (props: ScopedProps<SliderThumbProps>, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState<SliderThumbImplElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => (thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1),\n [getItems, thumb]\n );\n return <SliderThumbImpl {...props} ref={composedRefs} index={index} />;\n }\n);\n\ntype SliderThumbImplElement = React.ComponentRef<typeof Primitive.span>;\ninterface SliderThumbImplProps extends PrimitiveSpanProps {\n index: number;\n name?: string;\n}\n\nconst SliderThumbImpl = React.forwardRef<SliderThumbImplElement, SliderThumbImplProps>(\n (props: ScopedProps<SliderThumbImplProps>, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState<HTMLSpanElement | null>(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n // We set this to true by default so that events bubble to forms without JS (SSR)\n const isFormControl = thumb ? context.form || !!thumb.closest('form') : true;\n const size = useSize(thumb);\n // We cast because index could be `-1` which would return undefined\n const value = context.values[index] as number | undefined;\n const percent =\n value === undefined ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize\n ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction)\n : 0;\n\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n\n return (\n <span\n style={{\n transform: 'var(--radix-slider-thumb-transform)',\n position: 'absolute',\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`,\n }}\n >\n <Collection.ItemSlot scope={props.__scopeSlider}>\n <Primitive.span\n role=\"slider\"\n aria-label={props['aria-label'] || label}\n aria-valuemin={context.min}\n aria-valuenow={value}\n aria-valuemax={context.max}\n aria-orientation={context.orientation}\n data-orientation={context.orientation}\n data-disabled={context.disabled ? '' : undefined}\n tabIndex={context.disabled ? undefined : 0}\n {...thumbProps}\n ref={composedRefs}\n /**\n * There will be no value on initial render while we work out the index so we hide thumbs\n * without a value, otherwise SSR will render them in the wrong position before they\n * snap into the correct position during hydration which would be visually jarring for\n * slower connections.\n */\n style={value === undefined ? { display: 'none' } : props.style}\n onFocus={composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })}\n />\n </Collection.ItemSlot>\n\n {isFormControl && (\n <SliderBubbleInput\n key={index}\n name={\n name ??\n (context.name ? context.name + (context.values.length > 1 ? '[]' : '') : undefined)\n }\n form={context.form}\n value={value}\n />\n )}\n </span>\n );\n }\n);\n\nSliderThumb.displayName = THUMB_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * SliderBubbleInput\n * -----------------------------------------------------------------------------------------------*/\n\nconst BUBBLE_INPUT_NAME = 'RadioBubbleInput';\n\ntype InputProps = React.ComponentPropsWithoutRef<typeof Primitive.input>;\ninterface SliderBubbleInputProps extends InputProps {}\n\nconst SliderBubbleInput = React.forwardRef<HTMLInputElement, SliderBubbleInputProps>(\n ({ __scopeSlider, value, ...props }: ScopedProps<SliderBubbleInputProps>, forwardedRef) => {\n const ref = React.useRef<HTMLInputElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevValue = usePrevious(value);\n\n // Bubble value change to parents (e.g form change event)\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, 'value') as PropertyDescriptor;\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event('input', { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n\n /**\n * We purposefully do not use `type=\"hidden\"` here otherwise forms that\n * wrap it will not be able to access its value via the FormData API.\n *\n * We purposefully do not add the `value` attribute here to allow the value\n * to be set programmatically and bubble to any parent form `onChange` event.\n * Adding the `value` will cause React to consider the programmatic\n * dispatch a duplicate and it will get swallowed.\n */\n return (\n <Primitive.input\n style={{ display: 'none' }}\n {...props}\n ref={composedRefs}\n defaultValue={value}\n />\n );\n }\n);\n\nSliderBubbleInput.displayName = BUBBLE_INPUT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getNextSortedValues(prevValues: number[] = [], nextValue: number, atIndex: number) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\n\nfunction convertValueToPercentage(value: number, min: number, max: number) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\n\n/**\n * Returns a label for each thumb when there are two or more thumbs\n */\nfunction getLabel(index: number, totalValues: number) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return ['Minimum', 'Maximum'][index];\n } else {\n return undefined;\n }\n}\n\n/**\n * Given a `values` array and a `nextValue`, determine which value in\n * the array is closest to `nextValue` and return its index.\n *\n * @example\n * // returns 1\n * getClosestValueIndex([10, 30], 25);\n */\nfunction getClosestValueIndex(values: number[], nextValue: number) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\n\n/**\n * Offsets the thumb centre point while sliding to ensure it remains\n * within the bounds of the slider when reaching the edges\n */\nfunction getThumbInBoundsOffset(width: number, left: number, direction: number) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\n\n/**\n * Gets an array of steps between each value.\n *\n * @example\n * // returns [1, 9]\n * getStepsBetweenValues([10, 11, 20]);\n */\nfunction getStepsBetweenValues(values: number[]) {\n return values.slice(0, -1).map((value, index) => values[index + 1]! - value);\n}\n\n/**\n * Verifies the minimum steps between all values is greater than or equal\n * to the expected minimum steps.\n *\n * @example\n * // returns false\n * hasMinStepsBetweenValues([1,2,3], 2);\n *\n * @example\n * // returns true\n * hasMinStepsBetweenValues([1,2,3], 1);\n */\nfunction hasMinStepsBetweenValues(values: number[], minStepsBetweenValues: number) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input: readonly [number, number], output: readonly [number, number]) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction getDecimalCount(value: number) {\n return (String(value).split('.')[1] || '').length;\n}\n\nfunction roundValue(value: number, decimalCount: number) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\n\nconst Root = Slider;\nconst Track = SliderTrack;\nconst Range = SliderRange;\nconst Thumb = SliderThumb;\n\nexport {\n createSliderScope,\n //\n Slider,\n SliderTrack,\n SliderRange,\n SliderThumb,\n //\n Root,\n Track,\n Range,\n Thumb,\n};\nexport type { SliderProps, SliderTrackProps, SliderRangeProps, SliderThumbProps };\n","'use client';\n\nimport * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from '../utils';\n\nconst Slider = ({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) => {\n const values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n );\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className,\n )}\n {...props}>\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5',\n )}>\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n 'bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full',\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n};\n\nexport { Slider };\n","import { useState } from 'react';\nimport { Settings2 } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { Input } from '../../../ui/input';\nimport { Label } from '../../../ui/label';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../../ui/popover';\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../../../ui/select';\nimport { Separator } from '../../../ui/separator';\nimport { Slider } from '../../../ui/slider';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../ui/tooltip';\nimport type { ImageElementProps, ObjectFit } from '../../types';\n\ntype ImageInlineToolbarSettingsProps = {\n fit: ObjectFit;\n alt: string;\n borderRadius: number;\n onUpdate: (props: Partial<ImageElementProps>) => void;\n};\n\nconst FIT_LABELS: Partial<Record<ObjectFit, { label: string; description: string }>> = {\n contain: { label: 'Contain', description: 'Fit within bounds' },\n cover: { label: 'Cover', description: 'Fill and crop' },\n fill: { label: 'Fill', description: 'Stretch to fit' },\n};\n\nexport const ImageInlineToolbarSettings = ({\n fit,\n alt,\n borderRadius,\n onUpdate,\n}: ImageInlineToolbarSettingsProps) => {\n const [localAlt, setLocalAlt] = useState(alt);\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <PopoverTrigger asChild>\n <Button variant={isOpen ? 'secondary' : 'ghost'} size=\"icon\" className=\"h-7 w-7\">\n <Settings2 className=\"h-4 w-4\" />\n </Button>\n </PopoverTrigger>\n </TooltipTrigger>\n <TooltipContent>Settings</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n\n <PopoverContent\n className=\"w-80 p-3\"\n align=\"start\"\n contentEditable={false}\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"space-y-3\">\n <div>\n <h4 className=\"font-semibold\">Image settings</h4>\n <p className=\"text-xs text-muted-foreground\">Customize how the image appears</p>\n </div>\n <Separator />\n <div className=\"space-y-1\">\n <Label htmlFor=\"alt-text\" className=\"text-sm font-medium\">\n Alt text\n </Label>\n <Input\n id=\"alt-text\"\n value={localAlt}\n onChange={(e) => setLocalAlt(e.target.value)}\n onBlur={() => onUpdate({ alt: localAlt })}\n placeholder=\"Describe this image...\"\n className=\"h-9\"\n />\n <p className=\"text-xs text-muted-foreground\">Important for accessibility and SEO</p>\n </div>\n\n <div className=\"space-y-1 z-50\">\n <Label htmlFor=\"object-fit\" className=\"text-sm font-medium\">\n How image fits\n </Label>\n <Select value={fit} onValueChange={(value: ObjectFit) => onUpdate({ fit: value })}>\n <SelectTrigger id=\"object-fit\" className=\"h-9 w-full\">\n <SelectValue placeholder=\"Select how image fits\">\n <div className=\"flex items-center gap-2\">\n <div className=\"font-medium\">{FIT_LABELS[fit]?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS[fit]?.description}\n </div>\n </div>\n </SelectValue>\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectItem value=\"contain\" className=\"cursor-pointer\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded border\">\n <div className=\"h-4 w-3 rounded bg-primary\" />\n </div>\n <div className=\"flex-1\">\n <div className=\"font-medium\">{FIT_LABELS.contain?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS.contain?.description}\n </div>\n </div>\n </div>\n </SelectItem>\n <SelectItem value=\"cover\" className=\"cursor-pointer\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded border\">\n <div className=\"h-8 w-6 rounded bg-primary\" />\n </div>\n <div className=\"flex-1\">\n <div className=\"font-medium\">{FIT_LABELS.cover?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS.cover?.description}\n </div>\n </div>\n </div>\n </SelectItem>\n <SelectItem value=\"fill\" className=\"cursor-pointer\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex h-8 w-8 shrink-0 items-center justify-center rounded border\">\n <div className=\"h-8 w-8 rounded bg-primary\" />\n </div>\n <div className=\"flex-1\">\n <div className=\"font-medium\">{FIT_LABELS.fill?.label}</div>\n <div className=\"text-xs text-muted-foreground\">\n {FIT_LABELS.fill?.description}\n </div>\n </div>\n </div>\n </SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n\n <div className=\"space-y-1\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-sm font-medium\">Border radius</Label>\n <span className=\"text-sm text-muted-foreground\">{borderRadius}px</span>\n </div>\n <Slider\n value={[borderRadius]}\n onValueChange={([value]) => onUpdate({ borderRadius: value })}\n max={50}\n step={1}\n className=\"w-full\"\n />\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n};\n","import { useLayoutEffect, useState } from 'react';\nimport { FloatingPortal, autoUpdate, flip, offset, shift, useFloating } from '@floating-ui/react';\nimport { AlignCenter, AlignLeft, AlignRight, Copy, Download, RotateCw, Trash2 } from 'lucide-react';\n\nimport { ImageInlineToolbarSettings } from './image-inline-toolbar-settings';\nimport { Button } from '../../../ui/button';\nimport { Separator } from '../../../ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../../../ui/tooltip';\nimport { cn } from '../../../utils';\nimport type { ImageElementProps } from '../../types';\n\ntype ImageInlineToolbarProps = {\n referenceRef: React.MutableRefObject<HTMLElement | null>;\n elementProps: ImageElementProps;\n onUpdate: (props: Partial<ImageElementProps>) => void;\n onReplace: () => void;\n onDelete: () => void;\n onDownload: () => void;\n onCopy: () => void;\n};\n\nexport const ImageInlineToolbar = ({\n referenceRef,\n elementProps,\n onUpdate,\n onReplace,\n onDelete,\n onDownload,\n onCopy,\n}: ImageInlineToolbarProps) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isReady, setIsReady] = useState(false);\n\n const { refs, floatingStyles } = useFloating({\n placement: 'top-end',\n strategy: 'absolute',\n middleware: [\n offset(8),\n flip({\n fallbackPlacements: ['bottom-end', 'top-start', 'bottom-start'],\n padding: 10,\n }),\n shift({ padding: 10 }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n // Use useLayoutEffect to set reference before paint\n useLayoutEffect(() => {\n const element = referenceRef.current;\n if (element) {\n refs.setReference(element);\n // Mark as ready after reference is set\n setIsReady(true);\n }\n }, [referenceRef, refs]);\n\n // Show animation after ready\n useLayoutEffect(() => {\n if (isReady) {\n // Small delay for animation\n const timer = requestAnimationFrame(() => {\n setIsVisible(true);\n });\n return () => cancelAnimationFrame(timer);\n }\n }, [isReady]);\n\n // Don't render until reference is available and ready\n if (!isReady) return null;\n\n return (\n <FloatingPortal>\n <div\n ref={refs.setFloating}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => e.stopPropagation()}\n className={cn(\n 'pointer-events-auto z-50',\n 'flex items-center gap-1 rounded-lg border bg-background/95 backdrop-blur-sm p-1 shadow-lg',\n 'transition-opacity duration-200 ease-out',\n isVisible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-2',\n )}\n style={floatingStyles}>\n <TooltipProvider delayDuration={0}>\n <div className=\"flex items-center gap-0.5 border-r pr-1\">\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant={elementProps.alignment === 'left' ? 'secondary' : 'ghost'}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => onUpdate({ alignment: 'left' })}>\n <AlignLeft className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Align left</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant={elementProps.alignment === 'center' ? 'secondary' : 'ghost'}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => onUpdate({ alignment: 'center' })}>\n <AlignCenter className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Align center</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant={elementProps.alignment === 'right' ? 'secondary' : 'ghost'}\n size=\"icon\"\n className=\"h-7 w-7\"\n onClick={() => onUpdate({ alignment: 'right' })}>\n <AlignRight className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Align right</TooltipContent>\n </Tooltip>\n </div>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={onReplace}>\n <RotateCw className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Replace</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={onDownload}>\n <Download className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Download</TooltipContent>\n </Tooltip>\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-7 w-7\" onClick={onCopy}>\n <Copy className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Copy</TooltipContent>\n </Tooltip>\n\n <Separator orientation=\"vertical\" className=\"h-4\" />\n\n <ImageInlineToolbarSettings\n fit={elementProps.fit ?? 'contain'}\n alt={elementProps.alt ?? ''}\n borderRadius={elementProps.borderRadius ?? 0}\n onUpdate={onUpdate}\n />\n\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-7 w-7 text-destructive hover:bg-destructive/10 hover:text-destructive\"\n onClick={onDelete}>\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TooltipTrigger>\n <TooltipContent>Delete</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n </div>\n </FloatingPortal>\n );\n};\n","import { useEffect, useRef, useState } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { useBlockSelected, useElementSelected, useYooptaEditor } from '@yoopta/editor';\nimport type { ImagePluginOptions } from '@yoopta/image';\nimport copy from 'copy-to-clipboard';\nimport { Rnd } from 'react-rnd';\n\nimport { ImageInlineToolbar } from './image-inline-toolbar';\nimport { cn } from '../../../utils';\nimport type { ImageElementProps } from '../../types';\n\ntype Props = {\n blockId: string;\n elementId: string;\n onUpdate: (props: Partial<ImageElementProps>) => void;\n onDelete: () => void;\n onReplace: () => void;\n attributes: PluginElementRenderProps['attributes'];\n children: React.ReactNode;\n elementProps: ImageElementProps;\n pluginOptions?: ImagePluginOptions;\n};\n\nexport const ImageRender = ({\n blockId,\n attributes,\n children,\n elementProps,\n onUpdate,\n onDelete,\n onReplace,\n pluginOptions,\n}: Props) => {\n const [sizes, setSizes] = useState(elementProps.sizes);\n const { isElementSelected } = useElementSelected();\n const isBlockSelected = useBlockSelected({ blockId });\n const isSelected = isElementSelected && isBlockSelected;\n const imageContainerRef = useRef<HTMLDivElement>(null);\n const editor = useYooptaEditor();\n\n // Get max sizes from plugin options, with default maxWidth from editor width\n const [maxSizes, setMaxSizes] = useState(() => {\n const editorWidth = editor.refElement?.getBoundingClientRect().width ?? Infinity;\n const maxSizesOptions = pluginOptions?.maxSizes;\n\n return {\n maxWidth: maxSizesOptions?.maxWidth\n ? typeof maxSizesOptions.maxWidth === 'number'\n ? maxSizesOptions.maxWidth\n : parseInt(String(maxSizesOptions.maxWidth).replace(/[^\\d]/g, ''), 10)\n : editorWidth,\n maxHeight: maxSizesOptions?.maxHeight\n ? typeof maxSizesOptions.maxHeight === 'number'\n ? maxSizesOptions.maxHeight\n : parseInt(String(maxSizesOptions.maxHeight).replace(/[^\\d]/g, ''), 10)\n : Infinity,\n };\n });\n\n // Update maxSizes when editor width changes\n useEffect(() => {\n const updateMaxSizes = () => {\n const editorWidth = editor.refElement?.getBoundingClientRect().width ?? Infinity;\n const pluginMaxSizes = pluginOptions?.maxSizes;\n\n setMaxSizes({\n maxWidth: pluginMaxSizes?.maxWidth\n ? typeof pluginMaxSizes.maxWidth === 'number'\n ? pluginMaxSizes.maxWidth\n : parseInt(String(pluginMaxSizes.maxWidth).replace(/[^\\d]/g, ''), 10)\n : editorWidth,\n maxHeight: pluginMaxSizes?.maxHeight\n ? typeof pluginMaxSizes.maxHeight === 'number'\n ? pluginMaxSizes.maxHeight\n : parseInt(String(pluginMaxSizes.maxHeight).replace(/[^\\d]/g, ''), 10)\n : Infinity,\n });\n };\n\n updateMaxSizes();\n\n const resizeObserver = new ResizeObserver(updateMaxSizes);\n if (editor.refElement) {\n resizeObserver.observe(editor.refElement);\n }\n\n window.addEventListener('resize', updateMaxSizes);\n\n return () => {\n resizeObserver.disconnect();\n window.removeEventListener('resize', updateMaxSizes);\n };\n }, [editor, pluginOptions]);\n\n // Helper function to limit sizes (similar to limitSizes from @yoopta/image)\n const limitImageSizes = (\n // eslint-disable-next-line @typescript-eslint/no-shadow\n sizes: { width: number | string; height: number | string },\n // eslint-disable-next-line @typescript-eslint/no-shadow\n maxSizes: { width: number | string; height: number | string },\n ): { width: number; height: number } => {\n const parseSize = (value: string | number): number => {\n if (typeof value === 'number') return value;\n return parseInt(String(value).replace(/[^\\d]/g, ''), 10);\n };\n\n const currentWidth = parseSize(sizes.width);\n const currentHeight = parseSize(sizes.height);\n const maxWidth = parseSize(maxSizes.width);\n const maxHeight = parseSize(maxSizes.height);\n\n if (currentWidth <= maxWidth && currentHeight <= maxHeight) {\n return { width: currentWidth, height: currentHeight };\n }\n\n const widthRatio = currentWidth / maxWidth;\n const heightRatio = currentHeight / maxHeight;\n const ratio = Math.max(widthRatio, heightRatio);\n\n const newWidth = Math.round(currentWidth / ratio);\n const newHeight = Math.round(currentHeight / ratio);\n\n return {\n width: Math.min(newWidth, maxWidth),\n height: Math.min(newHeight, maxHeight),\n };\n };\n\n const onResizeStop = (_e: any, _direction: any, ref: HTMLElement) => {\n const newWidth = parseInt(ref.style.width, 10);\n const newHeight = parseInt(ref.style.height, 10);\n\n // Apply max size limits\n const limitedSizes = limitImageSizes(\n { width: newWidth, height: newHeight },\n { width: maxSizes.maxWidth, height: maxSizes.maxHeight },\n );\n\n onUpdate({\n sizes: limitedSizes,\n });\n };\n\n const onResize = (_e: any, _direction: any, ref: HTMLElement) => {\n const newWidth = parseInt(ref.style.width, 10);\n const newHeight = parseInt(ref.style.height, 10);\n\n // Apply max size limits during resize\n const limitedSizes = limitImageSizes(\n { width: newWidth, height: newHeight },\n { width: maxSizes.maxWidth, height: maxSizes.maxHeight },\n );\n\n setSizes(limitedSizes);\n };\n\n const download = async () => {\n try {\n const response = await fetch(elementProps.src);\n const blob = await response.blob();\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `image-${Date.now()}.jpg`;\n a.click();\n URL.revokeObjectURL(url);\n } catch (error) {\n // error\n }\n };\n\n const copyImage = async () => {\n try {\n const response = await fetch(elementProps.src);\n const blob = await response.blob();\n\n if (navigator.clipboard && ClipboardItem) {\n await navigator.clipboard.write([new ClipboardItem({ [blob.type]: blob })]);\n } else {\n copy(elementProps.src);\n }\n } catch (error) {\n copy(elementProps.src);\n }\n };\n\n const alignmentClass = {\n left: 'justify-start',\n center: 'justify-center',\n right: 'justify-end',\n }[elementProps.alignment ?? 'center'];\n\n return (\n <div\n {...attributes}\n className={cn('group/image mt-4 relative transition-all w-full flex', alignmentClass)}>\n <div className=\"relative\" contentEditable={false} ref={imageContainerRef}>\n <Rnd\n style={{\n position: 'relative',\n outline: isSelected ? '.125rem solid rgba(0, 0, 0, 0)' : 'none',\n outlineColor: isSelected ? 'hsl(var(--primary))' : 'none',\n padding: 2\n }}\n onResize={onResize}\n onResizeStop={onResizeStop}\n lockAspectRatio\n minWidth={100}\n minHeight={100}\n position={{ x: Infinity, y: 0 }}\n enableResizing={\n isSelected\n ? {\n bottom: false,\n bottomLeft: false,\n bottomRight: false,\n left: true,\n right: true,\n top: false,\n topLeft: false,\n topRight: false,\n }\n : false\n }\n disableDragging\n resizeHandleStyles={{\n left: {\n width: 'auto',\n height: '40px',\n left: '-5px',\n top: '50%',\n transform: 'translateY(-50%)',\n cursor: 'ew-resize',\n },\n right: {\n width: 'auto',\n height: '40px',\n right: '-5px',\n top: '50%',\n transform: 'translateY(-50%)',\n cursor: 'ew-resize',\n },\n }}\n resizeHandleComponent={{\n left: (\n <div className=\"h-10 w-2 rounded-full bg-primary shadow-md ring-2 ring-white/80\" />\n ),\n right: (\n <div className=\"h-10 w-2 rounded-full bg-primary shadow-md ring-2 ring-white/80\" />\n ),\n }}\n className={cn('rounded-sm')}>\n <img\n src={elementProps.src}\n alt={elementProps.alt || ''}\n className=\"w-full h-full transition-all duration-200\"\n style={{\n objectFit: elementProps.fit,\n borderRadius: `${elementProps.borderRadius}px`,\n }}\n draggable={false}\n />\n </Rnd>\n {isSelected && (\n <ImageInlineToolbar\n referenceRef={imageContainerRef}\n elementProps={elementProps}\n onUpdate={onUpdate}\n onReplace={onReplace}\n onDelete={onDelete}\n onDownload={download}\n onCopy={copyImage}\n />\n )}\n </div>\n {children}\n </div>\n );\n};\n","import { useCallback } from 'react';\nimport { type PluginElementRenderProps, useYooptaPluginOptions } from '@yoopta/editor';\nimport { Blocks, Elements, useYooptaEditor } from '@yoopta/editor';\nimport {\n type ImageElement as ImageElementType,\n type ImagePluginOptions,\n useImageDelete,\n useImagePreview,\n useImageUpload,\n} from '@yoopta/image';\nimport { Editor, Element } from 'slate';\n\nimport { ImagePlaceholder } from './image-placeholder';\nimport { ImageRender } from './image-render';\nimport type { ImageElementProps } from '../../types';\n\nexport const ImageElement = ({\n element,\n attributes,\n children,\n blockId,\n}: PluginElementRenderProps) => {\n const editor = useYooptaEditor();\n const pluginOptions = useYooptaPluginOptions<ImagePluginOptions>('Image');\n const { upload: uploadImageToStorage, progress, loading } = useImageUpload(pluginOptions.upload!);\n const { deleteImage: deleteImageFromStorage } = useImageDelete(pluginOptions.delete!);\n const { preview, generatePreview, clearPreview } = useImagePreview();\n\n const updateElement = useCallback(\n (props: Partial<ImageElementProps>) => {\n Elements.updateElement(editor, {\n blockId,\n type: 'image',\n props: {\n ...element.props,\n ...props,\n },\n });\n },\n [editor, blockId, element.props],\n );\n\n const deleteImage = useCallback(async () => {\n await deleteImageFromStorage(element as ImageElementType);\n const slate = Blocks.getBlockSlate(editor, { id: blockId });\n if (!slate) return;\n\n const elementPath = Elements.getElementPath(editor, { blockId, element });\n if (!elementPath) return;\n\n const parentEntry = elementPath ? Editor.parent(slate, elementPath) : undefined;\n if (parentEntry && Element.isElement(parentEntry[0]) && !Editor.isEditor(parentEntry[0])) {\n Elements.deleteElement(editor, {\n blockId,\n type: 'image',\n path: elementPath,\n });\n return;\n }\n\n Blocks.deleteBlock(editor, { blockId, focus: true });\n }, [editor, blockId, element, deleteImageFromStorage]);\n\n const replaceImage = useCallback(() => {\n Elements.updateElement(editor, {\n blockId,\n type: 'image',\n props: {\n ...element.props,\n src: null,\n alt: null,\n },\n });\n }, [editor, blockId, element.props]);\n\n const onUpload = useCallback(\n async (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n\n generatePreview(file);\n const result = await uploadImageToStorage(file);\n updateElement({\n id: result.id || (result as any).fileId,\n src: result.url,\n alt: file.name,\n sizes: { width: result.width!, height: result.height! },\n });\n clearPreview();\n // File picker steals browser focus and clears the Slate selection.\n // Re-focus the block so useSelected() returns true and the toolbar shows immediately.\n editor.focusBlock(blockId, { waitExecution: false });\n },\n [uploadImageToStorage, updateElement, generatePreview, clearPreview, editor, blockId],\n );\n\n if (!element.props.src) {\n return (\n <ImagePlaceholder\n onUpload={onUpload}\n preview={preview}\n progress={progress}\n loading={loading}\n onInsertUrl={() => { }}\n onInsertFromUnsplash={() => { }}\n onInsertFromAI={async () => { }}\n attributes={attributes}>\n {children}\n </ImagePlaceholder>\n );\n }\n\n return (\n <ImageRender\n blockId={blockId}\n elementId={element.id}\n onUpdate={updateElement}\n onDelete={deleteImage}\n attributes={attributes}\n onReplace={replaceImage}\n elementProps={element.props}\n pluginOptions={pluginOptions}>\n {children}\n </ImageRender>\n );\n};\n","import { ImageElement } from './elements/image/image-element';\n\nexport const ImageUI = {\n image: {\n render: ImageElement,\n },\n};\n"],"names":["_jsx","_jsxs","ImageIcon","_Fragment","LinkIcon","Slider","value","SliderPrimitive.Root","SliderPrimitive.Track","SliderPrimitive.Range","SliderPrimitive.Thumb","copy"],"mappings":"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","x_google_ignoreList":[0,3]}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/applyTheme.ts"],"sourcesContent":["import type { YooptaPlugin } from '@yoopta/editor';\n\nimport { AccordionUI } from './accordion';\nimport { BlockquoteUI } from './blockquote';\nimport { CalloutUI } from './callout';\nimport { CarouselUI } from './carousel';\nimport { CodeUI } from './code';\nimport { CodeGroupUI } from './code-group';\nimport { DividerUI } from './divider';\nimport { EmbedUI } from './embed';\nimport { FileUI } from './file';\nimport { HeadingsUI } from './headings';\nimport { ImageUI } from './image';\nimport { LinkUI } from './link';\nimport { ListsUI } from './lists';\nimport { MentionUI } from './mention';\nimport { ParagraphUI } from './paragraph';\nimport { StepsUI } from './steps';\nimport { TableUI } from './table';\nimport { TableOfContentsUI } from './table-of-contents';\nimport { TabsUI } from './tabs';\nimport { VideoUI } from './video';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype PluginWithUI = YooptaPlugin<any, any>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype PluginExtensions = Record<\n string,\n {\n injectElementsFromPlugins?: PluginWithUI[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n events?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n options?: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n elements?: any;\n }\n>;\n\n/**\n * Applies Shadcn UI components to plugins automatically\n *\n * @param plugins - Array of plugins to apply UI to\n * @param extensions - Optional object with additional extensions per plugin type\n * @returns Array of plugins with Shadcn UI applied\n *\n * @example\n * ```typescript\n * const plugins = applyTheme([\n * Accordion,\n * Paragraph,\n * Headings.HeadingOne,\n * ], {\n * Accordion: {\n * injectElementsFromPlugins: [Paragraph, Headings.HeadingOne]\n * }\n * });\n * ```\n */\nexport function applyTheme(\n plugins: PluginWithUI[],\n extensions?: PluginExtensions,\n): PluginWithUI[] {\n // Mapping of plugin types to their UI components\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const uiMap: Record<string, any> = {\n Accordion: AccordionUI,\n Paragraph: ParagraphUI,\n Blockquote: BlockquoteUI,\n Callout: CalloutUI,\n Table: TableUI,\n TableOfContents: TableOfContentsUI,\n Link: LinkUI,\n HeadingOne: HeadingsUI.HeadingOne,\n HeadingTwo: HeadingsUI.HeadingTwo,\n HeadingThree: HeadingsUI.HeadingThree,\n BulletedList: ListsUI.BulletedList,\n NumberedList: ListsUI.NumberedList,\n TodoList: ListsUI.TodoList,\n Image: ImageUI,\n Video: VideoUI,\n Code: CodeUI,\n Tabs: TabsUI,\n CodeGroup: CodeGroupUI,\n Steps: StepsUI,\n Carousel: CarouselUI,\n Divider: DividerUI,\n Embed: EmbedUI,\n File: FileUI,\n Mention: MentionUI,\n };\n\n return plugins.map((plugin) => {\n const pluginType = plugin.getPlugin.type;\n const ui = uiMap[pluginType];\n\n // If no UI found for this plugin type, return as is\n if (!ui) {\n return plugin;\n }\n\n // Get extension config for this plugin type\n const extension = extensions?.[pluginType];\n\n // Apply UI and any additional extensions\n // If extension provides custom elements, use them; otherwise use default UI\n const elementsToApply = extension?.elements ?? ui;\n\n return plugin.extend({\n elements: elementsToApply,\n ...(extension && {\n injectElementsFromPlugins: extension.injectElementsFromPlugins,\n events: extension.events,\n options: extension.options,\n }),\n });\n });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA;;;;;;;;;;;;;;;;;;;AAmBG;AACa,SAAA,UAAU,CACxB,OAAuB,EACvB,UAA6B,EAAA;;;AAI7B,IAAA,MAAM,KAAK,GAAwB;AACjC,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAC1B,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,SAAS;KACnB,CAAC;AAEF,IAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;;AAC5B,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;AACzC,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;;QAG7B,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,OAAO,MAAM,CAAC;AACf,SAAA;;QAGD,MAAM,SAAS,GAAG,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAG,UAAU,CAAC,CAAC;;;AAI3C,QAAA,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,SAAS,KAAT,IAAA,IAAA,SAAS,KAAT,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAS,CAAE,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;QAElD,OAAO,MAAM,CAAC,MAAM,CAClB,MAAA,CAAA,MAAA,CAAA,EAAA,QAAQ,EAAE,eAAe,EAAA,GACrB,SAAS,IAAI;YACf,yBAAyB,EAAE,SAAS,CAAC,yBAAyB;YAC9D,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,OAAO,EAAE,SAAS,CAAC,OAAO;AAC3B,SAAA,GACD,CAAC;AACL,KAAC,CAAC,CAAC;AACL;;;;"}
package/dist/link.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.js","sources":["../../../../node_modules/lucide-react/src/icons/pen.ts","../src/link/elements/link/link-edit.tsx","../src/link/elements/link/link-preview.tsx","../src/link/elements/link/link-element.tsx","../src/link/index.ts"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTcgM2EyLjg1IDIuODMgMCAxIDEgNCA0TDcuNSAyMC41IDIgMjJsMS41LTUuNVoiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/pen\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pen = createLucideIcon('Pen', [\n ['path', { d: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z', key: '5qss01' }],\n]);\n\nexport default Pen;\n","import { Trash2 } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\nimport { Input } from '../../../ui/input';\nimport { Label } from '../../../ui/label';\n\ntype LinkEditProps = {\n textInputRef: React.RefObject<HTMLInputElement>;\n urlInputRef: React.RefObject<HTMLInputElement>;\n editedText: string;\n editedUrl: string;\n onChangeText: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onChangeUrl: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;\n saveEdit: (e: React.MouseEvent) => void;\n cancelEdit: (e: React.MouseEvent) => void;\n deleteLink: (e: React.MouseEvent) => void;\n};\n\nexport const LinkEdit = ({\n textInputRef,\n urlInputRef,\n editedText,\n editedUrl,\n onChangeText,\n onChangeUrl,\n onKeyDown,\n saveEdit,\n cancelEdit,\n deleteLink,\n}: LinkEditProps) => (\n <div className=\"p-2 space-y-2\">\n <div className=\"space-y-1\">\n <Label htmlFor=\"link-text\" className=\"text-xs\">\n Link text\n </Label>\n <Input\n id=\"link-text\"\n ref={textInputRef}\n value={editedText}\n onChange={onChangeText}\n placeholder=\"Link text...\"\n className=\"h-8 text-sm\"\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor=\"link-url\" className=\"text-xs\">\n URL\n </Label>\n <Input\n id=\"link-url\"\n ref={urlInputRef}\n value={editedUrl}\n onChange={onChangeUrl}\n onKeyDown={onKeyDown}\n placeholder=\"Enter URL...\"\n className=\"h-8 text-sm\"\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n <div className=\"flex justify-between items-center\">\n <div className=\"flex items-center gap-2\">\n <Button\n size=\"sm\"\n variant=\"default\"\n className=\"h-7 text-xs\"\n onClick={saveEdit}\n disabled={editedUrl.length === 0 || editedText.length === 0}>\n Save\n </Button>\n <Button size=\"sm\" variant=\"ghost\" className=\"h-7 text-xs\" onClick={cancelEdit}>\n Cancel\n </Button>\n </div>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-7 text-xs text-destructive hover:text-destructive hover:bg-destructive/10\"\n onClick={deleteLink}>\n <Trash2 className=\"h-3.5 w-3.5\" />\n </Button>\n </div>\n </div>\n);\n","import type { SlateElement } from '@yoopta/editor';\nimport { useYooptaReadOnly } from '@yoopta/editor';\nimport { Check, Copy, Edit2, ExternalLink } from 'lucide-react';\n\nimport { Button } from '../../../ui/button';\n\ntype LinkPreviewProps = {\n element: SlateElement;\n openLink: (e: React.MouseEvent) => void;\n copyUrl: (e: React.MouseEvent) => void;\n openEdit: (e: React.MouseEvent) => void;\n copied: boolean;\n};\n\nexport const LinkPreview = ({ element, openLink, copyUrl, openEdit, copied }: LinkPreviewProps) => {\n const isReadOnly = useYooptaReadOnly();\n\n return (\n <div className=\"px-2 py-1\">\n <div className=\"flex items-center gap-1\">\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm truncate text-foreground\">{element.props.url ?? 'No URL'}</div>\n </div>\n <div className=\"h-4 w-px bg-border\" />\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-7 w-7 p-0\"\n onClick={openLink}\n disabled={!element.props.url}\n title=\"Open link\">\n <ExternalLink className=\"h-3.5 w-3.5\" />\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"h-7 w-7 p-0\"\n onClick={copyUrl}\n disabled={!element.props.url}\n title={copied ? 'Copied!' : 'Copy URL'}>\n {copied ? <Check className=\"h-3.5 w-3.5\" /> : <Copy className=\"h-3.5 w-3.5\" />}\n </Button>\n {!isReadOnly && (\n <Button size=\"sm\" variant=\"ghost\" className=\"h-7 w-7 p-0\" onClick={openEdit} title=\"Edit URL\">\n <Edit2 className=\"h-3.5 w-3.5\" />\n </Button>\n )}\n </div>\n </div>\n );\n};\n\n","import { useEffect, useRef, useState } from 'react';\nimport { Elements, useYooptaEditor } from '@yoopta/editor';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport copy from 'copy-to-clipboard';\nimport { Text } from 'slate';\n\nimport { LinkEdit } from './link-edit';\nimport { LinkPreview } from './link-preview';\nimport { HoverCard, HoverCardContent, HoverCardTrigger } from '../../../ui/hover-card';\n\nconst getNodeText = (node: unknown): string => {\n if (Text.isText(node)) {\n return node.text;\n }\n if (typeof node === 'object' && node !== null && 'children' in node) {\n const children = (node as { children?: unknown[] }).children;\n return children?.map(getNodeText).join('') ?? '';\n }\n return '';\n};\n\nconst Link = (props: PluginElementRenderProps) => {\n const { attributes, children, element, blockId } = props;\n const editor = useYooptaEditor();\n const linkText = getNodeText(element);\n\n const [isEditing, setIsEditing] = useState(false);\n const [editedUrl, setEditedUrl] = useState(element.props.url ?? '');\n const [editedText, setEditedText] = useState(linkText);\n const [copied, setCopied] = useState(false);\n const urlInputRef = useRef<HTMLInputElement>(null);\n const textInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setEditedUrl(element.props.url ?? '');\n setEditedText(linkText);\n }, [element.props.url, linkText]);\n\n useEffect(() => {\n if (isEditing && urlInputRef.current) {\n urlInputRef.current.focus();\n urlInputRef.current.select();\n }\n }, [isEditing]);\n\n const openLink = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (element.props.url) {\n window.open(element.props.url, element.props.target ?? '_blank', element.props.rel);\n }\n };\n\n const copyUrl = (e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n if (element.props.url) {\n const success = copy(element.props.url);\n if (success) {\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }\n }\n };\n\n const openEdit = (e: React.MouseEvent) => {\n if (editor.readOnly) return;\n e.preventDefault();\n e.stopPropagation();\n\n setIsEditing(true);\n };\n\n const saveEdit = (e: React.MouseEvent) => {\n if (editor.readOnly) return;\n e.preventDefault();\n e.stopPropagation();\n\n const linkElementPath = Elements.getElementPath(editor, {\n blockId,\n element,\n });\n\n if (!linkElementPath) return;\n\n Elements.updateElement(editor, {\n blockId,\n type: 'link',\n text: editedText,\n path: linkElementPath,\n props: { url: editedUrl },\n });\n setIsEditing(false);\n };\n\n const cancelEdit = (e: React.MouseEvent) => {\n if (editor.readOnly) return;\n e.preventDefault();\n e.stopPropagation();\n\n setEditedUrl(element.props.url ?? '');\n setEditedText(linkText);\n setIsEditing(false);\n };\n\n const deleteLink = (e: React.MouseEvent) => {\n if (editor.readOnly) return;\n e.preventDefault();\n e.stopPropagation();\n\n const linkElementPath = Elements.getElementPath(editor, {\n blockId,\n element,\n });\n\n if (!linkElementPath) return;\n\n Elements.deleteElement(editor, {\n mode: 'unwrap',\n type: 'link',\n path: linkElementPath,\n blockId,\n });\n setIsEditing(false);\n };\n\n const onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n\n Elements.updateElement(editor, {\n blockId,\n type: 'link',\n text: editedText,\n props: {\n url: editedUrl,\n },\n });\n setIsEditing(false);\n } else if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setEditedUrl(element.props.url ?? '');\n setEditedText(linkText);\n setIsEditing(false);\n }\n };\n\n const onClick = (e: React.MouseEvent) => {\n if (isEditing) {\n e.preventDefault();\n }\n };\n\n return (\n <HoverCard openDelay={100} closeDelay={100}>\n <HoverCardTrigger asChild>\n <a\n {...attributes}\n href={element.props.url || undefined}\n target={element.props.target}\n rel={element.props.rel}\n title={element.props.title || undefined}\n className=\"text-primary font-medium underline underline-offset-4 cursor-pointer hover:text-primary/80 transition-colors\"\n contentEditable={false}\n onClick={onClick}>\n {children}\n </a>\n </HoverCardTrigger>\n <HoverCardContent\n className=\"w-80 p-0\"\n onMouseDown={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}>\n {!editor.readOnly && isEditing ? (\n <LinkEdit\n textInputRef={textInputRef}\n urlInputRef={urlInputRef}\n editedText={editedText}\n editedUrl={editedUrl}\n onChangeText={(e) => setEditedText(e.target.value)}\n onChangeUrl={(e) => setEditedUrl(e.target.value)}\n onKeyDown={onKeyDown}\n saveEdit={saveEdit}\n cancelEdit={cancelEdit}\n deleteLink={deleteLink}\n />\n ) : (\n <LinkPreview\n element={element}\n openLink={openLink}\n copyUrl={copyUrl}\n openEdit={openEdit}\n copied={copied}\n />\n )}\n </HoverCardContent>\n </HoverCard>\n );\n};\n\nexport { Link };\n","import { Link } from './elements/link/link-element';\n\nexport const LinkUI = {\n link: {\n render: Link,\n },\n};\n"],"names":["_jsxs","_jsx","Edit2","copy"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/lists.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"lists.js","sources":["../src/lists/bulleted-list/elements/bulleted-list.tsx","../src/lists/bulleted-list/index.ts","../src/lists/numbered-list/elements/numbered-list.tsx","../src/lists/numbered-list/index.ts","../src/lists/todo-list/elements/todo-list.tsx","../src/lists/todo-list/index.ts","../src/lists/index.ts"],"sourcesContent":["import type { PluginElementRenderProps } from '@yoopta/editor';\n\nexport const BulletedList = (props: PluginElementRenderProps) => {\n const { attributes, children } = props;\n\n return (\n <ul {...attributes} className=\"my-0 ml-6 list-disc leading-7 [&>li]:mt-2\">\n <li {...attributes} className=\"pl-2\">\n {children}\n </li>\n </ul>\n );\n};\n","import { BulletedList } from './elements/bulleted-list';\n\nexport const BulletedListUI = {\n 'bulleted-list': {\n render: BulletedList,\n },\n};\n","import type { PluginElementRenderProps } from '@yoopta/editor';\nimport { useBlockData } from '@yoopta/editor';\nimport { useNumberListCount } from '@yoopta/lists';\n\nexport const NumberedList = (props: PluginElementRenderProps) => {\n const { attributes, children, blockId } = props;\n\n const block = useBlockData(blockId);\n const count = useNumberListCount(block);\n\n return (\n <div {...attributes} className=\"my-0 ml-6 list-decimal leading-7 mt-2\">\n <span contentEditable={false}>{count}.</span>\n <span {...attributes} className=\"pl-2\">\n {children}\n </span>\n </div>\n );\n};\n","import { NumberedList } from './elements/numbered-list';\n\nexport const NumberedListUI = {\n 'numbered-list': {\n render: NumberedList,\n },\n};\n","import type { MouseEvent } from 'react';\nimport type { PluginElementRenderProps } from '@yoopta/editor';\nimport { Elements, useYooptaEditor } from '@yoopta/editor';\nimport { Check } from 'lucide-react';\n\nimport { cn } from '../../../utils';\n\nexport const TodoList = (props: PluginElementRenderProps) => {\n const { attributes, children, element, blockId } = props;\n const isChecked = element.props.checked;\n const editor = useYooptaEditor();\n\n const toggleChecked = (e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n Elements.updateElement(editor, {\n blockId,\n type: 'todo-list',\n props: {\n checked: !isChecked,\n },\n });\n };\n\n return (\n <div {...attributes} className=\"m-0 mt-2 ml-6 leading-7 list-none\">\n <div className=\"flex items-start gap-2 pl-2\">\n <button\n type=\"button\"\n contentEditable={false}\n onMouseDown={toggleChecked}\n className={cn(\n 'mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-sm border-2 transition-colors',\n isChecked\n ? 'bg-primary border-primary text-primary-foreground'\n : 'border-input bg-background',\n )}\n aria-label={isChecked ? 'Mark as unchecked' : 'Mark as checked'}>\n {isChecked && <Check className=\"h-3 w-3\" />}\n </button>\n <span className={cn('flex-1', isChecked && 'text-muted-foreground line-through')}>\n {children}\n </span>\n </div>\n </div>\n );\n};\n","import { TodoList } from './elements/todo-list';\n\nexport const TodoListUI = {\n 'todo-list': {\n render: TodoList,\n },\n};\n","import { BulletedListUI } from './bulleted-list/index.js';\nimport { NumberedListUI } from './numbered-list/index.js';\nimport { TodoListUI } from './todo-list/index.js';\n\nexport const ListsUI = {\n BulletedList: BulletedListUI,\n NumberedList: NumberedListUI,\n TodoList: TodoListUI,\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}