markdown-flow-ui 0.3.2-dev.1 → 0.3.2

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 (313) hide show
  1. package/README.md +0 -13
  2. package/dist/_virtual/index.es6.js +3 -5
  3. package/dist/_virtual/index.es6.js.map +1 -1
  4. package/dist/_virtual/index.es7.js +5 -3
  5. package/dist/_virtual/index.es7.js.map +1 -1
  6. package/dist/_virtual/index.es8.js +2 -2
  7. package/dist/_virtual/index.es9.js +2 -2
  8. package/dist/_virtual/index6.cjs +1 -1
  9. package/dist/_virtual/index7.cjs +1 -1
  10. package/dist/_virtual/index8.cjs +1 -1
  11. package/dist/_virtual/index9.cjs +1 -1
  12. package/dist/assets/markdown-flow-ui.css +1 -1
  13. package/dist/components/ContentRender/IframeSandbox.cjs.map +1 -1
  14. package/dist/components/ContentRender/IframeSandbox.es.js.map +1 -1
  15. package/dist/components/ContentRender/utils/video-markdown-run.cjs.map +1 -1
  16. package/dist/components/ContentRender/utils/video-markdown-run.es.js.map +1 -1
  17. package/dist/components/MarkdownFlow/ScrollToBottomButton.cjs.map +1 -1
  18. package/dist/components/MarkdownFlow/ScrollToBottomButton.es.js.map +1 -1
  19. package/dist/components/MarkdownFlow/ScrollToBottomControl.cjs.map +1 -1
  20. package/dist/components/MarkdownFlow/ScrollToBottomControl.es.js.map +1 -1
  21. package/dist/components/MarkdownFlow/useScrollToBottom.cjs.map +1 -1
  22. package/dist/components/MarkdownFlow/useScrollToBottom.es.js.map +1 -1
  23. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs +1 -1
  24. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.cjs.map +1 -1
  25. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.d.ts +2 -2
  26. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js +323 -558
  27. package/dist/components/MarkdownFlowEditor/MarkdownFlowEditor.es.js.map +1 -1
  28. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs +1 -1
  29. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.cjs.map +1 -1
  30. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.d.ts +0 -8
  31. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js +64 -107
  32. package/dist/components/MarkdownFlowEditor/components/EditorToolbar.es.js.map +1 -1
  33. package/dist/components/MarkdownFlowEditor/editor-context.cjs +1 -1
  34. package/dist/components/MarkdownFlowEditor/editor-context.cjs.map +1 -1
  35. package/dist/components/MarkdownFlowEditor/editor-context.es.js +4 -10
  36. package/dist/components/MarkdownFlowEditor/editor-context.es.js.map +1 -1
  37. package/dist/components/MarkdownFlowEditor/editorI18n.d.ts +0 -308
  38. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.cjs +1 -1
  39. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.d.ts +1 -15
  40. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js +87 -115
  41. package/dist/components/MarkdownFlowEditor/locales/ar-SA.json.es.js.map +1 -1
  42. package/dist/components/MarkdownFlowEditor/locales/de-DE.json.cjs +1 -1
  43. package/dist/components/MarkdownFlowEditor/locales/de-DE.json.d.ts +1 -15
  44. package/dist/components/MarkdownFlowEditor/locales/de-DE.json.es.js +88 -116
  45. package/dist/components/MarkdownFlowEditor/locales/de-DE.json.es.js.map +1 -1
  46. package/dist/components/MarkdownFlowEditor/locales/en-US.json.cjs +1 -1
  47. package/dist/components/MarkdownFlowEditor/locales/en-US.json.d.ts +1 -15
  48. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js +88 -116
  49. package/dist/components/MarkdownFlowEditor/locales/en-US.json.es.js.map +1 -1
  50. package/dist/components/MarkdownFlowEditor/locales/es-ES.json.cjs +1 -1
  51. package/dist/components/MarkdownFlowEditor/locales/es-ES.json.d.ts +1 -15
  52. package/dist/components/MarkdownFlowEditor/locales/es-ES.json.es.js +80 -108
  53. package/dist/components/MarkdownFlowEditor/locales/es-ES.json.es.js.map +1 -1
  54. package/dist/components/MarkdownFlowEditor/locales/fil-PH.json.cjs +1 -1
  55. package/dist/components/MarkdownFlowEditor/locales/fil-PH.json.d.ts +1 -15
  56. package/dist/components/MarkdownFlowEditor/locales/fil-PH.json.es.js +82 -110
  57. package/dist/components/MarkdownFlowEditor/locales/fil-PH.json.es.js.map +1 -1
  58. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.cjs +1 -1
  59. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.d.ts +1 -15
  60. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js +86 -114
  61. package/dist/components/MarkdownFlowEditor/locales/fr-FR.json.es.js.map +1 -1
  62. package/dist/components/MarkdownFlowEditor/locales/ja-JP.json.cjs +1 -1
  63. package/dist/components/MarkdownFlowEditor/locales/ja-JP.json.d.ts +1 -15
  64. package/dist/components/MarkdownFlowEditor/locales/ja-JP.json.es.js +88 -116
  65. package/dist/components/MarkdownFlowEditor/locales/ja-JP.json.es.js.map +1 -1
  66. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.cjs +1 -1
  67. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.d.ts +1 -15
  68. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js +85 -113
  69. package/dist/components/MarkdownFlowEditor/locales/th-TH.json.es.js.map +1 -1
  70. package/dist/components/MarkdownFlowEditor/locales/ur-PK.json.cjs +1 -1
  71. package/dist/components/MarkdownFlowEditor/locales/ur-PK.json.d.ts +1 -15
  72. package/dist/components/MarkdownFlowEditor/locales/ur-PK.json.es.js +94 -122
  73. package/dist/components/MarkdownFlowEditor/locales/ur-PK.json.es.js.map +1 -1
  74. package/dist/components/MarkdownFlowEditor/locales/vi-VN.json.cjs +1 -1
  75. package/dist/components/MarkdownFlowEditor/locales/vi-VN.json.d.ts +1 -15
  76. package/dist/components/MarkdownFlowEditor/locales/vi-VN.json.es.js +74 -102
  77. package/dist/components/MarkdownFlowEditor/locales/vi-VN.json.es.js.map +1 -1
  78. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.cjs +1 -1
  79. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.d.ts +1 -15
  80. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js +72 -100
  81. package/dist/components/MarkdownFlowEditor/locales/zh-CN.json.es.js.map +1 -1
  82. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs +1 -1
  83. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.cjs.map +1 -1
  84. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.d.ts +2 -1
  85. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js +62 -53
  86. package/dist/components/MarkdownFlowEditor/plugins/ImgPlaceholder.es.js.map +1 -1
  87. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.cjs.map +1 -1
  88. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.d.ts +1 -1
  89. package/dist/components/MarkdownFlowEditor/plugins/PlaceholderWidget.es.js.map +1 -1
  90. package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.cjs +3 -3
  91. package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.cjs.map +1 -1
  92. package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.d.ts +1 -5
  93. package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.es.js +149 -154
  94. package/dist/components/MarkdownFlowEditor/plugins/SyntaxHighlighter.es.js.map +1 -1
  95. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs +1 -1
  96. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.cjs.map +1 -1
  97. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.d.ts +2 -1
  98. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js +53 -42
  99. package/dist/components/MarkdownFlowEditor/plugins/VideoPlaceholder.es.js.map +1 -1
  100. package/dist/components/MarkdownFlowEditor/types.cjs +1 -1
  101. package/dist/components/MarkdownFlowEditor/types.cjs.map +1 -1
  102. package/dist/components/MarkdownFlowEditor/types.d.ts +1 -11
  103. package/dist/components/MarkdownFlowEditor/types.es.js +2 -2
  104. package/dist/components/MarkdownFlowEditor/types.es.js.map +1 -1
  105. package/dist/components/MarkdownFlowEditor/utils.cjs +1 -1
  106. package/dist/components/MarkdownFlowEditor/utils.cjs.map +1 -1
  107. package/dist/components/MarkdownFlowEditor/utils.d.ts +0 -10
  108. package/dist/components/MarkdownFlowEditor/utils.es.js +59 -73
  109. package/dist/components/MarkdownFlowEditor/utils.es.js.map +1 -1
  110. package/dist/components/Slide/MarkdownSlideScaling.cjs.map +1 -1
  111. package/dist/components/Slide/MarkdownSlideScaling.es.js.map +1 -1
  112. package/dist/components/Slide/MobilePlayerSettingsSheet.es.js +16 -16
  113. package/dist/components/Slide/Player.cjs.map +1 -1
  114. package/dist/components/Slide/Player.es.js.map +1 -1
  115. package/dist/components/Slide/Slide.cjs.map +1 -1
  116. package/dist/components/Slide/Slide.es.js.map +1 -1
  117. package/dist/components/Slide/SubtitleOverlay.cjs.map +1 -1
  118. package/dist/components/Slide/SubtitleOverlay.es.js.map +1 -1
  119. package/dist/components/Slide/slideI18n.cjs.map +1 -1
  120. package/dist/components/Slide/slideI18n.es.js.map +1 -1
  121. package/dist/components/Slide/useSlide.cjs.map +1 -1
  122. package/dist/components/Slide/useSlide.es.js.map +1 -1
  123. package/dist/components/Slide/utils/streamingNavigation.cjs.map +1 -1
  124. package/dist/components/Slide/utils/streamingNavigation.es.js.map +1 -1
  125. package/dist/components/ui/dialog.cjs +1 -1
  126. package/dist/components/ui/dialog.cjs.map +1 -1
  127. package/dist/components/ui/dialog.es.js +27 -27
  128. package/dist/components/ui/dialog.es.js.map +1 -1
  129. package/dist/lib/interaction-defaults.cjs.map +1 -1
  130. package/dist/lib/interaction-defaults.es.js.map +1 -1
  131. package/dist/markdown-flow-ui-lib.css +1 -1
  132. package/dist/markdown-flow-ui.css +1 -1
  133. package/dist/node_modules/@braintree/sanitize-url/dist/index.cjs +1 -1
  134. package/dist/node_modules/@braintree/sanitize-url/dist/index.es.js +1 -1
  135. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +1 -1
  136. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  137. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js +34 -49
  138. package/dist/node_modules/@radix-ui/react-context/dist/index.es.js.map +1 -1
  139. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs +1 -5
  140. package/dist/node_modules/@radix-ui/react-dialog/dist/index.cjs.map +1 -1
  141. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js +206 -220
  142. package/dist/node_modules/@radix-ui/react-dialog/dist/index.es.js.map +1 -1
  143. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive/dist/index.cjs +2 -0
  144. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive/dist/index.cjs.map +1 -0
  145. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive/dist/index.es.js +50 -0
  146. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/primitive/dist/index.es.js.map +1 -0
  147. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +2 -0
  148. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs/dist/index.cjs.map +1 -0
  149. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs/dist/index.es.js +34 -0
  150. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-compose-refs/dist/index.es.js.map +1 -0
  151. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.cjs +2 -0
  152. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -0
  153. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.es.js +82 -0
  154. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-context/dist/index.es.js.map +1 -0
  155. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +2 -0
  156. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -0
  157. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js +216 -0
  158. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-dismissable-layer/dist/index.es.js.map +1 -0
  159. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.cjs +2 -0
  160. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.cjs.map +1 -0
  161. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.es.js +15 -0
  162. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-id/dist/index.es.js.map +1 -0
  163. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.cjs +2 -0
  164. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -0
  165. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.es.js +18 -0
  166. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-portal/dist/index.es.js.map +1 -0
  167. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence/dist/index.cjs +2 -0
  168. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence/dist/index.cjs.map +1 -0
  169. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence/dist/index.es.js +104 -0
  170. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-presence/dist/index.es.js.map +1 -0
  171. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.cjs +2 -0
  172. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -0
  173. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.es.js +39 -0
  174. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-primitive/dist/index.es.js.map +1 -0
  175. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +2 -0
  176. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs.map +1 -0
  177. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-callback-ref/dist/index.es.js +13 -0
  178. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-callback-ref/dist/index.es.js.map +1 -0
  179. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs +2 -0
  180. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs.map +1 -0
  181. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/dist/index.es.js +70 -0
  182. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-controllable-state/dist/index.es.js.map +1 -0
  183. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-effect-event/dist/index.cjs +2 -0
  184. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-effect-event/dist/index.cjs.map +1 -0
  185. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-effect-event/dist/index.es.js +20 -0
  186. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-effect-event/dist/index.es.js.map +1 -0
  187. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +2 -0
  188. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs.map +1 -0
  189. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-layout-effect/dist/index.es.js +7 -0
  190. package/dist/node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-use-layout-effect/dist/index.es.js.map +1 -0
  191. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs +1 -1
  192. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs.map +1 -1
  193. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.es.js +18 -9
  194. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.es.js.map +1 -1
  195. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +1 -1
  196. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
  197. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js +148 -100
  198. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.es.js.map +1 -1
  199. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +2 -0
  200. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs/dist/index.cjs.map +1 -0
  201. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs/dist/index.es.js +34 -0
  202. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-compose-refs/dist/index.es.js.map +1 -0
  203. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.cjs +2 -0
  204. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -0
  205. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.es.js +39 -0
  206. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-primitive/dist/index.es.js.map +1 -0
  207. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +2 -0
  208. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs.map +1 -0
  209. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.es.js +13 -0
  210. package/dist/node_modules/@radix-ui/react-focus-scope/node_modules/@radix-ui/react-use-callback-ref/dist/index.es.js.map +1 -0
  211. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +1 -1
  212. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs.map +1 -1
  213. package/dist/node_modules/@radix-ui/react-id/dist/index.es.js +8 -8
  214. package/dist/node_modules/@radix-ui/react-id/dist/index.es.js.map +1 -1
  215. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +1 -1
  216. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  217. package/dist/node_modules/@radix-ui/react-primitive/dist/index.es.js +1 -1
  218. package/dist/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.cjs +2 -0
  219. package/dist/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -0
  220. package/dist/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.es.js +50 -0
  221. package/dist/node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot/dist/index.es.js.map +1 -0
  222. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +1 -1
  223. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  224. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js +80 -41
  225. package/dist/node_modules/@radix-ui/react-slot/dist/index.es.js.map +1 -1
  226. package/dist/node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +2 -0
  227. package/dist/node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.cjs.map +1 -0
  228. package/dist/node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.es.js +34 -0
  229. package/dist/node_modules/@radix-ui/react-slot/node_modules/@radix-ui/react-compose-refs/dist/index.es.js.map +1 -0
  230. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs +1 -1
  231. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.cjs.map +1 -1
  232. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.es.js +1 -1
  233. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.cjs +2 -0
  234. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -0
  235. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.es.js +12 -0
  236. package/dist/node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot/dist/index.es.js.map +1 -0
  237. package/dist/node_modules/classnames/index.cjs +1 -1
  238. package/dist/node_modules/classnames/index.es.js +1 -1
  239. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.cjs +1 -1
  240. package/dist/node_modules/hast-util-to-jsx-runtime/lib/index.es.js +1 -1
  241. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-5PPSVZJV.cjs +1 -1
  242. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-5PPSVZJV.es.js +1 -1
  243. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-2GRJ4B5K.cjs +1 -1
  244. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-2GRJ4B5K.es.js +1 -1
  245. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-NSK5VX7P.cjs +1 -1
  246. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-NSK5VX7P.es.js +1 -1
  247. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-JCYQIIEL.cjs +1 -1
  248. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-JCYQIIEL.es.js +1 -1
  249. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-OCEON4UE.cjs +1 -1
  250. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/classDiagram-v2-OCEON4UE.es.js +1 -1
  251. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-UKHOOZJN.cjs +1 -1
  252. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-UKHOOZJN.es.js +1 -1
  253. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-PKOTCBZU.cjs +1 -1
  254. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-PKOTCBZU.es.js +1 -1
  255. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-SI44F4Z6.cjs +1 -1
  256. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-SI44F4Z6.es.js +1 -1
  257. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-OKZ733FA.cjs +1 -1
  258. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-OKZ733FA.es.js +1 -1
  259. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-UEYNNEHI.cjs +1 -1
  260. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-v2-UEYNNEHI.es.js +1 -1
  261. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/swimlanesDiagram-ULZ7WXOC.cjs +1 -1
  262. package/dist/node_modules/mermaid/dist/chunks/mermaid.core/swimlanesDiagram-ULZ7WXOC.es.js +1 -1
  263. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs +2 -2
  264. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs.map +1 -1
  265. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.es.js +75 -72
  266. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.es.js.map +1 -1
  267. package/package.json +10 -10
  268. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs +0 -2
  269. package/dist/components/MarkdownFlowEditor/components/CustomPopover.cjs.map +0 -1
  270. package/dist/components/MarkdownFlowEditor/components/CustomPopover.d.ts +0 -17
  271. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js +0 -46
  272. package/dist/components/MarkdownFlowEditor/components/CustomPopover.es.js.map +0 -1
  273. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs +0 -2
  274. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.cjs.map +0 -1
  275. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.d.ts +0 -18
  276. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js +0 -184
  277. package/dist/components/MarkdownFlowEditor/components/VariableSearchDropdown.es.js.map +0 -1
  278. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs +0 -2
  279. package/dist/components/MarkdownFlowEditor/components/VariableSelect.cjs.map +0 -1
  280. package/dist/components/MarkdownFlowEditor/components/VariableSelect.d.ts +0 -11
  281. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js +0 -172
  282. package/dist/components/MarkdownFlowEditor/components/VariableSelect.es.js.map +0 -1
  283. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs +0 -2
  284. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.cjs.map +0 -1
  285. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.d.ts +0 -3
  286. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js +0 -32
  287. package/dist/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.es.js.map +0 -1
  288. package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.cjs +0 -3
  289. package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.cjs.map +0 -1
  290. package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.d.ts +0 -9
  291. package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.es.js +0 -53
  292. package/dist/components/MarkdownFlowEditor/plugins/VariablePlaceholder.es.js.map +0 -1
  293. package/dist/components/ui/popover.cjs +0 -2
  294. package/dist/components/ui/popover.cjs.map +0 -1
  295. package/dist/components/ui/popover.es.js +0 -24
  296. package/dist/components/ui/popover.es.js.map +0 -1
  297. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs +0 -2
  298. package/dist/node_modules/@radix-ui/react-popover/dist/index.cjs.map +0 -1
  299. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js +0 -241
  300. package/dist/node_modules/@radix-ui/react-popover/dist/index.es.js.map +0 -1
  301. package/dist/node_modules/lucide-react/dist/esm/icons/braces.cjs +0 -7
  302. package/dist/node_modules/lucide-react/dist/esm/icons/braces.cjs.map +0 -1
  303. package/dist/node_modules/lucide-react/dist/esm/icons/braces.es.js +0 -25
  304. package/dist/node_modules/lucide-react/dist/esm/icons/braces.es.js.map +0 -1
  305. package/dist/node_modules/lucide-react/dist/esm/icons/plus.cjs +0 -7
  306. package/dist/node_modules/lucide-react/dist/esm/icons/plus.cjs.map +0 -1
  307. package/dist/node_modules/lucide-react/dist/esm/icons/plus.es.js +0 -16
  308. package/dist/node_modules/lucide-react/dist/esm/icons/plus.es.js.map +0 -1
  309. package/dist/node_modules/lucide-react/dist/esm/icons/search.cjs +0 -7
  310. package/dist/node_modules/lucide-react/dist/esm/icons/search.cjs.map +0 -1
  311. package/dist/node_modules/lucide-react/dist/esm/icons/search.es.js +0 -16
  312. package/dist/node_modules/lucide-react/dist/esm/icons/search.es.js.map +0 -1
  313. /package/dist/components/MarkdownFlowEditor/plugins/{VariablePlaceholder.test.d.ts → MediaPlaceholder.variables.test.d.ts} +0 -0
@@ -1,184 +0,0 @@
1
- import { jsxs as c, jsx as a } from "react/jsx-runtime";
2
- import { useRef as R, useState as L, useCallback as k, useEffect as V, useMemo as b } from "react";
3
- import { Input as P } from "../../ui/input.es.js";
4
- import { cn as z } from "../../../lib/utils.es.js";
5
- import T from "../../../node_modules/lucide-react/dist/esm/icons/search.es.js";
6
- const W = ({
7
- open: m,
8
- anchorElement: r,
9
- onClose: l,
10
- onSelect: D,
11
- variables: M,
12
- systemVariables: $,
13
- labels: h
14
- }) => {
15
- const f = R(null), C = R(null), [A, E] = L(""), [S, B] = L({ left: 0, top: 0 }), [w, o] = L(-1), y = k(() => {
16
- if (!r) return;
17
- const e = r.getBoundingClientRect(), t = r.ownerDocument, s = t.defaultView;
18
- if (!s) return;
19
- const i = f.current?.getBoundingClientRect().width ?? 0, x = s.getComputedStyle(r).direction === "rtl" ? e.right - i : e.left, v = Math.max(8, t.documentElement.clientWidth - i - 8);
20
- B({
21
- left: Math.min(Math.max(8, x), v),
22
- top: e.bottom + 8
23
- });
24
- }, [r]);
25
- V(() => {
26
- if (!m) {
27
- E(""), o(-1);
28
- return;
29
- }
30
- const e = r?.ownerDocument.defaultView;
31
- if (!e) return;
32
- y();
33
- const t = e.setTimeout(() => {
34
- C.current?.focus();
35
- }, 0), s = (x) => {
36
- const v = x.target;
37
- f.current && !f.current.contains(v) && r && !r.contains(v) && l();
38
- }, i = () => y();
39
- return e.addEventListener("mousedown", s), e.addEventListener("scroll", i, !0), e.addEventListener("resize", i), () => {
40
- e.clearTimeout(t), e.removeEventListener("mousedown", s), e.removeEventListener("scroll", i, !0), e.removeEventListener("resize", i);
41
- };
42
- }, [m, r, l, y]);
43
- const p = A.trim().toLowerCase(), g = k(
44
- (e) => {
45
- if (!p) return !0;
46
- const t = e.name.toLowerCase().includes(p), s = e.label ? e.label.toLowerCase().includes(p) : !1;
47
- return t || s;
48
- },
49
- [p]
50
- ), u = b(
51
- () => $.filter(g),
52
- [$, g]
53
- ), d = b(
54
- () => M.filter(g),
55
- [M, g]
56
- ), n = b(
57
- () => [
58
- ...u.map((e) => ({
59
- group: "system",
60
- variable: e
61
- })),
62
- ...d.map((e) => ({
63
- group: "custom",
64
- variable: e
65
- }))
66
- ],
67
- [u, d]
68
- ), I = b(() => {
69
- const e = /* @__PURE__ */ new Map();
70
- return n.forEach((t, s) => {
71
- e.set(`${t.group}-${t.variable.name}`, s);
72
- }), e;
73
- }, [n]);
74
- V(() => {
75
- (!m || !n.length) && o(-1);
76
- }, [m, n.length]);
77
- const N = k(
78
- (e) => {
79
- D(e), l();
80
- },
81
- [l, D]
82
- ), K = (e) => {
83
- if (!n.length) {
84
- e.key === "Escape" && l();
85
- return;
86
- }
87
- if (e.key === "ArrowDown")
88
- e.preventDefault(), o((t) => (t + 1) % n.length);
89
- else if (e.key === "ArrowUp")
90
- e.preventDefault(), o(
91
- (t) => t <= 0 ? n.length - 1 : t - 1
92
- );
93
- else if (e.key === "Enter") {
94
- e.preventDefault();
95
- const t = n[w];
96
- t && N(t.variable);
97
- } else e.key === "Escape" && (e.preventDefault(), l());
98
- };
99
- return m ? /* @__PURE__ */ c(
100
- "div",
101
- {
102
- ref: f,
103
- className: "markdown-flow-editor-variable-search",
104
- style: {
105
- position: "fixed",
106
- left: `${S.left}px`,
107
- top: `${S.top}px`
108
- },
109
- children: [
110
- /* @__PURE__ */ c("div", { className: "relative", children: [
111
- /* @__PURE__ */ a(T, { className: "variable-search-icon" }),
112
- /* @__PURE__ */ a(
113
- P,
114
- {
115
- ref: C,
116
- value: A,
117
- placeholder: h.searchPlaceholder,
118
- onChange: (e) => E(e.target.value),
119
- onKeyDown: K,
120
- className: "variable-search-input"
121
- }
122
- )
123
- ] }),
124
- /* @__PURE__ */ c("div", { className: "variable-search-list", children: [
125
- u.length > 0 && /* @__PURE__ */ c("div", { className: "variable-search-section", children: [
126
- /* @__PURE__ */ a("p", { className: "variable-search-section-title", children: h.systemLabel }),
127
- u.map((e) => {
128
- const t = I.get(`system-${e.name}`) ?? -1;
129
- return /* @__PURE__ */ c(
130
- "button",
131
- {
132
- type: "button",
133
- onClick: () => N(e),
134
- onMouseEnter: () => {
135
- t >= 0 && o(t);
136
- },
137
- className: z(
138
- "variable-search-item",
139
- w === t && "variable-search-item-active"
140
- ),
141
- children: [
142
- /* @__PURE__ */ a("span", { className: "variable-search-item-name", children: e.name }),
143
- e.label && /* @__PURE__ */ a("span", { className: "variable-search-item-label", children: e.label })
144
- ]
145
- },
146
- `system-${e.name}`
147
- );
148
- })
149
- ] }),
150
- d.length > 0 && /* @__PURE__ */ c("div", { className: "variable-search-section", children: [
151
- /* @__PURE__ */ a("p", { className: "variable-search-section-title", children: h.customLabel }),
152
- d.map((e) => {
153
- const t = I.get(`custom-${e.name}`) ?? -1;
154
- return /* @__PURE__ */ c(
155
- "button",
156
- {
157
- type: "button",
158
- onClick: () => N(e),
159
- onMouseEnter: () => {
160
- t >= 0 && o(t);
161
- },
162
- className: z(
163
- "variable-search-item",
164
- w === t && "variable-search-item-active"
165
- ),
166
- children: [
167
- /* @__PURE__ */ a("span", { className: "variable-search-item-name", children: e.name }),
168
- e.label && /* @__PURE__ */ a("span", { className: "variable-search-item-label", children: e.label })
169
- ]
170
- },
171
- `custom-${e.name}`
172
- );
173
- })
174
- ] }),
175
- u.length === 0 && d.length === 0 && /* @__PURE__ */ a("div", { className: "variable-search-empty", children: h.emptyLabel })
176
- ] })
177
- ]
178
- }
179
- ) : null;
180
- };
181
- export {
182
- W as default
183
- };
184
- //# sourceMappingURL=VariableSearchDropdown.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariableSearchDropdown.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/VariableSearchDropdown.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { Search } from \"lucide-react\";\nimport { Variable } from \"../types\";\nimport { Input } from \"../../ui/input\";\nimport { cn } from \"../../../lib/utils\";\n\ninterface VariableSearchDropdownProps {\n open: boolean;\n anchorElement: HTMLElement | null;\n onClose: () => void;\n onSelect: (variable: Variable) => void;\n variables: Variable[];\n systemVariables: Variable[];\n labels: {\n searchPlaceholder: string;\n systemLabel: string;\n customLabel: string;\n emptyLabel: string;\n };\n}\n\nconst VariableSearchDropdown: React.FC<VariableSearchDropdownProps> = ({\n open,\n anchorElement,\n onClose,\n onSelect,\n variables,\n systemVariables,\n labels,\n}) => {\n const containerRef = useRef<HTMLDivElement | null>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [query, setQuery] = useState(\"\");\n const [position, setPosition] = useState({ left: 0, top: 0 });\n const [highlightIndex, setHighlightIndex] = useState(-1);\n\n const updatePosition = useCallback(() => {\n if (!anchorElement) return;\n const rect = anchorElement.getBoundingClientRect();\n const doc = anchorElement.ownerDocument;\n const view = doc.defaultView;\n if (!view) return;\n const width = containerRef.current?.getBoundingClientRect().width ?? 0;\n const desiredLeft =\n view.getComputedStyle(anchorElement).direction === \"rtl\"\n ? rect.right - width\n : rect.left;\n const maxLeft = Math.max(8, doc.documentElement.clientWidth - width - 8);\n setPosition({\n left: Math.min(Math.max(8, desiredLeft), maxLeft),\n top: rect.bottom + 8,\n });\n }, [anchorElement]);\n\n useEffect(() => {\n if (!open) {\n setQuery(\"\");\n setHighlightIndex(-1);\n return;\n }\n const view = anchorElement?.ownerDocument.defaultView;\n if (!view) return;\n updatePosition();\n const focusTimer = view.setTimeout(() => {\n inputRef.current?.focus();\n }, 0);\n const handleClick = (event: MouseEvent) => {\n const target = event.target as Node | null;\n if (\n containerRef.current &&\n !containerRef.current.contains(target) &&\n anchorElement &&\n !anchorElement.contains(target)\n ) {\n onClose();\n }\n };\n const handleScroll = () => updatePosition();\n view.addEventListener(\"mousedown\", handleClick);\n view.addEventListener(\"scroll\", handleScroll, true);\n view.addEventListener(\"resize\", handleScroll);\n\n return () => {\n view.clearTimeout(focusTimer);\n view.removeEventListener(\"mousedown\", handleClick);\n view.removeEventListener(\"scroll\", handleScroll, true);\n view.removeEventListener(\"resize\", handleScroll);\n };\n }, [open, anchorElement, onClose, updatePosition]);\n\n const normalizedQuery = query.trim().toLowerCase();\n const filterVariable = useCallback(\n (variable: Variable) => {\n if (!normalizedQuery) return true;\n const nameMatch = variable.name.toLowerCase().includes(normalizedQuery);\n const labelMatch = variable.label\n ? variable.label.toLowerCase().includes(normalizedQuery)\n : false;\n return nameMatch || labelMatch;\n },\n [normalizedQuery]\n );\n\n const filteredSystemVariables = useMemo(\n () => systemVariables.filter(filterVariable),\n [systemVariables, filterVariable]\n );\n const filteredCustomVariables = useMemo(\n () => variables.filter(filterVariable),\n [variables, filterVariable]\n );\n\n const orderedItems = useMemo(\n () => [\n ...filteredSystemVariables.map((variable) => ({\n group: \"system\" as const,\n variable,\n })),\n ...filteredCustomVariables.map((variable) => ({\n group: \"custom\" as const,\n variable,\n })),\n ],\n [filteredSystemVariables, filteredCustomVariables]\n );\n\n const indexesByKey = useMemo(() => {\n const map = new Map<string, number>();\n orderedItems.forEach((item, index) => {\n map.set(`${item.group}-${item.variable.name}`, index);\n });\n return map;\n }, [orderedItems]);\n\n useEffect(() => {\n if (!open || !orderedItems.length) {\n setHighlightIndex(-1);\n }\n }, [open, orderedItems.length]);\n\n const handleSelect = useCallback(\n (variable: Variable) => {\n onSelect(variable);\n onClose();\n },\n [onClose, onSelect]\n );\n\n const handleInputKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (!orderedItems.length) {\n if (event.key === \"Escape\") {\n onClose();\n }\n return;\n }\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setHighlightIndex((prev) => (prev + 1) % orderedItems.length);\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setHighlightIndex((prev) =>\n prev <= 0 ? orderedItems.length - 1 : prev - 1\n );\n } else if (event.key === \"Enter\") {\n event.preventDefault();\n const item = orderedItems[highlightIndex];\n if (item) {\n handleSelect(item.variable);\n }\n } else if (event.key === \"Escape\") {\n event.preventDefault();\n onClose();\n }\n };\n\n if (!open) {\n return null;\n }\n\n return (\n <div\n ref={containerRef}\n className=\"markdown-flow-editor-variable-search\"\n style={{\n position: \"fixed\",\n left: `${position.left}px`,\n top: `${position.top}px`,\n }}\n >\n <div className=\"relative\">\n <Search className=\"variable-search-icon\" />\n <Input\n ref={inputRef}\n value={query}\n placeholder={labels.searchPlaceholder}\n onChange={(event) => setQuery(event.target.value)}\n onKeyDown={handleInputKeyDown}\n className=\"variable-search-input\"\n />\n </div>\n <div className=\"variable-search-list\">\n {filteredSystemVariables.length > 0 && (\n <div className=\"variable-search-section\">\n <p className=\"variable-search-section-title\">\n {labels.systemLabel}\n </p>\n {filteredSystemVariables.map((variable) => {\n const index = indexesByKey.get(`system-${variable.name}`) ?? -1;\n const isActive = highlightIndex === index;\n return (\n <button\n key={`system-${variable.name}`}\n type=\"button\"\n onClick={() => handleSelect(variable)}\n onMouseEnter={() => {\n if (index >= 0) {\n setHighlightIndex(index);\n }\n }}\n className={cn(\n \"variable-search-item\",\n isActive && \"variable-search-item-active\"\n )}\n >\n <span className=\"variable-search-item-name\">\n {variable.name}\n </span>\n {variable.label && (\n <span className=\"variable-search-item-label\">\n {variable.label}\n </span>\n )}\n </button>\n );\n })}\n </div>\n )}\n\n {filteredCustomVariables.length > 0 && (\n <div className=\"variable-search-section\">\n <p className=\"variable-search-section-title\">\n {labels.customLabel}\n </p>\n {filteredCustomVariables.map((variable) => {\n const index = indexesByKey.get(`custom-${variable.name}`) ?? -1;\n const isActive = highlightIndex === index;\n return (\n <button\n key={`custom-${variable.name}`}\n type=\"button\"\n onClick={() => handleSelect(variable)}\n onMouseEnter={() => {\n if (index >= 0) {\n setHighlightIndex(index);\n }\n }}\n className={cn(\n \"variable-search-item\",\n isActive && \"variable-search-item-active\"\n )}\n >\n <span className=\"variable-search-item-name\">\n {variable.name}\n </span>\n {variable.label && (\n <span className=\"variable-search-item-label\">\n {variable.label}\n </span>\n )}\n </button>\n );\n })}\n </div>\n )}\n\n {filteredSystemVariables.length === 0 &&\n filteredCustomVariables.length === 0 && (\n <div className=\"variable-search-empty\">{labels.emptyLabel}</div>\n )}\n </div>\n </div>\n );\n};\n\nexport default VariableSearchDropdown;\n"],"names":["VariableSearchDropdown","open","anchorElement","onClose","onSelect","variables","systemVariables","labels","containerRef","useRef","inputRef","query","setQuery","useState","position","setPosition","highlightIndex","setHighlightIndex","updatePosition","useCallback","rect","doc","view","width","desiredLeft","maxLeft","useEffect","focusTimer","handleClick","event","target","handleScroll","normalizedQuery","filterVariable","variable","nameMatch","labelMatch","filteredSystemVariables","useMemo","filteredCustomVariables","orderedItems","indexesByKey","map","item","index","handleSelect","handleInputKeyDown","prev","jsxs","jsx","Search","Input","cn"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),a=require("react"),I=require("../../ui/input.cjs"),v=require("../../ui/button.cjs"),M=require("../../../lib/utils.cjs"),z=require("../../../_virtual/index.cjs"),Q=require("../../../node_modules/react-i18next/dist/es/useTranslation.cjs"),$=require("../../../node_modules/lucide-react/dist/esm/icons/search.cjs"),y=require("../../../node_modules/lucide-react/dist/esm/icons/check.cjs"),O=require("../../../node_modules/lucide-react/dist/esm/icons/x.cjs"),U=require("../../../node_modules/lucide-react/dist/esm/icons/plus.cjs"),D=[],Y=({variables:P,systemVariables:B,selectedName:r,onSelect:o,onAddVariable:L})=>{const{t}=Q.useTranslation(),i=P??D,R=B??D,[c,w]=a.useState(i);a.useEffect(()=>{w(i)},[i]);const d=R,[u,V]=a.useState(""),[T,m]=a.useState(!1),[S,x]=a.useState(""),[f,h]=a.useState(!1),[C,b]=a.useState(!1),p=()=>{h(!1),b(!1)},n=u.toLowerCase(),E=s=>{const A=s.name.toLowerCase().includes(n),l=s.label?s.label.toLowerCase().includes(n):!1;return A||l},g=a.useMemo(()=>d.filter(E),[d,n]),N=a.useMemo(()=>c.filter(E),[c,n]),_=g.length>0||N.length>0,k=()=>{const s=z.distExports.normalizeVariableName(S);if(!s){b(!0),h(!1);return}if([...c,...d].some(j=>z.distExports.normalizeVariableName(j.name)===s)){h(!0),b(!1);return}const l={name:s};w(j=>[l,...j]),L?.({name:s}),x(""),m(!1),V(""),p(),o?.(l)},q=()=>{m(!1),x(""),p()},F=s=>{x(s.target.value),(f||C)&&p()},K=s=>{s.key==="Enter"?k():s.key==="Escape"&&q()};return e.jsxs("div",{className:"w-full max-w-sm rounded-lg border bg-white",children:[e.jsxs("div",{className:"relative",children:[e.jsx($.default,{className:"absolute start-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(I.Input,{type:"text",placeholder:t("variableSearchPlaceholder","Search variable"),value:u,onChange:s=>V(s.target.value),className:"ps-8 h-8 border-0 focus-visible:ring-0 focus-visible:ring-offset-0"})]}),e.jsx("div",{className:"max-h-[300px] overflow-y-auto p-2",children:_?e.jsxs("div",{className:"space-y-4",children:[g.length>0&&e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"px-3 text-xs font-medium text-muted-foreground",children:t("variableSectionSystem","System Variables")}),e.jsx("div",{className:"space-y-1",children:g.map(s=>e.jsxs("button",{onClick:()=>o?.(s),className:M.cn("flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent",r===s.name&&"bg-accent"),children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-foreground",children:s.name}),s.label&&e.jsx("span",{className:"text-xs text-muted-foreground",children:s.label})]}),r===s.name&&e.jsx(y.default,{className:"mt-1 h-4 w-4 text-foreground"})]},`system-${s.name}`))})]}),N.length>0&&e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"px-3 text-xs font-medium text-muted-foreground",children:t("variableSectionCustom","Custom Variables")}),e.jsx("div",{className:"space-y-1",children:N.map(s=>e.jsxs("button",{onClick:()=>o?.(s),className:M.cn("flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent",r===s.name&&"bg-accent"),children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-foreground",children:s.name}),s.label&&e.jsx("span",{className:"text-xs text-muted-foreground",children:s.label})]}),r===s.name&&e.jsx(y.default,{className:"mt-1 h-4 w-4 text-foreground"})]},`custom-${s.name}`))})]})]}):e.jsx("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:u?t("variableNotFound","No variables found"):t("variableEmpty","No variables yet")})}),e.jsx("div",{className:"border-t border-border p-2",children:T?e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 rounded-md border border-border bg-background px-3 py-2",children:[e.jsx(I.Input,{type:"text",placeholder:t("variableNamePlaceholder","Variable name"),value:S,onChange:F,onKeyDown:K,autoFocus:!0,className:"h-8 flex-1 border-0 px-0 focus-visible:ring-0 focus-visible:ring-offset-0"}),e.jsx(v.Button,{variant:"ghost",size:"icon",onClick:q,className:"h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground",children:e.jsx(O.default,{className:"h-4 w-4"})}),e.jsx(v.Button,{variant:"ghost",size:"icon",onClick:k,className:"h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground",children:e.jsx(y.default,{className:"h-4 w-4"})})]}),(f||C)&&e.jsx("p",{className:"mt-1 px-3 text-xs text-red-500",children:f?t("variableAlreadyExists","Variable already exists"):t("variableNameInvalid","Use a non-empty name without control characters, line breaks, or }}")})]}):e.jsxs(v.Button,{variant:"ghost",size:"sm",onClick:()=>m(!0),className:"w-full justify-start text-muted-foreground hover:text-foreground",children:[e.jsx(U.default,{className:"me-2 h-4 w-4"}),t("variableAddNew","Add new variable")]})})]})};exports.default=Y;
2
- //# sourceMappingURL=VariableSelect.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariableSelect.cjs","sources":["../../../../src/components/MarkdownFlowEditor/components/VariableSelect.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { Search, Plus, Check, X } from \"lucide-react\";\nimport { Input } from \"../../ui/input\";\nimport { Button } from \"../../ui/button\";\nimport { cn } from \"../../../lib/utils\";\nimport { Variable } from \"../types\";\nimport { normalizeVariableName } from \"../utils\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface VariableSelectProps {\n variables?: Variable[];\n systemVariables?: Variable[];\n selectedName?: string;\n onSelect?: (variable: Variable) => void;\n onAddVariable?: (variable: Variable) => void;\n}\n\nconst EMPTY_VARIABLES: Variable[] = [];\n\nconst VariableSelect = ({\n variables: initialVariables,\n systemVariables: initialSystemVariables,\n selectedName,\n onSelect,\n onAddVariable,\n}: VariableSelectProps) => {\n const { t } = useTranslation();\n const safeInitialVariables = initialVariables ?? EMPTY_VARIABLES;\n const safeInitialSystemVariables = initialSystemVariables ?? EMPTY_VARIABLES;\n\n const [variables, setVariables] = useState<Variable[]>(safeInitialVariables);\n useEffect(() => {\n setVariables(safeInitialVariables);\n }, [safeInitialVariables]);\n const systemVariables = safeInitialSystemVariables;\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [isAddingNew, setIsAddingNew] = useState(false);\n const [newVariableName, setNewVariableName] = useState(\"\");\n const [duplicateError, setDuplicateError] = useState(false);\n const [invalidNameError, setInvalidNameError] = useState(false);\n const resetErrors = () => {\n setDuplicateError(false);\n setInvalidNameError(false);\n };\n const normalizedSearch = searchQuery.toLowerCase();\n const filterPredicate = (variable: Variable) => {\n const nameMatch = variable.name.toLowerCase().includes(normalizedSearch);\n const labelMatch = variable.label\n ? variable.label.toLowerCase().includes(normalizedSearch)\n : false;\n return nameMatch || labelMatch;\n };\n\n const filteredSystemVariables = useMemo(\n () => systemVariables.filter(filterPredicate),\n [systemVariables, normalizedSearch]\n );\n const filteredCustomVariables = useMemo(\n () => variables.filter(filterPredicate),\n [variables, normalizedSearch]\n );\n const hasAnyResult =\n filteredSystemVariables.length > 0 || filteredCustomVariables.length > 0;\n\n const handleAddVariable = () => {\n const inputValue = normalizeVariableName(newVariableName);\n if (!inputValue) {\n setInvalidNameError(true);\n setDuplicateError(false);\n return;\n }\n\n const isDuplicate = [...variables, ...systemVariables].some(\n (v) => normalizeVariableName(v.name) === inputValue\n );\n\n if (isDuplicate) {\n setDuplicateError(true);\n setInvalidNameError(false);\n return;\n }\n\n const newVariable: Variable = {\n name: inputValue,\n };\n setVariables((prev) => [newVariable, ...prev]);\n onAddVariable?.({ name: inputValue });\n setNewVariableName(\"\");\n setIsAddingNew(false);\n setSearchQuery(\"\");\n resetErrors();\n onSelect?.(newVariable);\n };\n\n const handleCancelAdd = () => {\n setIsAddingNew(false);\n setNewVariableName(\"\");\n resetErrors();\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setNewVariableName(e.target.value);\n if (duplicateError || invalidNameError) {\n resetErrors();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n handleAddVariable();\n } else if (e.key === \"Escape\") {\n handleCancelAdd();\n }\n };\n return (\n <div className=\"w-full max-w-sm rounded-lg border bg-white\">\n <div className=\"relative\">\n <Search className=\"absolute start-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n type=\"text\"\n placeholder={t(\"variableSearchPlaceholder\", \"Search variable\")}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"ps-8 h-8 border-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n </div>\n\n <div className=\"max-h-[300px] overflow-y-auto p-2\">\n {hasAnyResult ? (\n <div className=\"space-y-4\">\n {filteredSystemVariables.length > 0 && (\n <div className=\"space-y-1\">\n <p className=\"px-3 text-xs font-medium text-muted-foreground\">\n {t(\"variableSectionSystem\", \"System Variables\")}\n </p>\n <div className=\"space-y-1\">\n {filteredSystemVariables.map((variable) => (\n <button\n key={`system-${variable.name}`}\n onClick={() => onSelect?.(variable)}\n className={cn(\n \"flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent\",\n selectedName === variable.name && \"bg-accent\"\n )}\n >\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-foreground\">\n {variable.name}\n </span>\n {variable.label && (\n <span className=\"text-xs text-muted-foreground\">\n {variable.label}\n </span>\n )}\n </div>\n {selectedName === variable.name && (\n <Check className=\"mt-1 h-4 w-4 text-foreground\" />\n )}\n </button>\n ))}\n </div>\n </div>\n )}\n\n {filteredCustomVariables.length > 0 && (\n <div className=\"space-y-1\">\n <p className=\"px-3 text-xs font-medium text-muted-foreground\">\n {t(\"variableSectionCustom\", \"Custom Variables\")}\n </p>\n <div className=\"space-y-1\">\n {filteredCustomVariables.map((variable) => (\n <button\n key={`custom-${variable.name}`}\n onClick={() => onSelect?.(variable)}\n className={cn(\n \"flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent\",\n selectedName === variable.name && \"bg-accent\"\n )}\n >\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-foreground\">\n {variable.name}\n </span>\n {variable.label && (\n <span className=\"text-xs text-muted-foreground\">\n {variable.label}\n </span>\n )}\n </div>\n {selectedName === variable.name && (\n <Check className=\"mt-1 h-4 w-4 text-foreground\" />\n )}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n ) : (\n <div className=\"px-3 py-6 text-center text-sm text-muted-foreground\">\n {searchQuery\n ? t(\"variableNotFound\", \"No variables found\")\n : t(\"variableEmpty\", \"No variables yet\")}\n </div>\n )}\n </div>\n\n <div className=\"border-t border-border p-2\">\n {isAddingNew ? (\n <div>\n <div className=\"flex items-center gap-2 rounded-md border border-border bg-background px-3 py-2\">\n <Input\n type=\"text\"\n placeholder={t(\"variableNamePlaceholder\", \"Variable name\")}\n value={newVariableName}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n autoFocus\n className=\"h-8 flex-1 border-0 px-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleCancelAdd}\n className=\"h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground\"\n >\n <X className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleAddVariable}\n className=\"h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground\"\n >\n <Check className=\"h-4 w-4\" />\n </Button>\n </div>\n {(duplicateError || invalidNameError) && (\n <p className=\"mt-1 px-3 text-xs text-red-500\">\n {duplicateError\n ? t(\"variableAlreadyExists\", \"Variable already exists\")\n : t(\n \"variableNameInvalid\",\n \"Use a non-empty name without control characters, line breaks, or }}\"\n )}\n </p>\n )}\n </div>\n ) : (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsAddingNew(true)}\n className=\"w-full justify-start text-muted-foreground hover:text-foreground\"\n >\n <Plus className=\"me-2 h-4 w-4\" />\n {t(\"variableAddNew\", \"Add new variable\")}\n </Button>\n )}\n </div>\n </div>\n );\n};\nexport default VariableSelect;\n"],"names":["EMPTY_VARIABLES","VariableSelect","initialVariables","initialSystemVariables","selectedName","onSelect","onAddVariable","useTranslation","safeInitialVariables","safeInitialSystemVariables","variables","setVariables","useState","useEffect","systemVariables","searchQuery","setSearchQuery","isAddingNew","setIsAddingNew","newVariableName","setNewVariableName","duplicateError","setDuplicateError","invalidNameError","setInvalidNameError","resetErrors","normalizedSearch","filterPredicate","variable","nameMatch","labelMatch","filteredSystemVariables","useMemo","filteredCustomVariables","hasAnyResult","handleAddVariable","inputValue","normalizeVariableName","v","newVariable","prev","handleCancelAdd","handleInputChange","e","handleKeyDown","jsxs","jsx","Search","Input","cn","Check","Button","X","Plus"],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { default as React } from 'react';
2
- import { Variable } from '../types.js';
3
- interface VariableSelectProps {
4
- variables?: Variable[];
5
- systemVariables?: Variable[];
6
- selectedName?: string;
7
- onSelect?: (variable: Variable) => void;
8
- onAddVariable?: (variable: Variable) => void;
9
- }
10
- declare const VariableSelect: ({ variables: initialVariables, systemVariables: initialSystemVariables, selectedName, onSelect, onAddVariable, }: VariableSelectProps) => React.JSX.Element;
11
- export default VariableSelect;
@@ -1,172 +0,0 @@
1
- import { jsxs as a, jsx as t } from "react/jsx-runtime";
2
- import { useState as r, useEffect as Y, useMemo as D } from "react";
3
- import { Input as P } from "../../ui/input.es.js";
4
- import { Button as w } from "../../ui/button.es.js";
5
- import { cn as L } from "../../../lib/utils.es.js";
6
- import { d as M } from "../../../_virtual/index.es.js";
7
- import { useTranslation as _ } from "../../../node_modules/react-i18next/dist/es/useTranslation.es.js";
8
- import q from "../../../node_modules/lucide-react/dist/esm/icons/search.es.js";
9
- import V from "../../../node_modules/lucide-react/dist/esm/icons/check.es.js";
10
- import G from "../../../node_modules/lucide-react/dist/esm/icons/x.es.js";
11
- import H from "../../../node_modules/lucide-react/dist/esm/icons/plus.es.js";
12
- const B = [], ne = ({
13
- variables: F,
14
- systemVariables: K,
15
- selectedName: l,
16
- onSelect: i,
17
- onAddVariable: Q
18
- }) => {
19
- const { t: s } = _(), c = F ?? B, R = K ?? B, [m, C] = r(c);
20
- Y(() => {
21
- C(c);
22
- }, [c]);
23
- const d = R, [u, E] = r(""), [T, f] = r(!1), [k, h] = r(""), [x, p] = r(!1), [S, b] = r(!1), N = () => {
24
- p(!1), b(!1);
25
- }, o = u.toLowerCase(), A = (e) => {
26
- const j = e.name.toLowerCase().includes(o), n = e.label ? e.label.toLowerCase().includes(o) : !1;
27
- return j || n;
28
- }, g = D(
29
- () => d.filter(A),
30
- [d, o]
31
- ), v = D(
32
- () => m.filter(A),
33
- [m, o]
34
- ), $ = g.length > 0 || v.length > 0, I = () => {
35
- const e = M.normalizeVariableName(k);
36
- if (!e) {
37
- b(!0), p(!1);
38
- return;
39
- }
40
- if ([...m, ...d].some(
41
- (y) => M.normalizeVariableName(y.name) === e
42
- )) {
43
- p(!0), b(!1);
44
- return;
45
- }
46
- const n = {
47
- name: e
48
- };
49
- C((y) => [n, ...y]), Q?.({ name: e }), h(""), f(!1), E(""), N(), i?.(n);
50
- }, z = () => {
51
- f(!1), h(""), N();
52
- }, U = (e) => {
53
- h(e.target.value), (x || S) && N();
54
- }, X = (e) => {
55
- e.key === "Enter" ? I() : e.key === "Escape" && z();
56
- };
57
- return /* @__PURE__ */ a("div", { className: "w-full max-w-sm rounded-lg border bg-white", children: [
58
- /* @__PURE__ */ a("div", { className: "relative", children: [
59
- /* @__PURE__ */ t(q, { className: "absolute start-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground" }),
60
- /* @__PURE__ */ t(
61
- P,
62
- {
63
- type: "text",
64
- placeholder: s("variableSearchPlaceholder", "Search variable"),
65
- value: u,
66
- onChange: (e) => E(e.target.value),
67
- className: "ps-8 h-8 border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
68
- }
69
- )
70
- ] }),
71
- /* @__PURE__ */ t("div", { className: "max-h-[300px] overflow-y-auto p-2", children: $ ? /* @__PURE__ */ a("div", { className: "space-y-4", children: [
72
- g.length > 0 && /* @__PURE__ */ a("div", { className: "space-y-1", children: [
73
- /* @__PURE__ */ t("p", { className: "px-3 text-xs font-medium text-muted-foreground", children: s("variableSectionSystem", "System Variables") }),
74
- /* @__PURE__ */ t("div", { className: "space-y-1", children: g.map((e) => /* @__PURE__ */ a(
75
- "button",
76
- {
77
- onClick: () => i?.(e),
78
- className: L(
79
- "flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent",
80
- l === e.name && "bg-accent"
81
- ),
82
- children: [
83
- /* @__PURE__ */ a("div", { className: "flex flex-col", children: [
84
- /* @__PURE__ */ t("span", { className: "text-sm font-medium text-foreground", children: e.name }),
85
- e.label && /* @__PURE__ */ t("span", { className: "text-xs text-muted-foreground", children: e.label })
86
- ] }),
87
- l === e.name && /* @__PURE__ */ t(V, { className: "mt-1 h-4 w-4 text-foreground" })
88
- ]
89
- },
90
- `system-${e.name}`
91
- )) })
92
- ] }),
93
- v.length > 0 && /* @__PURE__ */ a("div", { className: "space-y-1", children: [
94
- /* @__PURE__ */ t("p", { className: "px-3 text-xs font-medium text-muted-foreground", children: s("variableSectionCustom", "Custom Variables") }),
95
- /* @__PURE__ */ t("div", { className: "space-y-1", children: v.map((e) => /* @__PURE__ */ a(
96
- "button",
97
- {
98
- onClick: () => i?.(e),
99
- className: L(
100
- "flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent",
101
- l === e.name && "bg-accent"
102
- ),
103
- children: [
104
- /* @__PURE__ */ a("div", { className: "flex flex-col", children: [
105
- /* @__PURE__ */ t("span", { className: "text-sm font-medium text-foreground", children: e.name }),
106
- e.label && /* @__PURE__ */ t("span", { className: "text-xs text-muted-foreground", children: e.label })
107
- ] }),
108
- l === e.name && /* @__PURE__ */ t(V, { className: "mt-1 h-4 w-4 text-foreground" })
109
- ]
110
- },
111
- `custom-${e.name}`
112
- )) })
113
- ] })
114
- ] }) : /* @__PURE__ */ t("div", { className: "px-3 py-6 text-center text-sm text-muted-foreground", children: u ? s("variableNotFound", "No variables found") : s("variableEmpty", "No variables yet") }) }),
115
- /* @__PURE__ */ t("div", { className: "border-t border-border p-2", children: T ? /* @__PURE__ */ a("div", { children: [
116
- /* @__PURE__ */ a("div", { className: "flex items-center gap-2 rounded-md border border-border bg-background px-3 py-2", children: [
117
- /* @__PURE__ */ t(
118
- P,
119
- {
120
- type: "text",
121
- placeholder: s("variableNamePlaceholder", "Variable name"),
122
- value: k,
123
- onChange: U,
124
- onKeyDown: X,
125
- autoFocus: !0,
126
- className: "h-8 flex-1 border-0 px-0 focus-visible:ring-0 focus-visible:ring-offset-0"
127
- }
128
- ),
129
- /* @__PURE__ */ t(
130
- w,
131
- {
132
- variant: "ghost",
133
- size: "icon",
134
- onClick: z,
135
- className: "h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground",
136
- children: /* @__PURE__ */ t(G, { className: "h-4 w-4" })
137
- }
138
- ),
139
- /* @__PURE__ */ t(
140
- w,
141
- {
142
- variant: "ghost",
143
- size: "icon",
144
- onClick: I,
145
- className: "h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground",
146
- children: /* @__PURE__ */ t(V, { className: "h-4 w-4" })
147
- }
148
- )
149
- ] }),
150
- (x || S) && /* @__PURE__ */ t("p", { className: "mt-1 px-3 text-xs text-red-500", children: x ? s("variableAlreadyExists", "Variable already exists") : s(
151
- "variableNameInvalid",
152
- "Use a non-empty name without control characters, line breaks, or }}"
153
- ) })
154
- ] }) : /* @__PURE__ */ a(
155
- w,
156
- {
157
- variant: "ghost",
158
- size: "sm",
159
- onClick: () => f(!0),
160
- className: "w-full justify-start text-muted-foreground hover:text-foreground",
161
- children: [
162
- /* @__PURE__ */ t(H, { className: "me-2 h-4 w-4" }),
163
- s("variableAddNew", "Add new variable")
164
- ]
165
- }
166
- ) })
167
- ] });
168
- };
169
- export {
170
- ne as default
171
- };
172
- //# sourceMappingURL=VariableSelect.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariableSelect.es.js","sources":["../../../../src/components/MarkdownFlowEditor/components/VariableSelect.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { Search, Plus, Check, X } from \"lucide-react\";\nimport { Input } from \"../../ui/input\";\nimport { Button } from \"../../ui/button\";\nimport { cn } from \"../../../lib/utils\";\nimport { Variable } from \"../types\";\nimport { normalizeVariableName } from \"../utils\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface VariableSelectProps {\n variables?: Variable[];\n systemVariables?: Variable[];\n selectedName?: string;\n onSelect?: (variable: Variable) => void;\n onAddVariable?: (variable: Variable) => void;\n}\n\nconst EMPTY_VARIABLES: Variable[] = [];\n\nconst VariableSelect = ({\n variables: initialVariables,\n systemVariables: initialSystemVariables,\n selectedName,\n onSelect,\n onAddVariable,\n}: VariableSelectProps) => {\n const { t } = useTranslation();\n const safeInitialVariables = initialVariables ?? EMPTY_VARIABLES;\n const safeInitialSystemVariables = initialSystemVariables ?? EMPTY_VARIABLES;\n\n const [variables, setVariables] = useState<Variable[]>(safeInitialVariables);\n useEffect(() => {\n setVariables(safeInitialVariables);\n }, [safeInitialVariables]);\n const systemVariables = safeInitialSystemVariables;\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [isAddingNew, setIsAddingNew] = useState(false);\n const [newVariableName, setNewVariableName] = useState(\"\");\n const [duplicateError, setDuplicateError] = useState(false);\n const [invalidNameError, setInvalidNameError] = useState(false);\n const resetErrors = () => {\n setDuplicateError(false);\n setInvalidNameError(false);\n };\n const normalizedSearch = searchQuery.toLowerCase();\n const filterPredicate = (variable: Variable) => {\n const nameMatch = variable.name.toLowerCase().includes(normalizedSearch);\n const labelMatch = variable.label\n ? variable.label.toLowerCase().includes(normalizedSearch)\n : false;\n return nameMatch || labelMatch;\n };\n\n const filteredSystemVariables = useMemo(\n () => systemVariables.filter(filterPredicate),\n [systemVariables, normalizedSearch]\n );\n const filteredCustomVariables = useMemo(\n () => variables.filter(filterPredicate),\n [variables, normalizedSearch]\n );\n const hasAnyResult =\n filteredSystemVariables.length > 0 || filteredCustomVariables.length > 0;\n\n const handleAddVariable = () => {\n const inputValue = normalizeVariableName(newVariableName);\n if (!inputValue) {\n setInvalidNameError(true);\n setDuplicateError(false);\n return;\n }\n\n const isDuplicate = [...variables, ...systemVariables].some(\n (v) => normalizeVariableName(v.name) === inputValue\n );\n\n if (isDuplicate) {\n setDuplicateError(true);\n setInvalidNameError(false);\n return;\n }\n\n const newVariable: Variable = {\n name: inputValue,\n };\n setVariables((prev) => [newVariable, ...prev]);\n onAddVariable?.({ name: inputValue });\n setNewVariableName(\"\");\n setIsAddingNew(false);\n setSearchQuery(\"\");\n resetErrors();\n onSelect?.(newVariable);\n };\n\n const handleCancelAdd = () => {\n setIsAddingNew(false);\n setNewVariableName(\"\");\n resetErrors();\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setNewVariableName(e.target.value);\n if (duplicateError || invalidNameError) {\n resetErrors();\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n handleAddVariable();\n } else if (e.key === \"Escape\") {\n handleCancelAdd();\n }\n };\n return (\n <div className=\"w-full max-w-sm rounded-lg border bg-white\">\n <div className=\"relative\">\n <Search className=\"absolute start-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground\" />\n <Input\n type=\"text\"\n placeholder={t(\"variableSearchPlaceholder\", \"Search variable\")}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"ps-8 h-8 border-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n </div>\n\n <div className=\"max-h-[300px] overflow-y-auto p-2\">\n {hasAnyResult ? (\n <div className=\"space-y-4\">\n {filteredSystemVariables.length > 0 && (\n <div className=\"space-y-1\">\n <p className=\"px-3 text-xs font-medium text-muted-foreground\">\n {t(\"variableSectionSystem\", \"System Variables\")}\n </p>\n <div className=\"space-y-1\">\n {filteredSystemVariables.map((variable) => (\n <button\n key={`system-${variable.name}`}\n onClick={() => onSelect?.(variable)}\n className={cn(\n \"flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent\",\n selectedName === variable.name && \"bg-accent\"\n )}\n >\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-foreground\">\n {variable.name}\n </span>\n {variable.label && (\n <span className=\"text-xs text-muted-foreground\">\n {variable.label}\n </span>\n )}\n </div>\n {selectedName === variable.name && (\n <Check className=\"mt-1 h-4 w-4 text-foreground\" />\n )}\n </button>\n ))}\n </div>\n </div>\n )}\n\n {filteredCustomVariables.length > 0 && (\n <div className=\"space-y-1\">\n <p className=\"px-3 text-xs font-medium text-muted-foreground\">\n {t(\"variableSectionCustom\", \"Custom Variables\")}\n </p>\n <div className=\"space-y-1\">\n {filteredCustomVariables.map((variable) => (\n <button\n key={`custom-${variable.name}`}\n onClick={() => onSelect?.(variable)}\n className={cn(\n \"flex w-full items-start justify-between rounded-md px-3 py-2 text-start transition-colors hover:bg-accent\",\n selectedName === variable.name && \"bg-accent\"\n )}\n >\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium text-foreground\">\n {variable.name}\n </span>\n {variable.label && (\n <span className=\"text-xs text-muted-foreground\">\n {variable.label}\n </span>\n )}\n </div>\n {selectedName === variable.name && (\n <Check className=\"mt-1 h-4 w-4 text-foreground\" />\n )}\n </button>\n ))}\n </div>\n </div>\n )}\n </div>\n ) : (\n <div className=\"px-3 py-6 text-center text-sm text-muted-foreground\">\n {searchQuery\n ? t(\"variableNotFound\", \"No variables found\")\n : t(\"variableEmpty\", \"No variables yet\")}\n </div>\n )}\n </div>\n\n <div className=\"border-t border-border p-2\">\n {isAddingNew ? (\n <div>\n <div className=\"flex items-center gap-2 rounded-md border border-border bg-background px-3 py-2\">\n <Input\n type=\"text\"\n placeholder={t(\"variableNamePlaceholder\", \"Variable name\")}\n value={newVariableName}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n autoFocus\n className=\"h-8 flex-1 border-0 px-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleCancelAdd}\n className=\"h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground\"\n >\n <X className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n onClick={handleAddVariable}\n className=\"h-8 w-8 shrink-0 text-muted-foreground hover:text-foreground\"\n >\n <Check className=\"h-4 w-4\" />\n </Button>\n </div>\n {(duplicateError || invalidNameError) && (\n <p className=\"mt-1 px-3 text-xs text-red-500\">\n {duplicateError\n ? t(\"variableAlreadyExists\", \"Variable already exists\")\n : t(\n \"variableNameInvalid\",\n \"Use a non-empty name without control characters, line breaks, or }}\"\n )}\n </p>\n )}\n </div>\n ) : (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setIsAddingNew(true)}\n className=\"w-full justify-start text-muted-foreground hover:text-foreground\"\n >\n <Plus className=\"me-2 h-4 w-4\" />\n {t(\"variableAddNew\", \"Add new variable\")}\n </Button>\n )}\n </div>\n </div>\n );\n};\nexport default VariableSelect;\n"],"names":["EMPTY_VARIABLES","VariableSelect","initialVariables","initialSystemVariables","selectedName","onSelect","onAddVariable","t","useTranslation","safeInitialVariables","safeInitialSystemVariables","variables","setVariables","useState","useEffect","systemVariables","searchQuery","setSearchQuery","isAddingNew","setIsAddingNew","newVariableName","setNewVariableName","duplicateError","setDuplicateError","invalidNameError","setInvalidNameError","resetErrors","normalizedSearch","filterPredicate","variable","nameMatch","labelMatch","filteredSystemVariables","useMemo","filteredCustomVariables","hasAnyResult","handleAddVariable","inputValue","normalizeVariableName","v","newVariable","prev","handleCancelAdd","handleInputChange","handleKeyDown","jsxs","jsx","Search","Input","cn","Check","Button","X","Plus"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),i=require("react"),n=require("../../../../lib/utils.cjs"),s=i.forwardRef(({className:c,size:r=20,...t},o)=>e.jsxs("svg",{ref:o,xmlns:"http://www.w3.org/2000/svg",width:r,height:r,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",className:n.cn("lucide lucide-search-braces",c),...t,children:[e.jsx("circle",{cx:"11",cy:"11",r:"7"}),e.jsx("line",{x1:"16.65",y1:"16.65",x2:"21",y2:"21"}),e.jsx("path",{d:"M10 8c-1 0-1.5.5-1.5 1.5S8 11 7 11s1.5.5 1.5 1.5S9 14 10 14"}),e.jsx("path",{d:"M12 8c1 0 1.5.5 1.5 1.5S14 11 15 11s-1.5.5-1.5 1.5S13 14 12 14"})]}));s.displayName="SearchBracesIcon";exports.default=s;
2
- //# sourceMappingURL=SearchBracesIcon.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchBracesIcon.cjs","sources":["../../../../../src/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { LucideProps } from \"lucide-react\";\nimport { cn } from \"../../../../lib/utils\";\n\nconst SearchBracesIcon = forwardRef<SVGSVGElement, LucideProps>(\n ({ className, size = 20, ...props }, ref) => (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\"lucide lucide-search-braces\", className)}\n {...props}\n >\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <line x1=\"16.65\" y1=\"16.65\" x2=\"21\" y2=\"21\" />\n <path d=\"M10 8c-1 0-1.5.5-1.5 1.5S8 11 7 11s1.5.5 1.5 1.5S9 14 10 14\" />\n <path d=\"M12 8c1 0 1.5.5 1.5 1.5S14 11 15 11s-1.5.5-1.5 1.5S13 14 12 14\" />\n </svg>\n )\n);\n\nSearchBracesIcon.displayName = \"SearchBracesIcon\";\n\nexport default SearchBracesIcon;\n"],"names":["SearchBracesIcon","forwardRef","className","size","props","ref","jsxs","cn","jsx"],"mappings":"2MAIMA,EAAmBC,EAAAA,WACvB,CAAC,CAAE,UAAAC,EAAW,KAAAC,EAAO,GAAI,GAAGC,CAAA,EAASC,IACnCC,EAAAA,KAAC,MAAA,CACC,IAAAD,EACA,MAAM,6BACN,MAAOF,EACP,OAAQA,EACR,QAAQ,YACR,KAAK,OACL,OAAO,eACP,cAAc,QACd,eAAe,QACf,UAAWI,EAAAA,GAAG,8BAA+BL,CAAS,EACrD,GAAGE,EAEJ,SAAA,CAAAI,MAAC,UAAO,GAAG,KAAK,GAAG,KAAK,EAAE,IAAI,EAC9BA,EAAAA,IAAC,QAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAA,CAAK,EAC5CA,EAAAA,IAAC,OAAA,CAAK,EAAE,6DAAA,CAA8D,EACtEA,EAAAA,IAAC,OAAA,CAAK,EAAE,gEAAA,CAAiE,CAAA,CAAA,CAAA,CAG/E,EAEAR,EAAiB,YAAc"}
@@ -1,3 +0,0 @@
1
- import { LucideProps } from 'lucide-react';
2
- declare const SearchBracesIcon: import('react').ForwardRefExoticComponent<Omit<LucideProps, "ref"> & import('react').RefAttributes<SVGSVGElement>>;
3
- export default SearchBracesIcon;
@@ -1,32 +0,0 @@
1
- import { jsxs as a, jsx as r } from "react/jsx-runtime";
2
- import { forwardRef as t } from "react";
3
- import { cn as i } from "../../../../lib/utils.es.js";
4
- const n = t(
5
- ({ className: c, size: e = 20, ...o }, s) => /* @__PURE__ */ a(
6
- "svg",
7
- {
8
- ref: s,
9
- xmlns: "http://www.w3.org/2000/svg",
10
- width: e,
11
- height: e,
12
- viewBox: "0 0 24 24",
13
- fill: "none",
14
- stroke: "currentColor",
15
- strokeLinecap: "round",
16
- strokeLinejoin: "round",
17
- className: i("lucide lucide-search-braces", c),
18
- ...o,
19
- children: [
20
- /* @__PURE__ */ r("circle", { cx: "11", cy: "11", r: "7" }),
21
- /* @__PURE__ */ r("line", { x1: "16.65", y1: "16.65", x2: "21", y2: "21" }),
22
- /* @__PURE__ */ r("path", { d: "M10 8c-1 0-1.5.5-1.5 1.5S8 11 7 11s1.5.5 1.5 1.5S9 14 10 14" }),
23
- /* @__PURE__ */ r("path", { d: "M12 8c1 0 1.5.5 1.5 1.5S14 11 15 11s-1.5.5-1.5 1.5S13 14 12 14" })
24
- ]
25
- }
26
- )
27
- );
28
- n.displayName = "SearchBracesIcon";
29
- export {
30
- n as default
31
- };
32
- //# sourceMappingURL=SearchBracesIcon.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchBracesIcon.es.js","sources":["../../../../../src/components/MarkdownFlowEditor/components/icons/SearchBracesIcon.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { LucideProps } from \"lucide-react\";\nimport { cn } from \"../../../../lib/utils\";\n\nconst SearchBracesIcon = forwardRef<SVGSVGElement, LucideProps>(\n ({ className, size = 20, ...props }, ref) => (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\"lucide lucide-search-braces\", className)}\n {...props}\n >\n <circle cx=\"11\" cy=\"11\" r=\"7\" />\n <line x1=\"16.65\" y1=\"16.65\" x2=\"21\" y2=\"21\" />\n <path d=\"M10 8c-1 0-1.5.5-1.5 1.5S8 11 7 11s1.5.5 1.5 1.5S9 14 10 14\" />\n <path d=\"M12 8c1 0 1.5.5 1.5 1.5S14 11 15 11s-1.5.5-1.5 1.5S13 14 12 14\" />\n </svg>\n )\n);\n\nSearchBracesIcon.displayName = \"SearchBracesIcon\";\n\nexport default SearchBracesIcon;\n"],"names":["SearchBracesIcon","forwardRef","className","size","props","ref","jsxs","cn","jsx"],"mappings":";;;AAIA,MAAMA,IAAmBC;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,MAAAC,IAAO,IAAI,GAAGC,EAAA,GAASC,MACnC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,OAAM;AAAA,MACN,OAAOF;AAAA,MACP,QAAQA;AAAA,MACR,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,eAAc;AAAA,MACd,gBAAe;AAAA,MACf,WAAWI,EAAG,+BAA+BL,CAAS;AAAA,MACrD,GAAGE;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAI,EAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI;AAAA,QAC9B,gBAAAA,EAAC,UAAK,IAAG,SAAQ,IAAG,SAAQ,IAAG,MAAK,IAAG,KAAA,CAAK;AAAA,QAC5C,gBAAAA,EAAC,QAAA,EAAK,GAAE,8DAAA,CAA8D;AAAA,QACtE,gBAAAA,EAAC,QAAA,EAAK,GAAE,iEAAA,CAAiE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG/E;AAEAR,EAAiB,cAAc;"}
@@ -1,3 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("../../../node_modules/@codemirror/view/dist/index.cjs"),g=require("../types.cjs"),f=require("./PlaceholderWidget.cjs"),a=require("../../../_virtual/index.cjs"),d=(e,s,n)=>{const t=s+2,r=n-2;return r<t?!1:e.state.selection.ranges.some(o=>{const h=o.anchor>=t&&o.anchor<=r,u=o.head>=t&&o.head<=r;return h||u})},c=(e,s)=>{const n=e.state.doc.toString();return i.Decoration.set(s.flatMap(t=>{const r=n.slice(t.start,t.end);return t.name===null||r.includes(`
2
- `)||d(e,t.start,t.end)?[]:[i.Decoration.replace({widget:new f.default(r,{tag:"variable",title:t.name},"tag-variable",g.SelectedOption.Variable,e)}).range(t.start,t.end)]}))},l=(e,s)=>s.filter(n=>d(e,n.start,n.end)).map(n=>n.start).join(","),S=i.ViewPlugin.fromClass(class{constructor(e){this.markers=a.distExports.findDocumentVariableMarkers(e.state.doc.toString()),this.selectionSignature=l(e,this.markers),this.placeholders=c(e,this.markers)}update(e){if(e.docChanged&&(this.markers=a.distExports.findDocumentVariableMarkers(e.state.doc.toString())),e.docChanged||e.selectionSet){const s=l(e.view,this.markers);(e.docChanged||s!==this.selectionSignature)&&(this.selectionSignature=s,this.placeholders=c(e.view,this.markers))}}},{decorations:e=>e.placeholders,provide:e=>i.EditorView.atomicRanges.of(s=>s.plugin(e)?.placeholders||i.Decoration.none)});exports.default=S;
3
- //# sourceMappingURL=VariablePlaceholder.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariablePlaceholder.cjs","sources":["../../../../src/components/MarkdownFlowEditor/plugins/VariablePlaceholder.ts"],"sourcesContent":["import {\n EditorView,\n Decoration,\n DecorationSet,\n ViewPlugin,\n ViewUpdate,\n} from \"@codemirror/view\";\nimport { SelectedOption } from \"../types\";\nimport PlaceholderWidget from \"./PlaceholderWidget\";\nimport { findDocumentVariableMarkers } from \"../utils\";\n\nconst selectionInsideVariableExpression = (\n view: EditorView,\n from: number,\n to: number\n) => {\n const innerStart = from + 2;\n const innerEnd = to - 2;\n if (innerEnd < innerStart) {\n return false;\n }\n return view.state.selection.ranges.some((range) => {\n const isAnchorInside =\n range.anchor >= innerStart && range.anchor <= innerEnd;\n const isHeadInside = range.head >= innerStart && range.head <= innerEnd;\n return isAnchorInside || isHeadInside;\n });\n};\n\nconst buildPlaceholders = (\n view: EditorView,\n markers: ReturnType<typeof findDocumentVariableMarkers>\n): DecorationSet => {\n const text = view.state.doc.toString();\n return Decoration.set(\n markers.flatMap((marker) => {\n const rawMarker = text.slice(marker.start, marker.end);\n if (\n marker.name === null ||\n // CodeMirror inline widgets cannot replace line breaks in marker padding.\n rawMarker.includes(\"\\n\") ||\n selectionInsideVariableExpression(view, marker.start, marker.end)\n ) {\n return [];\n }\n return [\n Decoration.replace({\n widget: new PlaceholderWidget(\n rawMarker,\n { tag: \"variable\", title: marker.name },\n \"tag-variable\",\n SelectedOption.Variable,\n view\n ),\n }).range(marker.start, marker.end),\n ];\n })\n );\n};\n\nconst selectedMarkers = (\n view: EditorView,\n markers: ReturnType<typeof findDocumentVariableMarkers>\n) =>\n markers\n .filter((marker) =>\n selectionInsideVariableExpression(view, marker.start, marker.end)\n )\n .map((marker) => marker.start)\n .join(\",\");\n\nconst VariablePlaceholder = ViewPlugin.fromClass(\n class {\n placeholders: DecorationSet;\n markers: ReturnType<typeof findDocumentVariableMarkers>;\n selectionSignature: string;\n constructor(view: EditorView) {\n this.markers = findDocumentVariableMarkers(view.state.doc.toString());\n this.selectionSignature = selectedMarkers(view, this.markers);\n this.placeholders = buildPlaceholders(view, this.markers);\n }\n update(update: ViewUpdate) {\n if (update.docChanged)\n this.markers = findDocumentVariableMarkers(update.state.doc.toString());\n if (update.docChanged || update.selectionSet) {\n const signature = selectedMarkers(update.view, this.markers);\n if (update.docChanged || signature !== this.selectionSignature) {\n this.selectionSignature = signature;\n this.placeholders = buildPlaceholders(update.view, this.markers);\n }\n }\n }\n },\n {\n decorations: (instance) => instance.placeholders,\n provide: (plugin) =>\n EditorView.atomicRanges.of((view) => {\n return view.plugin(plugin)?.placeholders || Decoration.none;\n }),\n }\n);\n\nexport default VariablePlaceholder;\n"],"names":["selectionInsideVariableExpression","view","from","to","innerStart","innerEnd","range","isAnchorInside","isHeadInside","buildPlaceholders","markers","text","Decoration","marker","rawMarker","PlaceholderWidget","SelectedOption","selectedMarkers","VariablePlaceholder","ViewPlugin","findDocumentVariableMarkers","update","signature","instance","plugin","EditorView"],"mappings":"6RAWMA,EAAoC,CACxCC,EACAC,EACAC,IACG,CACH,MAAMC,EAAaF,EAAO,EACpBG,EAAWF,EAAK,EACtB,OAAIE,EAAWD,EACN,GAEFH,EAAK,MAAM,UAAU,OAAO,KAAMK,GAAU,CACjD,MAAMC,EACJD,EAAM,QAAUF,GAAcE,EAAM,QAAUD,EAC1CG,EAAeF,EAAM,MAAQF,GAAcE,EAAM,MAAQD,EAC/D,OAAOE,GAAkBC,CAC3B,CAAC,CACH,EAEMC,EAAoB,CACxBR,EACAS,IACkB,CAClB,MAAMC,EAAOV,EAAK,MAAM,IAAI,SAAA,EAC5B,OAAOW,EAAAA,WAAW,IAChBF,EAAQ,QAASG,GAAW,CAC1B,MAAMC,EAAYH,EAAK,MAAME,EAAO,MAAOA,EAAO,GAAG,EACrD,OACEA,EAAO,OAAS,MAEhBC,EAAU,SAAS;AAAA,CAAI,GACvBd,EAAkCC,EAAMY,EAAO,MAAOA,EAAO,GAAG,EAEzD,CAAA,EAEF,CACLD,EAAAA,WAAW,QAAQ,CACjB,OAAQ,IAAIG,EAAAA,QACVD,EACA,CAAE,IAAK,WAAY,MAAOD,EAAO,IAAA,EACjC,eACAG,EAAAA,eAAe,SACff,CAAA,CACF,CACD,EAAE,MAAMY,EAAO,MAAOA,EAAO,GAAG,CAAA,CAErC,CAAC,CAAA,CAEL,EAEMI,EAAkB,CACtBhB,EACAS,IAEAA,EACG,OAAQG,GACPb,EAAkCC,EAAMY,EAAO,MAAOA,EAAO,GAAG,CAClE,EACC,IAAKA,GAAWA,EAAO,KAAK,EAC5B,KAAK,GAAG,EAEPK,EAAsBC,EAAAA,WAAW,UACrC,KAAM,CAIJ,YAAYlB,EAAkB,CAC5B,KAAK,QAAUmB,0CAA4BnB,EAAK,MAAM,IAAI,UAAU,EACpE,KAAK,mBAAqBgB,EAAgBhB,EAAM,KAAK,OAAO,EAC5D,KAAK,aAAeQ,EAAkBR,EAAM,KAAK,OAAO,CAC1D,CACA,OAAOoB,EAAoB,CAGzB,GAFIA,EAAO,aACT,KAAK,QAAUD,0CAA4BC,EAAO,MAAM,IAAI,UAAU,GACpEA,EAAO,YAAcA,EAAO,aAAc,CAC5C,MAAMC,EAAYL,EAAgBI,EAAO,KAAM,KAAK,OAAO,GACvDA,EAAO,YAAcC,IAAc,KAAK,sBAC1C,KAAK,mBAAqBA,EAC1B,KAAK,aAAeb,EAAkBY,EAAO,KAAM,KAAK,OAAO,EAEnE,CACF,CAAA,EAEF,CACE,YAAcE,GAAaA,EAAS,aACpC,QAAUC,GACRC,EAAAA,WAAW,aAAa,GAAIxB,GACnBA,EAAK,OAAOuB,CAAM,GAAG,cAAgBZ,EAAAA,WAAW,IACxD,CAAA,CAEP"}
@@ -1,9 +0,0 @@
1
- import { DecorationSet, ViewPlugin, ViewUpdate } from '@codemirror/view';
2
- import { findDocumentVariableMarkers } from '../utils.js';
3
- declare const VariablePlaceholder: ViewPlugin<{
4
- placeholders: DecorationSet;
5
- markers: ReturnType<typeof findDocumentVariableMarkers>;
6
- selectionSignature: string;
7
- update(update: ViewUpdate): void;
8
- }, undefined>;
9
- export default VariablePlaceholder;