@gravity-ui/markdown-editor 15.27.2 → 15.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/README.md +6 -4
  2. package/build/cjs/bundle/Editor.js +1 -0
  3. package/build/cjs/bundle/Editor.js.map +1 -1
  4. package/build/cjs/bundle/HorizontalDrag.js +3 -3
  5. package/build/cjs/bundle/HorizontalDrag.js.map +1 -1
  6. package/build/cjs/bundle/settings/index.css +6 -14
  7. package/build/cjs/bundle/settings/index.js +5 -2
  8. package/build/cjs/bundle/settings/index.js.map +1 -1
  9. package/build/cjs/bundle/toolbar/utils/toolbarsConfigs.js +8 -8
  10. package/build/cjs/bundle/toolbar/utils/toolbarsConfigs.js.map +1 -1
  11. package/build/cjs/bundle/types.d.ts +10 -11
  12. package/build/cjs/bundle/types.js.map +1 -1
  13. package/build/cjs/bundle/wysiwyg-preset.d.ts +0 -1
  14. package/build/cjs/bundle/wysiwyg-preset.js +1 -1
  15. package/build/cjs/bundle/wysiwyg-preset.js.map +1 -1
  16. package/build/cjs/core/Editor.js.map +1 -1
  17. package/build/cjs/core/ExtensionBuilder.d.ts +0 -2
  18. package/build/cjs/core/ExtensionBuilder.js +1 -1
  19. package/build/cjs/core/ExtensionBuilder.js.map +1 -1
  20. package/build/cjs/core/markdown/MarkdownParser.d.ts +2 -3
  21. package/build/cjs/core/markdown/MarkdownParser.js.map +1 -1
  22. package/build/cjs/core/types/extension.js.map +1 -1
  23. package/build/cjs/core/types/parser.d.ts +3 -2
  24. package/build/cjs/core/types/parser.js.map +1 -1
  25. package/build/cjs/extensions/additional/GPT/gptExtension/view.js +1 -3
  26. package/build/cjs/extensions/additional/GPT/gptExtension/view.js.map +1 -1
  27. package/build/cjs/extensions/additional/Mermaid/MermaidSpecs/index.js +0 -1
  28. package/build/cjs/extensions/additional/Mermaid/MermaidSpecs/index.js.map +1 -1
  29. package/build/cjs/extensions/additional/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.js +1 -1
  30. package/build/cjs/extensions/additional/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.js.map +1 -1
  31. package/build/cjs/extensions/additional/YfmHtmlBlock/YfmHtmlBlockSpecs/index.js.map +1 -1
  32. package/build/cjs/extensions/additional/YfmHtmlBlock/index.js.map +1 -1
  33. package/build/cjs/extensions/behavior/Autocomplete/types.js.map +1 -1
  34. package/build/cjs/extensions/behavior/SelectionContext/index.d.ts +0 -2
  35. package/build/cjs/extensions/behavior/SelectionContext/index.js.map +1 -1
  36. package/build/cjs/extensions/behavior/SelectionContext/tooltip.js.map +1 -1
  37. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +3 -1
  38. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
  39. package/build/cjs/extensions/markdown/CodeBlock/handle-paste.d.ts +20 -0
  40. package/build/cjs/extensions/markdown/CodeBlock/handle-paste.js +80 -23
  41. package/build/cjs/extensions/markdown/CodeBlock/handle-paste.js.map +1 -1
  42. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.d.ts +2 -2
  43. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
  44. package/build/cjs/extensions/markdown/Heading/HeadingSpecs/index.d.ts +1 -1
  45. package/build/cjs/extensions/markdown/Heading/HeadingSpecs/index.js.map +1 -1
  46. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.d.ts +1 -1
  47. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
  48. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.d.ts +1 -1
  49. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
  50. package/build/cjs/extensions/yfm/ImgSize/index.d.ts +0 -1
  51. package/build/cjs/extensions/yfm/ImgSize/index.js.map +1 -1
  52. package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.d.ts +1 -1
  53. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/schema.d.ts +2 -2
  54. package/build/cjs/extensions/yfm/YfmCut/YfmCutSpecs/schema.js.map +1 -1
  55. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.d.ts +1 -1
  56. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
  57. package/build/cjs/extensions/yfm/YfmTable/index.d.ts +0 -2
  58. package/build/cjs/extensions/yfm/YfmTable/index.js.map +1 -1
  59. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js.map +1 -1
  60. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.d.ts +1 -1
  61. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js +3 -4
  62. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js.map +1 -1
  63. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js.map +1 -1
  64. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js +0 -1
  65. package/build/cjs/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js.map +1 -1
  66. package/build/cjs/extensions/yfm/YfmTabs/YfmTabsSpecs/schema.d.ts +1 -1
  67. package/build/cjs/extensions/yfm/YfmTabs/YfmTabsSpecs/schema.js.map +1 -1
  68. package/build/cjs/i18n/bundle/en.json +2 -1
  69. package/build/cjs/i18n/bundle/index.d.ts +3 -2
  70. package/build/cjs/i18n/bundle/ru.json +2 -1
  71. package/build/cjs/i18n/common/en.json +2 -1
  72. package/build/cjs/i18n/common/index.d.ts +2 -1
  73. package/build/cjs/i18n/common/ru.json +2 -1
  74. package/build/cjs/logger.d.ts +0 -1
  75. package/build/cjs/logger.js +0 -1
  76. package/build/cjs/logger.js.map +1 -1
  77. package/build/cjs/markup/codemirror/create.d.ts +3 -1
  78. package/build/cjs/markup/codemirror/create.js +4 -1
  79. package/build/cjs/markup/codemirror/create.js.map +1 -1
  80. package/build/cjs/markup/codemirror/gravity.js +0 -1
  81. package/build/cjs/markup/codemirror/gravity.js.map +1 -1
  82. package/build/cjs/shortcuts/default.js +0 -2
  83. package/build/cjs/shortcuts/default.js.map +1 -1
  84. package/build/cjs/table-utils/commands/removeRow.js +1 -2
  85. package/build/cjs/table-utils/commands/removeRow.js.map +1 -1
  86. package/build/cjs/toolbar/types.d.ts +2 -3
  87. package/build/cjs/toolbar/types.js.map +1 -1
  88. package/build/cjs/types/spec.d.ts +0 -1
  89. package/build/cjs/types/spec.js.map +1 -1
  90. package/build/cjs/utils/ecapeRegexp.d.ts +1 -2
  91. package/build/cjs/utils/ecapeRegexp.js +1 -2
  92. package/build/cjs/utils/ecapeRegexp.js.map +1 -1
  93. package/build/cjs/utils/inputrules.js +2 -2
  94. package/build/cjs/utils/inputrules.js.map +1 -1
  95. package/build/cjs/version.js +1 -1
  96. package/build/cjs/version.js.map +1 -1
  97. package/build/cjs/view/hooks/useFilesGallery/constants.d.ts +5 -0
  98. package/build/cjs/view/hooks/useFilesGallery/constants.js +10 -2
  99. package/build/cjs/view/hooks/useFilesGallery/constants.js.map +1 -1
  100. package/build/cjs/view/hooks/useFilesGallery/helpers.d.ts +8 -0
  101. package/build/cjs/view/hooks/useFilesGallery/helpers.js +28 -0
  102. package/build/cjs/view/hooks/useFilesGallery/helpers.js.map +1 -0
  103. package/build/cjs/view/hooks/useFilesGallery/useFilesGallery.d.ts +0 -1
  104. package/build/cjs/view/hooks/useFilesGallery/useFilesGallery.js +19 -22
  105. package/build/cjs/view/hooks/useFilesGallery/useFilesGallery.js.map +1 -1
  106. package/build/esm/bundle/Editor.js +1 -0
  107. package/build/esm/bundle/Editor.js.map +1 -1
  108. package/build/esm/bundle/HorizontalDrag.js +3 -3
  109. package/build/esm/bundle/HorizontalDrag.js.map +1 -1
  110. package/build/esm/bundle/settings/index.css +6 -14
  111. package/build/esm/bundle/settings/index.js +6 -3
  112. package/build/esm/bundle/settings/index.js.map +1 -1
  113. package/build/esm/bundle/toolbar/utils/toolbarsConfigs.js +8 -8
  114. package/build/esm/bundle/toolbar/utils/toolbarsConfigs.js.map +1 -1
  115. package/build/esm/bundle/types.d.ts +10 -11
  116. package/build/esm/bundle/types.js.map +1 -1
  117. package/build/esm/bundle/wysiwyg-preset.d.ts +0 -1
  118. package/build/esm/bundle/wysiwyg-preset.js +1 -1
  119. package/build/esm/bundle/wysiwyg-preset.js.map +1 -1
  120. package/build/esm/core/Editor.js.map +1 -1
  121. package/build/esm/core/ExtensionBuilder.d.ts +0 -2
  122. package/build/esm/core/ExtensionBuilder.js +1 -1
  123. package/build/esm/core/ExtensionBuilder.js.map +1 -1
  124. package/build/esm/core/markdown/MarkdownParser.d.ts +2 -3
  125. package/build/esm/core/markdown/MarkdownParser.js.map +1 -1
  126. package/build/esm/core/types/extension.js.map +1 -1
  127. package/build/esm/core/types/parser.d.ts +3 -2
  128. package/build/esm/core/types/parser.js.map +1 -1
  129. package/build/esm/extensions/additional/GPT/gptExtension/view.js +1 -3
  130. package/build/esm/extensions/additional/GPT/gptExtension/view.js.map +1 -1
  131. package/build/esm/extensions/additional/Mermaid/MermaidSpecs/index.js +0 -1
  132. package/build/esm/extensions/additional/Mermaid/MermaidSpecs/index.js.map +1 -1
  133. package/build/esm/extensions/additional/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.js +1 -1
  134. package/build/esm/extensions/additional/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.js.map +1 -1
  135. package/build/esm/extensions/additional/YfmHtmlBlock/YfmHtmlBlockSpecs/index.js.map +1 -1
  136. package/build/esm/extensions/additional/YfmHtmlBlock/index.js.map +1 -1
  137. package/build/esm/extensions/behavior/Autocomplete/types.js.map +1 -1
  138. package/build/esm/extensions/behavior/SelectionContext/index.d.ts +0 -2
  139. package/build/esm/extensions/behavior/SelectionContext/index.js.map +1 -1
  140. package/build/esm/extensions/behavior/SelectionContext/tooltip.js.map +1 -1
  141. package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +3 -1
  142. package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
  143. package/build/esm/extensions/markdown/CodeBlock/handle-paste.d.ts +20 -0
  144. package/build/esm/extensions/markdown/CodeBlock/handle-paste.js +78 -24
  145. package/build/esm/extensions/markdown/CodeBlock/handle-paste.js.map +1 -1
  146. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.d.ts +2 -2
  147. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
  148. package/build/esm/extensions/markdown/Heading/HeadingSpecs/index.d.ts +1 -1
  149. package/build/esm/extensions/markdown/Heading/HeadingSpecs/index.js.map +1 -1
  150. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.d.ts +1 -1
  151. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
  152. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.d.ts +1 -1
  153. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
  154. package/build/esm/extensions/yfm/ImgSize/index.d.ts +0 -1
  155. package/build/esm/extensions/yfm/ImgSize/index.js.map +1 -1
  156. package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.d.ts +1 -1
  157. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/schema.d.ts +2 -2
  158. package/build/esm/extensions/yfm/YfmCut/YfmCutSpecs/schema.js.map +1 -1
  159. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.d.ts +1 -1
  160. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
  161. package/build/esm/extensions/yfm/YfmTable/index.d.ts +0 -2
  162. package/build/esm/extensions/yfm/YfmTable/index.js.map +1 -1
  163. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingMenuControl/FloatingMenuControl.js.map +1 -1
  164. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.d.ts +1 -1
  165. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js +1 -2
  166. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusButton/InsertCursor.js.map +1 -1
  167. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.js.map +1 -1
  168. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js +0 -1
  169. package/build/esm/extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.js.map +1 -1
  170. package/build/esm/extensions/yfm/YfmTabs/YfmTabsSpecs/schema.d.ts +1 -1
  171. package/build/esm/extensions/yfm/YfmTabs/YfmTabsSpecs/schema.js.map +1 -1
  172. package/build/esm/i18n/bundle/en.json +2 -1
  173. package/build/esm/i18n/bundle/index.d.ts +3 -2
  174. package/build/esm/i18n/bundle/ru.json +2 -1
  175. package/build/esm/i18n/common/en.json +2 -1
  176. package/build/esm/i18n/common/index.d.ts +2 -1
  177. package/build/esm/i18n/common/ru.json +2 -1
  178. package/build/esm/logger.d.ts +0 -1
  179. package/build/esm/logger.js +0 -1
  180. package/build/esm/logger.js.map +1 -1
  181. package/build/esm/markup/codemirror/create.d.ts +3 -1
  182. package/build/esm/markup/codemirror/create.js +5 -2
  183. package/build/esm/markup/codemirror/create.js.map +1 -1
  184. package/build/esm/markup/codemirror/gravity.js +0 -1
  185. package/build/esm/markup/codemirror/gravity.js.map +1 -1
  186. package/build/esm/shortcuts/default.js +0 -2
  187. package/build/esm/shortcuts/default.js.map +1 -1
  188. package/build/esm/table-utils/commands/removeRow.js +1 -2
  189. package/build/esm/table-utils/commands/removeRow.js.map +1 -1
  190. package/build/esm/toolbar/types.d.ts +2 -3
  191. package/build/esm/toolbar/types.js.map +1 -1
  192. package/build/esm/types/spec.d.ts +0 -1
  193. package/build/esm/types/spec.js.map +1 -1
  194. package/build/esm/utils/ecapeRegexp.d.ts +1 -2
  195. package/build/esm/utils/ecapeRegexp.js +1 -2
  196. package/build/esm/utils/ecapeRegexp.js.map +1 -1
  197. package/build/esm/utils/inputrules.js +2 -2
  198. package/build/esm/utils/inputrules.js.map +1 -1
  199. package/build/esm/version.js +1 -1
  200. package/build/esm/version.js.map +1 -1
  201. package/build/esm/view/hooks/useFilesGallery/constants.d.ts +5 -0
  202. package/build/esm/view/hooks/useFilesGallery/constants.js +9 -1
  203. package/build/esm/view/hooks/useFilesGallery/constants.js.map +1 -1
  204. package/build/esm/view/hooks/useFilesGallery/helpers.d.ts +8 -0
  205. package/build/esm/view/hooks/useFilesGallery/helpers.js +25 -0
  206. package/build/esm/view/hooks/useFilesGallery/helpers.js.map +1 -0
  207. package/build/esm/view/hooks/useFilesGallery/useFilesGallery.d.ts +0 -1
  208. package/build/esm/view/hooks/useFilesGallery/useFilesGallery.js +19 -21
  209. package/build/esm/view/hooks/useFilesGallery/useFilesGallery.js.map +1 -1
  210. package/build/styles.css +6 -14
  211. package/package.json +73 -49
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingPlusControl.js","sourceRoot":"../../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.tsx"],"names":[],"mappings":"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","sourcesContent":["import {memo, useEffect, useMemo, useRef, useState} from 'react';\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport type {VirtualElement} from '@floating-ui/dom';\nimport {useEffectOnce} from 'react-use';\n\nimport {useRafThrottle} from '../../hooks/use-raf-throttle';\nimport {\n FloatingPlusButton,\n type FloatingPlusButtonProps,\n type FloatingPlusButtonRef,\n} from '../FloatingPlusButton';\n\ntype ControlType = FloatingPlusButtonProps['type'];\n\nexport type FloatingPlusControlProps = {\n type: ControlType;\n index: number;\n cellElem: Element;\n tableElem: Element;\n onClick: (rowIdx: number) => void;\n};\n\nexport const FloatingPlusControl = memo<FloatingPlusControlProps>(\n function YfmTableRowFloatingPlusControl({type, index, cellElem, tableElem, onClick}) {\n const anchor = useMemo<VirtualElement>(\n () => ({\n contextElement: tableElem,\n getBoundingClientRect() {\n const cellRect = cellElem.getBoundingClientRect();\n const tableRect = tableElem.getBoundingClientRect();\n\n return type === 'row'\n ? {\n x: tableRect.x,\n y: cellRect.y,\n width: tableRect.width,\n height: cellRect.height,\n top: cellRect.top,\n left: tableRect.left,\n right: tableRect.right,\n bottom: cellRect.top,\n }\n : {\n x: cellRect.x,\n y: tableRect.y,\n width: cellRect.width,\n height: tableRect.height,\n top: tableRect.top,\n left: cellRect.left,\n right: cellRect.right,\n bottom: tableRect.top,\n };\n },\n }),\n [cellElem, tableElem, type],\n );\n\n const [visible, setVisible] = useState(() => shouldBeVisible(type, cellElem, tableElem));\n const buttonRef = useRef<FloatingPlusButtonRef>(null);\n\n const updateVisibility = () => {\n const newVisible = shouldBeVisible(type, cellElem, tableElem);\n if (visible !== newVisible) setVisible(newVisible);\n };\n\n const onChange = useRafThrottle(() => {\n buttonRef.current?.forceUpdate();\n updateVisibility();\n });\n\n // Update after first render\n useEffectOnce(updateVisibility);\n\n useEffect(() => {\n if (type !== 'column') return undefined;\n\n const observer = new ResizeObserver(onChange);\n observer.observe(tableElem);\n tableElem.addEventListener('scroll', onChange);\n\n return () => {\n observer.unobserve(tableElem);\n tableElem.removeEventListener('scroll', onChange);\n };\n }, [tableElem, onChange, type]);\n\n return (\n <FloatingPlusButton\n ref={buttonRef}\n anchor={anchor}\n type={type}\n onClick={() => onClick(index)}\n floatingStyles={visible ? undefined : {display: 'none'}}\n />\n );\n },\n);\n\nfunction shouldBeVisible(type: ControlType, cellElem: Element, tableElem: Element): boolean {\n if (type !== 'column') return true;\n\n const THRESHOLD = 4; // px\n\n const cellRect = cellElem.getBoundingClientRect();\n const tableRect = tableElem.getBoundingClientRect();\n\n return (\n tableRect.left - cellRect.right <= THRESHOLD &&\n cellRect.right - tableRect.right <= THRESHOLD\n );\n}\n"]}
1
+ {"version":3,"file":"FloatingPlusControl.js","sourceRoot":"../../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPlusControl/FloatingPlusControl.tsx"],"names":[],"mappings":"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","sourcesContent":["import {memo, useEffect, useMemo, useRef, useState} from 'react';\n\nimport type {VirtualElement} from '@floating-ui/react';\nimport {useEffectOnce} from 'react-use';\n\nimport {useRafThrottle} from '../../hooks/use-raf-throttle';\nimport {\n FloatingPlusButton,\n type FloatingPlusButtonProps,\n type FloatingPlusButtonRef,\n} from '../FloatingPlusButton';\n\ntype ControlType = FloatingPlusButtonProps['type'];\n\nexport type FloatingPlusControlProps = {\n type: ControlType;\n index: number;\n cellElem: Element;\n tableElem: Element;\n onClick: (rowIdx: number) => void;\n};\n\nexport const FloatingPlusControl = memo<FloatingPlusControlProps>(\n function YfmTableRowFloatingPlusControl({type, index, cellElem, tableElem, onClick}) {\n const anchor = useMemo<VirtualElement>(\n () => ({\n contextElement: tableElem,\n getBoundingClientRect() {\n const cellRect = cellElem.getBoundingClientRect();\n const tableRect = tableElem.getBoundingClientRect();\n\n return type === 'row'\n ? {\n x: tableRect.x,\n y: cellRect.y,\n width: tableRect.width,\n height: cellRect.height,\n top: cellRect.top,\n left: tableRect.left,\n right: tableRect.right,\n bottom: cellRect.top,\n }\n : {\n x: cellRect.x,\n y: tableRect.y,\n width: cellRect.width,\n height: tableRect.height,\n top: tableRect.top,\n left: cellRect.left,\n right: cellRect.right,\n bottom: tableRect.top,\n };\n },\n }),\n [cellElem, tableElem, type],\n );\n\n const [visible, setVisible] = useState(() => shouldBeVisible(type, cellElem, tableElem));\n const buttonRef = useRef<FloatingPlusButtonRef>(null);\n\n const updateVisibility = () => {\n const newVisible = shouldBeVisible(type, cellElem, tableElem);\n if (visible !== newVisible) setVisible(newVisible);\n };\n\n const onChange = useRafThrottle(() => {\n buttonRef.current?.forceUpdate();\n updateVisibility();\n });\n\n // Update after first render\n useEffectOnce(updateVisibility);\n\n useEffect(() => {\n if (type !== 'column') return undefined;\n\n const observer = new ResizeObserver(onChange);\n observer.observe(tableElem);\n tableElem.addEventListener('scroll', onChange);\n\n return () => {\n observer.unobserve(tableElem);\n tableElem.removeEventListener('scroll', onChange);\n };\n }, [tableElem, onChange, type]);\n\n return (\n <FloatingPlusButton\n ref={buttonRef}\n anchor={anchor}\n type={type}\n onClick={() => onClick(index)}\n floatingStyles={visible ? undefined : {display: 'none'}}\n />\n );\n },\n);\n\nfunction shouldBeVisible(type: ControlType, cellElem: Element, tableElem: Element): boolean {\n if (type !== 'column') return true;\n\n const THRESHOLD = 4; // px\n\n const cellRect = cellElem.getBoundingClientRect();\n const tableRect = tableElem.getBoundingClientRect();\n\n return (\n tableRect.left - cellRect.right <= THRESHOLD &&\n cellRect.right - tableRect.right <= THRESHOLD\n );\n}\n"]}
@@ -7,7 +7,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  /// This fork does not use floating focus manager
8
8
  ///
9
9
  const react_1 = require("react");
10
- // eslint-disable-next-line import/no-extraneous-dependencies
11
10
  const react_2 = require("@floating-ui/react");
12
11
  const uikit_1 = require("@gravity-ui/uikit");
13
12
  const classname_1 = require("../../../../../../../classname.js");
@@ -1 +1 @@
1
- {"version":3,"file":"FloatingPopup.js","sourceRoot":"../../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.tsx"],"names":[],"mappings":";;;;AAAA,GAAG;AACH,kDAAkD;AAClD,iDAAiD;AACjD,GAAG;AAEH,iCAA0E;AAE1E,6DAA6D;AAC7D,8CAY4B;AAC5B,6CAAsE;AAEtE,iEAAiC;AAEjC,+BAA8B;AAE9B,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,0BAA0B,CAAC,CAAC;AAmB5B,QAAA,aAAa,GAAG,IAAA,kBAAU,EACnC,SAAS,qBAAqB,CAAC,KAAK,EAAE,GAAG;IACrC,MAAM,EACF,aAAa,EACb,MAAM,GAAG,IAAI,EACb,KAAK,EACL,SAAS,EACT,EAAE,EACF,QAAQ,EACR,cAAc,EAAE,uBAAuB,GAC1C,GAAG,KAAK,CAAC;IAEV,MAAM,MAAM,GAAG,IAAA,yBAAiB,GAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAA,+BAAuB,GAAE,CAAC;IAE3C,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,IAAA,cAAgB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnF,MAAM,EACF,IAAI,EACJ,cAAc,EACd,SAAS,EACT,OAAO,EAAE,EAAC,IAAI,EAAC,EACf,MAAM,GACT,GAAG,IAAA,mBAAW,EAAC;QACZ,MAAM;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU;QACV,oBAAoB,EAAE,kBAAU;KACnC,CAAC,CAAC;IAEH,IAAA,2BAAmB,EACf,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACH,WAAW,EAAE,MAAM;KACtB,CAAC,EACF,CAAC,MAAM,CAAC,CACX,CAAC;IAEF,MAAM,EAAC,gBAAgB,EAAC,GAAG,IAAA,uBAAe,GAAE,CAAC;IAE7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1B,SAAS,OAAO,CAAC,IAAiB;QAC9B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,uBAAC,oBAAY,cAAE,IAAI,GAAgB,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,CACV,uBAAC,oBAAY,IAAC,EAAE,EAAE,MAAM,YACnB,IAAI,CAAC,CAAC,CAAC,CACJ,uBAAC,cAAM,cACH,gCACI,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE;oBACH,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,MAAM;oBACN,KAAK,EAAE,aAAa;oBACpB,aAAa,EAAE,MAAM;oBACrB,OAAO,EAAE,MAAM;oBACf,GAAG,uBAAuB;oBAC1B,GAAG,cAAc;iBACpB,gCAC2B,SAAS,KACjC,gBAAgB,EAAE,YAEtB,gCAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,aAAW,EAAE,YACxD,QAAQ,GACP,GACJ,GACD,CACZ,CAAC,CAAC,CAAC,IAAI,GACG,CAClB,CAAC;AACN,CAAC,CACJ,CAAC","sourcesContent":["///\n/// Fork of Popup component from @gravity-ui/uikit\n/// This fork does not use floating focus manager\n///\n\nimport {forwardRef, useEffect, useImperativeHandle, useMemo} from 'react';\n\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n FloatingNode,\n FloatingTree,\n type OffsetOptions,\n type Placement,\n type ReferenceType,\n autoUpdate,\n offset as offsetMiddleware,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useInteractions,\n} from '@floating-ui/react';\nimport {type DOMProps, Portal, type QAProps} from '@gravity-ui/uikit';\n\nimport {cn} from 'src/classname';\n\nimport './FloatingPopup.scss';\n\nconst b = cn('yfm-table-floating-popup');\n\nexport type {ReferenceType};\n\nexport type FloatingPopupRef = {\n forceUpdate: () => void;\n};\n\nexport type FloatingPopupProps = QAProps &\n DOMProps & {\n open?: boolean;\n zIndex?: number;\n placement: Placement;\n offset?: OffsetOptions;\n anchorElement: ReferenceType | undefined | null;\n children: React.ReactNode;\n floatingStyles?: React.CSSProperties;\n };\n\nexport const FloatingPopup = forwardRef<FloatingPopupRef, FloatingPopupProps>(\n function YfmTableFloatingPopup(props, ref) {\n const {\n anchorElement,\n zIndex = 1000,\n style,\n className,\n qa,\n children,\n floatingStyles: floatingStylesFromProps,\n } = props;\n\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n\n const middleware = useMemo(() => [offsetMiddleware(props.offset)], [props.offset]);\n\n const {\n refs,\n floatingStyles,\n placement,\n context: {open},\n update,\n } = useFloating({\n nodeId,\n open: props.open,\n placement: props.placement,\n middleware,\n whileElementsMounted: autoUpdate,\n });\n\n useImperativeHandle<FloatingPopupRef, FloatingPopupRef>(\n ref,\n () => ({\n forceUpdate: update,\n }),\n [update],\n );\n\n const {getFloatingProps} = useInteractions();\n\n useEffect(() => {\n if (anchorElement !== undefined && anchorElement !== refs.reference.current) {\n refs.setReference(anchorElement);\n }\n }, [anchorElement, refs]);\n\n function wrapper(node: JSX.Element) {\n if (parentId === null) {\n return <FloatingTree>{node}</FloatingTree>;\n }\n\n return node;\n }\n\n return wrapper(\n <FloatingNode id={nodeId}>\n {open ? (\n <Portal>\n <div\n ref={refs.setFloating}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex,\n width: 'max-content',\n pointerEvents: 'auto',\n outline: 'none',\n ...floatingStylesFromProps,\n ...floatingStyles,\n }}\n data-floating-ui-placement={placement}\n {...getFloatingProps()}\n >\n <div className={b(null, className)} style={style} data-qa={qa}>\n {children}\n </div>\n </div>\n </Portal>\n ) : null}\n </FloatingNode>,\n );\n },\n);\n"]}
1
+ {"version":3,"file":"FloatingPopup.js","sourceRoot":"../../../../../../../../../src","sources":["extensions/yfm/YfmTable/plugins/YfmTableControls/components/FloatingPopup/FloatingPopup.tsx"],"names":[],"mappings":";;;;AAAA,GAAG;AACH,kDAAkD;AAClD,iDAAiD;AACjD,GAAG;AAEH,iCAA0E;AAE1E,8CAY4B;AAC5B,6CAAsE;AAEtE,iEAAiC;AAEjC,+BAA8B;AAE9B,MAAM,CAAC,GAAG,IAAA,cAAE,EAAC,0BAA0B,CAAC,CAAC;AAmB5B,QAAA,aAAa,GAAG,IAAA,kBAAU,EACnC,SAAS,qBAAqB,CAAC,KAAK,EAAE,GAAG;IACrC,MAAM,EACF,aAAa,EACb,MAAM,GAAG,IAAI,EACb,KAAK,EACL,SAAS,EACT,EAAE,EACF,QAAQ,EACR,cAAc,EAAE,uBAAuB,GAC1C,GAAG,KAAK,CAAC;IAEV,MAAM,MAAM,GAAG,IAAA,yBAAiB,GAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAA,+BAAuB,GAAE,CAAC;IAE3C,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,IAAA,cAAgB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnF,MAAM,EACF,IAAI,EACJ,cAAc,EACd,SAAS,EACT,OAAO,EAAE,EAAC,IAAI,EAAC,EACf,MAAM,GACT,GAAG,IAAA,mBAAW,EAAC;QACZ,MAAM;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU;QACV,oBAAoB,EAAE,kBAAU;KACnC,CAAC,CAAC;IAEH,IAAA,2BAAmB,EACf,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACH,WAAW,EAAE,MAAM;KACtB,CAAC,EACF,CAAC,MAAM,CAAC,CACX,CAAC;IAEF,MAAM,EAAC,gBAAgB,EAAC,GAAG,IAAA,uBAAe,GAAE,CAAC;IAE7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC1E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAE1B,SAAS,OAAO,CAAC,IAAiB;QAC9B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,uBAAC,oBAAY,cAAE,IAAI,GAAgB,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,CACV,uBAAC,oBAAY,IAAC,EAAE,EAAE,MAAM,YACnB,IAAI,CAAC,CAAC,CAAC,CACJ,uBAAC,cAAM,cACH,gCACI,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,KAAK,EAAE;oBACH,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,MAAM;oBACN,KAAK,EAAE,aAAa;oBACpB,aAAa,EAAE,MAAM;oBACrB,OAAO,EAAE,MAAM;oBACf,GAAG,uBAAuB;oBAC1B,GAAG,cAAc;iBACpB,gCAC2B,SAAS,KACjC,gBAAgB,EAAE,YAEtB,gCAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,aAAW,EAAE,YACxD,QAAQ,GACP,GACJ,GACD,CACZ,CAAC,CAAC,CAAC,IAAI,GACG,CAClB,CAAC;AACN,CAAC,CACJ,CAAC","sourcesContent":["///\n/// Fork of Popup component from @gravity-ui/uikit\n/// This fork does not use floating focus manager\n///\n\nimport {forwardRef, useEffect, useImperativeHandle, useMemo} from 'react';\n\nimport {\n FloatingNode,\n FloatingTree,\n type OffsetOptions,\n type Placement,\n type ReferenceType,\n autoUpdate,\n offset as offsetMiddleware,\n useFloating,\n useFloatingNodeId,\n useFloatingParentNodeId,\n useInteractions,\n} from '@floating-ui/react';\nimport {type DOMProps, Portal, type QAProps} from '@gravity-ui/uikit';\n\nimport {cn} from 'src/classname';\n\nimport './FloatingPopup.scss';\n\nconst b = cn('yfm-table-floating-popup');\n\nexport type {ReferenceType};\n\nexport type FloatingPopupRef = {\n forceUpdate: () => void;\n};\n\nexport type FloatingPopupProps = QAProps &\n DOMProps & {\n open?: boolean;\n zIndex?: number;\n placement: Placement;\n offset?: OffsetOptions;\n anchorElement: ReferenceType | undefined | null;\n children: React.ReactNode;\n floatingStyles?: React.CSSProperties;\n };\n\nexport const FloatingPopup = forwardRef<FloatingPopupRef, FloatingPopupProps>(\n function YfmTableFloatingPopup(props, ref) {\n const {\n anchorElement,\n zIndex = 1000,\n style,\n className,\n qa,\n children,\n floatingStyles: floatingStylesFromProps,\n } = props;\n\n const nodeId = useFloatingNodeId();\n const parentId = useFloatingParentNodeId();\n\n const middleware = useMemo(() => [offsetMiddleware(props.offset)], [props.offset]);\n\n const {\n refs,\n floatingStyles,\n placement,\n context: {open},\n update,\n } = useFloating({\n nodeId,\n open: props.open,\n placement: props.placement,\n middleware,\n whileElementsMounted: autoUpdate,\n });\n\n useImperativeHandle<FloatingPopupRef, FloatingPopupRef>(\n ref,\n () => ({\n forceUpdate: update,\n }),\n [update],\n );\n\n const {getFloatingProps} = useInteractions();\n\n useEffect(() => {\n if (anchorElement !== undefined && anchorElement !== refs.reference.current) {\n refs.setReference(anchorElement);\n }\n }, [anchorElement, refs]);\n\n function wrapper(node: JSX.Element) {\n if (parentId === null) {\n return <FloatingTree>{node}</FloatingTree>;\n }\n\n return node;\n }\n\n return wrapper(\n <FloatingNode id={nodeId}>\n {open ? (\n <Portal>\n <div\n ref={refs.setFloating}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n zIndex,\n width: 'max-content',\n pointerEvents: 'auto',\n outline: 'none',\n ...floatingStylesFromProps,\n ...floatingStyles,\n }}\n data-floating-ui-placement={placement}\n {...getFloatingProps()}\n >\n <div className={b(null, className)} style={style} data-qa={qa}>\n {children}\n </div>\n </div>\n </Portal>\n ) : null}\n </FloatingNode>,\n );\n },\n);\n"]}
@@ -3,7 +3,7 @@ import type { PlaceholderOptions } from "../../../../utils/placeholder.js";
3
3
  import { TabsNode } from "./const.js";
4
4
  export type YfmTabsSchemaOptions = {
5
5
  /**
6
- * @deprecated: use placeholder option in BehaviorPreset instead.
6
+ * @deprecated use placeholder option in BehaviorPreset instead.
7
7
  */
8
8
  tabPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];
9
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTabs/YfmTabsSpecs/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import type {NodeSpec} from 'prosemirror-model';\n\nimport type {PlaceholderOptions} from '../../../../utils/placeholder';\n\nimport {TabAttrs, TabPanelAttrs, TabsAttrs, TabsListAttrs, TabsNode} from './const';\n\nconst DEFAULT_PLACEHOLDERS = {\n TabTitle: 'Tab title',\n RadioTabLabelTitle: 'Radio title',\n};\n\nexport type YfmTabsSchemaOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n tabPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const getSchemaSpecs: (\n opts: YfmTabsSchemaOptions,\n placeholder?: PlaceholderOptions,\n) => Record<TabsNode, NodeSpec> = (opts, placeholder) => ({\n [TabsNode.Tab]: {\n attrs: {\n [TabAttrs.id]: {default: 'unknown'},\n [TabAttrs.class]: {default: 'yfm-tab'},\n [TabAttrs.role]: {default: 'unknown'},\n [TabAttrs.ariaControls]: {default: 'unknown'},\n [TabAttrs.ariaSelected]: {default: 'unknown'},\n [TabAttrs.tabindex]: {default: 'unknown'},\n [TabAttrs.dataDiplodocKey]: {default: 'unknown'},\n [TabAttrs.dataDiplodocid]: {default: 'unknown'},\n [TabAttrs.dataDiplodocIsActive]: {default: 'unknown'},\n },\n marks: '',\n content: 'text*',\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tab'}],\n toDOM(node) {\n return ['div', {draggable: 'false', ...node.attrs}, 0];\n },\n placeholder: {\n content:\n placeholder?.[TabsNode.Tab] ??\n opts?.tabPlaceholder ??\n DEFAULT_PLACEHOLDERS.TabTitle,\n alwaysVisible: true,\n },\n selectionContext: false,\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n },\n\n [TabsNode.TabPanel]: {\n attrs: {\n [TabPanelAttrs.id]: {default: 'unknown'},\n [TabPanelAttrs.class]: {default: 'yfm-tab-panel'},\n [TabPanelAttrs.role]: {default: 'unknown'},\n [TabPanelAttrs.dataTitle]: {default: 'unknown'},\n [TabPanelAttrs.ariaLabelledby]: {default: 'unknown'},\n },\n content: '(block | paragraph)+',\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tab-panel'}],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n isolating: true,\n },\n\n [TabsNode.Tabs]: {\n attrs: {\n [TabsAttrs.class]: {default: 'yfm-tabs'},\n [TabsAttrs.dataDiplodocGroup]: {default: 'unknown'},\n [TabsAttrs.dataDiplodocVariant]: {default: 'regular'},\n },\n content: `${TabsNode.TabsList} ${TabsNode.TabPanel}+`,\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tabs'}],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: true,\n complex: 'root',\n },\n\n [TabsNode.TabsList]: {\n attrs: {\n [TabsListAttrs.class]: {default: 'yfm-tab-list'},\n [TabsListAttrs.role]: {default: 'unknown'},\n },\n content: `${TabsNode.Tab}*`,\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tab-list'}],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'inner',\n },\n\n [TabsNode.RadioTabs]: {\n attrs: {\n [TabsAttrs.class]: {default: 'yfm-tabs yfm-tabs-vertical'},\n [TabsAttrs.dataDiplodocGroup]: {default: 'unknown'},\n [TabsAttrs.dataDiplodocVariant]: {default: 'radio'},\n },\n content: `(${TabsNode.RadioTab} ${TabsNode.TabPanel})+`,\n group: 'block',\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n complex: 'root',\n },\n [TabsNode.RadioTab]: {\n attrs: {\n [TabAttrs.id]: {default: null},\n [TabAttrs.class]: {default: 'yfm-tab yfm-vertical-tab'},\n [TabAttrs.role]: {default: 'unknown'},\n [TabAttrs.ariaControls]: {default: 'unknown'},\n [TabAttrs.ariaSelected]: {default: 'unknown'},\n [TabAttrs.tabindex]: {default: 'unknown'},\n [TabAttrs.dataDiplodocKey]: {default: 'unknown'},\n [TabAttrs.dataDiplodocid]: {default: 'unknown'},\n [TabAttrs.dataDiplodocIsActive]: {default: 'false'},\n [TabAttrs.dataDiplodocVerticalTab]: {default: 'true'},\n },\n content: `${TabsNode.RadioTabInput} ${TabsNode.RadioTabLabel}`,\n group: 'block',\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'inner',\n },\n [TabsNode.RadioTabInput]: {\n attrs: {\n [TabAttrs.class]: {default: 'radio'},\n type: {default: 'radio'},\n checked: {default: null},\n },\n group: 'block',\n toDOM(node) {\n return ['input', node.attrs];\n },\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n },\n [TabsNode.RadioTabLabel]: {\n attrs: {},\n marks: '',\n content: 'text*',\n group: 'block',\n toDOM(node) {\n return ['label', node.attrs, 0];\n },\n placeholder: {\n content: placeholder?.[TabsNode.RadioTab] ?? DEFAULT_PLACEHOLDERS.RadioTabLabelTitle,\n alwaysVisible: true,\n },\n selectionContext: false,\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n },\n});\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmTabs/YfmTabsSpecs/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import type {NodeSpec} from 'prosemirror-model';\n\nimport type {PlaceholderOptions} from '../../../../utils/placeholder';\n\nimport {TabAttrs, TabPanelAttrs, TabsAttrs, TabsListAttrs, TabsNode} from './const';\n\nconst DEFAULT_PLACEHOLDERS = {\n TabTitle: 'Tab title',\n RadioTabLabelTitle: 'Radio title',\n};\n\nexport type YfmTabsSchemaOptions = {\n /**\n * @deprecated use placeholder option in BehaviorPreset instead.\n */\n tabPlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const getSchemaSpecs: (\n opts: YfmTabsSchemaOptions,\n placeholder?: PlaceholderOptions,\n) => Record<TabsNode, NodeSpec> = (opts, placeholder) => ({\n [TabsNode.Tab]: {\n attrs: {\n [TabAttrs.id]: {default: 'unknown'},\n [TabAttrs.class]: {default: 'yfm-tab'},\n [TabAttrs.role]: {default: 'unknown'},\n [TabAttrs.ariaControls]: {default: 'unknown'},\n [TabAttrs.ariaSelected]: {default: 'unknown'},\n [TabAttrs.tabindex]: {default: 'unknown'},\n [TabAttrs.dataDiplodocKey]: {default: 'unknown'},\n [TabAttrs.dataDiplodocid]: {default: 'unknown'},\n [TabAttrs.dataDiplodocIsActive]: {default: 'unknown'},\n },\n marks: '',\n content: 'text*',\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tab'}],\n toDOM(node) {\n return ['div', {draggable: 'false', ...node.attrs}, 0];\n },\n placeholder: {\n content:\n placeholder?.[TabsNode.Tab] ??\n opts?.tabPlaceholder ??\n DEFAULT_PLACEHOLDERS.TabTitle,\n alwaysVisible: true,\n },\n selectionContext: false,\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n },\n\n [TabsNode.TabPanel]: {\n attrs: {\n [TabPanelAttrs.id]: {default: 'unknown'},\n [TabPanelAttrs.class]: {default: 'yfm-tab-panel'},\n [TabPanelAttrs.role]: {default: 'unknown'},\n [TabPanelAttrs.dataTitle]: {default: 'unknown'},\n [TabPanelAttrs.ariaLabelledby]: {default: 'unknown'},\n },\n content: '(block | paragraph)+',\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tab-panel'}],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n isolating: true,\n },\n\n [TabsNode.Tabs]: {\n attrs: {\n [TabsAttrs.class]: {default: 'yfm-tabs'},\n [TabsAttrs.dataDiplodocGroup]: {default: 'unknown'},\n [TabsAttrs.dataDiplodocVariant]: {default: 'regular'},\n },\n content: `${TabsNode.TabsList} ${TabsNode.TabPanel}+`,\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tabs'}],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: true,\n complex: 'root',\n },\n\n [TabsNode.TabsList]: {\n attrs: {\n [TabsListAttrs.class]: {default: 'yfm-tab-list'},\n [TabsListAttrs.role]: {default: 'unknown'},\n },\n content: `${TabsNode.Tab}*`,\n group: 'block',\n parseDOM: [{tag: 'div.yfm-tab-list'}],\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'inner',\n },\n\n [TabsNode.RadioTabs]: {\n attrs: {\n [TabsAttrs.class]: {default: 'yfm-tabs yfm-tabs-vertical'},\n [TabsAttrs.dataDiplodocGroup]: {default: 'unknown'},\n [TabsAttrs.dataDiplodocVariant]: {default: 'radio'},\n },\n content: `(${TabsNode.RadioTab} ${TabsNode.TabPanel})+`,\n group: 'block',\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n complex: 'root',\n },\n [TabsNode.RadioTab]: {\n attrs: {\n [TabAttrs.id]: {default: null},\n [TabAttrs.class]: {default: 'yfm-tab yfm-vertical-tab'},\n [TabAttrs.role]: {default: 'unknown'},\n [TabAttrs.ariaControls]: {default: 'unknown'},\n [TabAttrs.ariaSelected]: {default: 'unknown'},\n [TabAttrs.tabindex]: {default: 'unknown'},\n [TabAttrs.dataDiplodocKey]: {default: 'unknown'},\n [TabAttrs.dataDiplodocid]: {default: 'unknown'},\n [TabAttrs.dataDiplodocIsActive]: {default: 'false'},\n [TabAttrs.dataDiplodocVerticalTab]: {default: 'true'},\n },\n content: `${TabsNode.RadioTabInput} ${TabsNode.RadioTabLabel}`,\n group: 'block',\n toDOM(node) {\n return ['div', node.attrs, 0];\n },\n selectable: false,\n allowSelection: false,\n complex: 'inner',\n },\n [TabsNode.RadioTabInput]: {\n attrs: {\n [TabAttrs.class]: {default: 'radio'},\n type: {default: 'radio'},\n checked: {default: null},\n },\n group: 'block',\n toDOM(node) {\n return ['input', node.attrs];\n },\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n },\n [TabsNode.RadioTabLabel]: {\n attrs: {},\n marks: '',\n content: 'text*',\n group: 'block',\n toDOM(node) {\n return ['label', node.attrs, 0];\n },\n placeholder: {\n content: placeholder?.[TabsNode.RadioTab] ?? DEFAULT_PLACEHOLDERS.RadioTabLabelTitle,\n alwaysVisible: true,\n },\n selectionContext: false,\n selectable: false,\n allowSelection: false,\n complex: 'leaf',\n },\n});\n"]}
@@ -8,5 +8,6 @@
8
8
  "split-mode-text": "Preview",
9
9
  "settings_split-mode-hint": "Splitting the editor into two windows: preview and editing",
10
10
  "markup_placeholder": "Add your markup here",
11
- "preview_hint": "Preview"
11
+ "preview_label": "Preview",
12
+ "settings_label": "Settings"
12
13
  }
@@ -1,4 +1,4 @@
1
- export declare const i18n: <G extends "error-title" | "settings_wysiwyg" | "settings_markup" | "settings_menubar" | "settings_hint" | "settings_split-mode" | "split-mode-text" | "settings_split-mode-hint" | "markup_placeholder" | "preview_hint", S extends string>(key: G | (string extends S ? S : never), params?: {
1
+ export declare const i18n: <G extends "error-title" | "settings_wysiwyg" | "settings_markup" | "settings_menubar" | "settings_hint" | "settings_split-mode" | "split-mode-text" | "settings_split-mode-hint" | "markup_placeholder" | "preview_label" | "settings_label", S extends string>(key: G | (string extends S ? S : never), params?: {
2
2
  [key: string]: any;
3
3
  }) => S extends G ? {
4
4
  "error-title": string;
@@ -10,5 +10,6 @@ export declare const i18n: <G extends "error-title" | "settings_wysiwyg" | "sett
10
10
  "split-mode-text": string;
11
11
  "settings_split-mode-hint": string;
12
12
  markup_placeholder: string;
13
- preview_hint: string;
13
+ preview_label: string;
14
+ settings_label: string;
14
15
  }[G] : string;
@@ -8,5 +8,6 @@
8
8
  "settings_split-mode-hint": "Разделение редактора на два окна: предпросмотр и редактирование",
9
9
  "split-mode-text": "Предпросмотр",
10
10
  "markup_placeholder": "Добавьте вашу разметку",
11
- "preview_hint": "Предпросмотр"
11
+ "preview_label": "Предпросмотр",
12
+ "settings_label": "Настройки"
12
13
  }
@@ -6,5 +6,6 @@
6
6
  "preview": "Preview",
7
7
  "remove": "Remove",
8
8
  "save": "Save",
9
+ "actions": "Actions",
9
10
  "toolbar_action_disabled": "Incompatible markup element"
10
- }
11
+ }
@@ -1,4 +1,4 @@
1
- export declare const i18n: <G extends "cancel" | "close" | "remove" | "delete" | "edit" | "preview" | "save" | "toolbar_action_disabled", S extends string>(key: G | (string extends S ? S : never), params?: {
1
+ export declare const i18n: <G extends "cancel" | "close" | "remove" | "actions" | "delete" | "edit" | "preview" | "save" | "toolbar_action_disabled", S extends string>(key: G | (string extends S ? S : never), params?: {
2
2
  [key: string]: any;
3
3
  }) => S extends G ? {
4
4
  cancel: string;
@@ -8,5 +8,6 @@ export declare const i18n: <G extends "cancel" | "close" | "remove" | "delete" |
8
8
  preview: string;
9
9
  remove: string;
10
10
  save: string;
11
+ actions: string;
11
12
  toolbar_action_disabled: string;
12
13
  }[G] : string;
@@ -6,5 +6,6 @@
6
6
  "preview": "Предпросмотр",
7
7
  "remove": "Удалить",
8
8
  "save": "Сохранить",
9
+ "actions": "Действия",
9
10
  "toolbar_action_disabled": "Несовместимый элемент разметки"
10
- }
11
+ }
@@ -111,7 +111,6 @@ declare class Logger implements MdEditorLogger.Logger {
111
111
  export declare const logger: Logger;
112
112
  /**
113
113
  * Alias for global singleton logger instance
114
- *
115
114
  * @deprecated
116
115
  */
117
116
  export declare const globalLogger: Logger;
@@ -126,7 +126,6 @@ class Logger {
126
126
  exports.logger = new Logger();
127
127
  /**
128
128
  * Alias for global singleton logger instance
129
- *
130
129
  * @deprecated
131
130
  */
132
131
  exports.globalLogger = exports.logger;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"../../src","sources":["logger.ts"],"names":[],"mappings":"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","sourcesContent":["import {type Listener, type Receiver, SafeEventEmitter} from './utils/event-emitter';\n\ntype MsgObj = {\n msg: string;\n [key: string]: unknown;\n};\n\ntype ErrObj = {\n error: any;\n [key: string]: unknown;\n};\n\ntype EventObj = {\n event: string;\n [key: string]: unknown;\n};\n\n// MAJOR: rename Logger2 to Logger (namespace and class)\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Logger2 {\n export type LogData = MsgObj;\n export type WarnData = MsgObj;\n export type ErrorData = ErrObj;\n export type ActionData = MdEditorLogger.ActionData;\n export type MetricsData = MdEditorLogger.MetricsData;\n export type EventData = EventObj;\n\n export type ReceiverDataMap = {\n log: LogData;\n warn: WarnData;\n error: ErrorData;\n event: EventData;\n action: ActionData;\n metrics: MetricsData;\n };\n\n export interface LogReceiver extends Receiver<ReceiverDataMap> {}\n\n export interface LogEmitter {\n /** Log a regular message */\n log(msg: string, ...data: object[]): void;\n /** Log a warning message */\n warn(msg: string, ...data: object[]): void;\n /** Log an error */\n error(err: string | Error | unknown, ...data: object[]): void;\n /** Log an event triggered in editor. For example, changing mode, pasting, or otherwise */\n event(data: Logger2.EventData): void;\n /** Log the action called in editor and its source (from toolbar, or hotkeys, etc.) */\n action(data: Logger2.ActionData): void;\n /** Log metric data, such as parsing or execution time */\n metrics(data: Logger2.MetricsData): void;\n }\n\n export interface ILogger extends Logger2.LogEmitter, Logger2.LogReceiver {\n /** Create nested logger with bound parameters */\n nested(params: object): ILogger;\n }\n}\n\nexport class Logger2 implements Logger2.ILogger {\n readonly #emitter = new SafeEventEmitter<Logger2.ReceiverDataMap>();\n\n log(msg: string, ...data: object[]): void {\n const obj: object = Object.assign({}, ...data);\n const logData = Object.assign(obj, {msg});\n this.#emitter.emit('log', logData);\n }\n\n warn(msg: string, ...data: object[]): void {\n const obj: object = Object.assign({}, ...data);\n const warnData = Object.assign(obj, {msg});\n this.#emitter.emit('warn', warnData);\n }\n\n error(err: string | Error | unknown, ...data: object[]): void {\n const error = typeof err === 'string' ? Error(err) : err;\n const obj: object = Object.assign({}, ...data);\n const errorData = Object.assign(obj, {error});\n this.#emitter.emit('error', errorData);\n }\n\n action(data: Logger2.ActionData): void {\n this.#emitter.emit('action', data);\n }\n\n metrics(data: Logger2.MetricsData): void {\n this.#emitter.emit('metrics', data);\n }\n\n event(data: Logger2.EventData): void {\n this.#emitter.emit('event', data);\n }\n\n nested(params: object): Logger2.ILogger {\n const self = this;\n const paramsKey = Symbol();\n\n const logger: Logger2.ILogger & {[paramsKey]: object} = {\n [paramsKey]: params,\n log(msg, ...data) {\n if (self.#emitter.countOf('log')) self.log(msg, this[paramsKey], ...data);\n },\n warn(msg, ...data) {\n if (self.#emitter.countOf('warn')) self.warn(msg, this[paramsKey], ...data);\n },\n error(err, ...data) {\n if (self.#emitter.countOf('error')) self.error(err, this[paramsKey], ...data);\n },\n action(data) {\n if (self.#emitter.countOf('action')) self.action({...this[paramsKey], ...data});\n },\n metrics(data) {\n if (self.#emitter.countOf('metrics')) self.metrics({...this[paramsKey], ...data});\n },\n event(data) {\n if (self.#emitter.countOf('event')) self.event({...this[paramsKey], ...data});\n },\n nested(nestedParams) {\n return {\n ...this,\n [paramsKey]: {\n ...this[paramsKey],\n ...nestedParams,\n },\n };\n },\n on: self.on.bind(self),\n off: self.off.bind(self),\n };\n\n return logger;\n }\n\n on<K extends keyof Logger2.ReceiverDataMap>(\n type: K,\n listener: Listener<Logger2.ReceiverDataMap[K]>,\n ): void {\n this.#emitter.on(type, listener);\n }\n\n off<K extends keyof Logger2.ReceiverDataMap>(\n type: K,\n listener: Listener<Logger2.ReceiverDataMap[K]>,\n ): void {\n this.#emitter.off(type, listener);\n }\n}\n\n// MAJOR: remove old logger implementation\n\nconst noop = () => {};\n\ndeclare global {\n /** @deprecated */\n namespace MdEditorLogger {\n /** @deprecated */\n type MetricsData = {\n component: string;\n event: string;\n duration?: number;\n meta?: Record<string, any>;\n [key: string]: any;\n };\n\n /** @deprecated */\n interface ActionData {\n action: string;\n source: string;\n [key: string]: any;\n }\n\n /** @deprecated */\n interface Logger {\n log(...data: any[]): void;\n info(...data: any[]): void;\n error(...data: any[]): void;\n warn(...data: any[]): void;\n metrics(data: MetricsData): void;\n action(data: ActionData): void;\n }\n\n /** @deprecated */\n interface Settings extends Partial<Logger> {}\n }\n}\n\n/** @deprecated */\nclass Logger implements MdEditorLogger.Logger {\n #logger: MdEditorLogger.Logger = this.createLogger({});\n\n get log() {\n return this.#logger.log;\n }\n\n get info() {\n return this.#logger.info;\n }\n\n get error() {\n return this.#logger.error;\n }\n\n get warn() {\n return this.#logger.warn;\n }\n\n get metrics() {\n return this.#logger.metrics;\n }\n\n get action() {\n return this.#logger.action;\n }\n\n setLogger(settings: MdEditorLogger.Settings = {}) {\n this.#logger = this.createLogger(settings);\n }\n\n /**\n * @inner\n *\n * To override the default logger, use setLogger\n */\n createLogger(settings: MdEditorLogger.Settings): MdEditorLogger.Logger {\n return {\n log: settings.log ?? noop,\n info: settings.info ?? noop,\n warn: settings.warn ?? noop,\n error: settings.error ?? noop,\n metrics: settings.metrics ?? noop,\n action: settings.action ?? noop,\n };\n }\n}\n\n/** @deprecated */\nexport const logger = new Logger();\n/**\n * Alias for global singleton logger instance\n *\n * @deprecated\n */\nexport const globalLogger = logger;\n"]}
1
+ {"version":3,"file":"logger.js","sourceRoot":"../../src","sources":["logger.ts"],"names":[],"mappings":"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","sourcesContent":["import {type Listener, type Receiver, SafeEventEmitter} from './utils/event-emitter';\n\ntype MsgObj = {\n msg: string;\n [key: string]: unknown;\n};\n\ntype ErrObj = {\n error: any;\n [key: string]: unknown;\n};\n\ntype EventObj = {\n event: string;\n [key: string]: unknown;\n};\n\n// MAJOR: rename Logger2 to Logger (namespace and class)\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Logger2 {\n export type LogData = MsgObj;\n export type WarnData = MsgObj;\n export type ErrorData = ErrObj;\n export type ActionData = MdEditorLogger.ActionData;\n export type MetricsData = MdEditorLogger.MetricsData;\n export type EventData = EventObj;\n\n export type ReceiverDataMap = {\n log: LogData;\n warn: WarnData;\n error: ErrorData;\n event: EventData;\n action: ActionData;\n metrics: MetricsData;\n };\n\n export interface LogReceiver extends Receiver<ReceiverDataMap> {}\n\n export interface LogEmitter {\n /** Log a regular message */\n log(msg: string, ...data: object[]): void;\n /** Log a warning message */\n warn(msg: string, ...data: object[]): void;\n /** Log an error */\n error(err: string | Error | unknown, ...data: object[]): void;\n /** Log an event triggered in editor. For example, changing mode, pasting, or otherwise */\n event(data: Logger2.EventData): void;\n /** Log the action called in editor and its source (from toolbar, or hotkeys, etc.) */\n action(data: Logger2.ActionData): void;\n /** Log metric data, such as parsing or execution time */\n metrics(data: Logger2.MetricsData): void;\n }\n\n export interface ILogger extends Logger2.LogEmitter, Logger2.LogReceiver {\n /** Create nested logger with bound parameters */\n nested(params: object): ILogger;\n }\n}\n\nexport class Logger2 implements Logger2.ILogger {\n readonly #emitter = new SafeEventEmitter<Logger2.ReceiverDataMap>();\n\n log(msg: string, ...data: object[]): void {\n const obj: object = Object.assign({}, ...data);\n const logData = Object.assign(obj, {msg});\n this.#emitter.emit('log', logData);\n }\n\n warn(msg: string, ...data: object[]): void {\n const obj: object = Object.assign({}, ...data);\n const warnData = Object.assign(obj, {msg});\n this.#emitter.emit('warn', warnData);\n }\n\n error(err: string | Error | unknown, ...data: object[]): void {\n const error = typeof err === 'string' ? Error(err) : err;\n const obj: object = Object.assign({}, ...data);\n const errorData = Object.assign(obj, {error});\n this.#emitter.emit('error', errorData);\n }\n\n action(data: Logger2.ActionData): void {\n this.#emitter.emit('action', data);\n }\n\n metrics(data: Logger2.MetricsData): void {\n this.#emitter.emit('metrics', data);\n }\n\n event(data: Logger2.EventData): void {\n this.#emitter.emit('event', data);\n }\n\n nested(params: object): Logger2.ILogger {\n const self = this;\n const paramsKey = Symbol();\n\n const logger: Logger2.ILogger & {[paramsKey]: object} = {\n [paramsKey]: params,\n log(msg, ...data) {\n if (self.#emitter.countOf('log')) self.log(msg, this[paramsKey], ...data);\n },\n warn(msg, ...data) {\n if (self.#emitter.countOf('warn')) self.warn(msg, this[paramsKey], ...data);\n },\n error(err, ...data) {\n if (self.#emitter.countOf('error')) self.error(err, this[paramsKey], ...data);\n },\n action(data) {\n if (self.#emitter.countOf('action')) self.action({...this[paramsKey], ...data});\n },\n metrics(data) {\n if (self.#emitter.countOf('metrics')) self.metrics({...this[paramsKey], ...data});\n },\n event(data) {\n if (self.#emitter.countOf('event')) self.event({...this[paramsKey], ...data});\n },\n nested(nestedParams) {\n return {\n ...this,\n [paramsKey]: {\n ...this[paramsKey],\n ...nestedParams,\n },\n };\n },\n on: self.on.bind(self),\n off: self.off.bind(self),\n };\n\n return logger;\n }\n\n on<K extends keyof Logger2.ReceiverDataMap>(\n type: K,\n listener: Listener<Logger2.ReceiverDataMap[K]>,\n ): void {\n this.#emitter.on(type, listener);\n }\n\n off<K extends keyof Logger2.ReceiverDataMap>(\n type: K,\n listener: Listener<Logger2.ReceiverDataMap[K]>,\n ): void {\n this.#emitter.off(type, listener);\n }\n}\n\n// MAJOR: remove old logger implementation\n\nconst noop = () => {};\n\ndeclare global {\n /** @deprecated */\n namespace MdEditorLogger {\n /** @deprecated */\n type MetricsData = {\n component: string;\n event: string;\n duration?: number;\n meta?: Record<string, any>;\n [key: string]: any;\n };\n\n /** @deprecated */\n interface ActionData {\n action: string;\n source: string;\n [key: string]: any;\n }\n\n /** @deprecated */\n interface Logger {\n log(...data: any[]): void;\n info(...data: any[]): void;\n error(...data: any[]): void;\n warn(...data: any[]): void;\n metrics(data: MetricsData): void;\n action(data: ActionData): void;\n }\n\n /** @deprecated */\n interface Settings extends Partial<Logger> {}\n }\n}\n\n/** @deprecated */\nclass Logger implements MdEditorLogger.Logger {\n #logger: MdEditorLogger.Logger = this.createLogger({});\n\n get log() {\n return this.#logger.log;\n }\n\n get info() {\n return this.#logger.info;\n }\n\n get error() {\n return this.#logger.error;\n }\n\n get warn() {\n return this.#logger.warn;\n }\n\n get metrics() {\n return this.#logger.metrics;\n }\n\n get action() {\n return this.#logger.action;\n }\n\n setLogger(settings: MdEditorLogger.Settings = {}) {\n this.#logger = this.createLogger(settings);\n }\n\n /**\n * @inner\n *\n * To override the default logger, use setLogger\n */\n createLogger(settings: MdEditorLogger.Settings): MdEditorLogger.Logger {\n return {\n log: settings.log ?? noop,\n info: settings.info ?? noop,\n warn: settings.warn ?? noop,\n error: settings.error ?? noop,\n metrics: settings.metrics ?? noop,\n action: settings.action ?? noop,\n };\n }\n}\n\n/** @deprecated */\nexport const logger = new Logger();\n/**\n * Alias for global singleton logger instance\n * @deprecated\n */\nexport const globalLogger = logger;\n"]}
@@ -1,6 +1,6 @@
1
1
  import { autocompletion } from '@codemirror/autocomplete';
2
2
  import type { Extension, StateCommand } from '@codemirror/state';
3
- import { EditorView, type EditorViewConfig, type KeyBinding, placeholder } from '@codemirror/view';
3
+ import { EditorView, type EditorViewConfig, type KeyBinding, placeholder, tooltips } from '@codemirror/view';
4
4
  import type { ParseInsertedUrlAsImage } from "../../bundle/index.js";
5
5
  import type { EventMap } from "../../bundle/Editor.js";
6
6
  import type { ReactRenderStorage } from "../../extensions/index.js";
@@ -11,6 +11,7 @@ import { type FileUploadHandler } from "./files-upload-facet.js";
11
11
  import { type YfmLangOptions } from "./yfm.js";
12
12
  export type { YfmLangOptions };
13
13
  type Autocompletion = Parameters<typeof autocompletion>[0];
14
+ type Tooltips = Parameters<typeof tooltips>[0];
14
15
  export type CreateCodemirrorParams = {
15
16
  doc: EditorViewConfig['doc'];
16
17
  placeholder: Parameters<typeof placeholder>[0];
@@ -34,6 +35,7 @@ export type CreateCodemirrorParams = {
34
35
  receiver?: Receiver<EventMap>;
35
36
  yfmLangOptions?: YfmLangOptions;
36
37
  autocompletion?: Autocompletion;
38
+ tooltips?: Tooltips;
37
39
  directiveSyntax: DirectiveSyntaxContext;
38
40
  preserveEmptyRows: boolean;
39
41
  searchPanel?: boolean;
@@ -24,7 +24,7 @@ const smart_reindent_1 = require("./smart-reindent/index.js");
24
24
  const yfm_1 = require("./yfm.js");
25
25
  const linkRegex = /\[[\s\S]*?]\([\s\S]*?\)/g;
26
26
  function createCodemirror(params) {
27
- const { logger, doc, reactRenderer, onCancel, onScroll, onSubmit, onChange, onDocChange, disabledExtensions = {}, keymaps = [], receiver, yfmLangOptions, extensions: extraExtensions, placeholder: placeholderContent, autocompletion: autocompletionConfig, parseHtmlOnPaste, parseInsertedUrlAsImage, directiveSyntax, preserveEmptyRows, searchPanel = true, } = params;
27
+ const { logger, doc, reactRenderer, onCancel, onScroll, onSubmit, onChange, onDocChange, disabledExtensions = {}, keymaps = [], receiver, yfmLangOptions, extensions: extraExtensions, placeholder: placeholderContent, autocompletion: autocompletionConfig, tooltips: tooltipsConfig, parseHtmlOnPaste, parseInsertedUrlAsImage, directiveSyntax, preserveEmptyRows, searchPanel = true, } = params;
28
28
  const extensions = [gravity_1.gravityTheme, (0, view_1.placeholder)(placeholderContent)];
29
29
  if (!disabledExtensions.history) {
30
30
  extensions.push((0, commands_1.history)());
@@ -181,6 +181,9 @@ function createCodemirror(params) {
181
181
  enableNewImageSizeCalculation: params.enableNewImageSizeCalculation,
182
182
  }));
183
183
  }
184
+ if (tooltipsConfig) {
185
+ extensions.push((0, view_1.tooltips)(tooltipsConfig));
186
+ }
184
187
  if (extraExtensions) {
185
188
  extensions.push(...extraExtensions);
186
189
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"../../../../src","sources":["markup/codemirror/create.ts"],"names":[],"mappings":"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","sourcesContent":["import {autocompletion} from '@codemirror/autocomplete';\nimport {\n defaultKeymap,\n history,\n historyKeymap,\n indentWithTab,\n insertNewlineKeepIndent,\n insertTab,\n} from '@codemirror/commands';\nimport {syntaxHighlighting} from '@codemirror/language';\nimport type {Extension, StateCommand} from '@codemirror/state';\nimport {\n EditorView,\n type EditorViewConfig,\n type KeyBinding,\n keymap,\n placeholder,\n} from '@codemirror/view';\n\nimport {InputState} from 'src/utils/input-state';\n\nimport type {ParseInsertedUrlAsImage} from '../../bundle';\nimport type {EventMap} from '../../bundle/Editor';\nimport {ActionName} from '../../bundle/config/action-names';\nimport type {ReactRenderStorage} from '../../extensions';\nimport {type Logger2, globalLogger} from '../../logger';\nimport {Action as A, formatter as f} from '../../shortcuts';\nimport type {Receiver} from '../../utils';\nimport {DataTransferType, shouldSkipHtmlConversion} from '../../utils/clipboard';\nimport type {DirectiveSyntaxContext} from '../../utils/directive';\nimport {\n insertEmptyRow,\n insertImages,\n insertLink,\n toH1,\n toH2,\n toH3,\n toH4,\n toH5,\n toH6,\n toggleBold,\n toggleItalic,\n toggleStrikethrough,\n toggleUnderline,\n wrapToCodeBlock,\n wrapToInlineCode,\n wrapToYfmCut,\n wrapToYfmNote,\n} from '../commands';\n\nimport {DirectiveSyntaxFacet} from './directive-facet';\nimport {type FileUploadHandler, FileUploadHandlerFacet} from './files-upload-facet';\nimport {gravityHighlightStyle, gravityTheme} from './gravity';\nimport {MarkdownConverter} from './html-to-markdown/converters';\nimport {LoggerFacet} from './logger-facet';\nimport {PairingCharactersExtension} from './pairing-chars';\nimport {ReactRendererFacet} from './react-facet';\nimport {SearchPanelPlugin} from './search-plugin/plugin';\nimport {smartReindent} from './smart-reindent';\nimport {type YfmLangOptions, yfmLang} from './yfm';\n\nexport type {YfmLangOptions};\n\ntype Autocompletion = Parameters<typeof autocompletion>[0];\n\nconst linkRegex = /\\[[\\s\\S]*?]\\([\\s\\S]*?\\)/g;\n\nexport type CreateCodemirrorParams = {\n doc: EditorViewConfig['doc'];\n placeholder: Parameters<typeof placeholder>[0];\n logger: Logger2.ILogger;\n onCancel: () => void;\n onSubmit: () => void;\n onChange: () => void;\n onDocChange: () => void;\n onScroll: (event: Event) => void;\n reactRenderer: ReactRenderStorage;\n uploadHandler?: FileUploadHandler;\n parseHtmlOnPaste?: boolean;\n parseInsertedUrlAsImage?: ParseInsertedUrlAsImage;\n needImageDimensions?: boolean;\n enableNewImageSizeCalculation?: boolean;\n extensions?: Extension[];\n disabledExtensions?: {\n history?: boolean;\n };\n keymaps?: readonly KeyBinding[];\n receiver?: Receiver<EventMap>;\n yfmLangOptions?: YfmLangOptions;\n autocompletion?: Autocompletion;\n directiveSyntax: DirectiveSyntaxContext;\n preserveEmptyRows: boolean;\n searchPanel?: boolean;\n};\n\nexport function createCodemirror(params: CreateCodemirrorParams) {\n const {\n logger,\n doc,\n reactRenderer,\n onCancel,\n onScroll,\n onSubmit,\n onChange,\n onDocChange,\n disabledExtensions = {},\n keymaps = [],\n receiver,\n yfmLangOptions,\n extensions: extraExtensions,\n placeholder: placeholderContent,\n autocompletion: autocompletionConfig,\n parseHtmlOnPaste,\n parseInsertedUrlAsImage,\n directiveSyntax,\n preserveEmptyRows,\n searchPanel = true,\n } = params;\n\n const extensions: Extension[] = [gravityTheme, placeholder(placeholderContent)];\n\n if (!disabledExtensions.history) {\n extensions.push(history());\n }\n\n const inputState = new InputState();\n\n extensions.push(\n syntaxHighlighting(gravityHighlightStyle),\n LoggerFacet.of(logger),\n keymap.of([\n {key: f.toCM(A.Bold)!, run: withLogger(ActionName.bold, toggleBold)},\n {key: f.toCM(A.Italic)!, run: withLogger(ActionName.italic, toggleItalic)},\n {key: f.toCM(A.Strike)!, run: withLogger(ActionName.strike, toggleStrikethrough)},\n {key: f.toCM(A.Underline)!, run: withLogger(ActionName.underline, toggleUnderline)},\n {key: f.toCM(A.Link)!, run: withLogger(ActionName.link, insertLink)},\n {key: f.toCM(A.Heading1)!, run: withLogger(ActionName.heading1, toH1)},\n {key: f.toCM(A.Heading2)!, run: withLogger(ActionName.heading2, toH2)},\n {key: f.toCM(A.Heading3)!, run: withLogger(ActionName.heading3, toH3)},\n {key: f.toCM(A.Heading4)!, run: withLogger(ActionName.heading4, toH4)},\n {key: f.toCM(A.Heading5)!, run: withLogger(ActionName.heading5, toH5)},\n {key: f.toCM(A.Heading6)!, run: withLogger(ActionName.heading6, toH6)},\n {key: f.toCM(A.Code)!, run: withLogger(ActionName.code_inline, wrapToInlineCode)},\n {key: f.toCM(A.CodeBlock)!, run: withLogger(ActionName.code_block, wrapToCodeBlock)},\n {key: f.toCM(A.Cut)!, run: withLogger(ActionName.yfm_cut, wrapToYfmCut)},\n {key: f.toCM(A.Note)!, run: withLogger(ActionName.yfm_note, wrapToYfmNote)},\n {\n key: f.toCM(A.Cancel)!,\n preventDefault: true,\n run: () => {\n onCancel();\n return true;\n },\n },\n {\n key: f.toCM(A.Submit)!,\n preventDefault: true,\n run: () => {\n onSubmit();\n return true;\n },\n },\n {key: 'Tab', preventDefault: true, run: insertTab},\n {\n key: 'Enter',\n shift: insertNewlineKeepIndent,\n },\n indentWithTab,\n ...defaultKeymap,\n ...(disabledExtensions.history ? [] : historyKeymap),\n ...keymaps,\n ]),\n autocompletion(autocompletionConfig),\n yfmLang(yfmLangOptions),\n ReactRendererFacet.of(reactRenderer),\n DirectiveSyntaxFacet.of(directiveSyntax),\n PairingCharactersExtension,\n EditorView.lineWrapping,\n EditorView.contentAttributes.of({spellcheck: 'true'}),\n EditorView.domEventHandlers({\n scroll(event) {\n onScroll(event);\n },\n keydown(event) {\n inputState.keydown(event);\n },\n keyup(event) {\n inputState.keyup(event);\n },\n paste(event, editor) {\n if (!event.clipboardData) return false;\n\n const pasteLogger = logger.nested({\n domEvent: 'paste',\n dataTypes: event.clipboardData.types,\n });\n\n const {from} = editor.state.selection.main;\n const line = editor.state.doc.lineAt(from);\n const currentLine = line.text;\n\n // if clipboard contains YFM content - avoid any meddling with pasted content\n // since text/yfm will contain valid markdown\n const yfmContent = event.clipboardData.getData(DataTransferType.Yfm);\n if (yfmContent) {\n event.preventDefault();\n logger.event({event: 'paste-markup'});\n const reindentedYfmContent = smartReindent(yfmContent, currentLine);\n editor.dispatch(editor.state.replaceSelection(reindentedYfmContent));\n return true;\n }\n\n // checking if a copy buffer content is suitable for convertion\n const shouldSkipHtml = shouldSkipHtmlConversion(event.clipboardData);\n\n // if we have text/html inside copy/paste buffer\n const htmlContent = event.clipboardData.getData(DataTransferType.Html);\n // if we pasting markdown from VsCode we need skip html transformation\n if (htmlContent && parseHtmlOnPaste && !shouldSkipHtml) {\n let parsedMarkdownMarkup: string | undefined;\n try {\n const parser = new DOMParser();\n const htmlDoc = parser.parseFromString(htmlContent, 'text/html');\n\n const converter = new MarkdownConverter();\n parsedMarkdownMarkup = converter.processNode(htmlDoc.body).trim();\n } catch (e) {\n // The code is pretty new and there might be random issues we haven't caught yet,\n // especially with invalid HTML or weird DOM parsing errors.\n // If something goes wrong, I just want to fall back to the \"default pasting\"\n // rather than break the entire experience for the user.\n pasteLogger.error(e, {event: 'parse-html-to-md'});\n globalLogger.error(e);\n }\n\n if (parsedMarkdownMarkup !== undefined) {\n event.preventDefault();\n logger.event({event: 'paste-parsed-html'});\n const reindentedHtmlContent = smartReindent(\n parsedMarkdownMarkup,\n currentLine,\n );\n editor.dispatch(editor.state.replaceSelection(reindentedHtmlContent));\n return true;\n }\n }\n\n if (!inputState.shiftKey && parseInsertedUrlAsImage) {\n const linkMatches = currentLine.matchAll(linkRegex);\n const cursorPositionInCurrentLine = from - line.from;\n const isInsertedInsideLink = linkMatches.some(\n (item) =>\n cursorPositionInCurrentLine >= item.index &&\n cursorPositionInCurrentLine <= item.index + (item[0]?.length ?? 0),\n );\n\n if (!isInsertedInsideLink) {\n const {imageUrl, title} =\n parseInsertedUrlAsImage(\n event.clipboardData.getData(DataTransferType.Text) ?? '',\n ) || {};\n\n if (imageUrl) {\n event.preventDefault();\n logger.event({event: 'paste-url-as-image'});\n insertImages([\n {\n url: imageUrl,\n alt: title,\n title,\n },\n ])(editor);\n return true;\n }\n }\n }\n\n // Reindenting pasted plain text\n const pastedText = event.clipboardData.getData(DataTransferType.Text);\n const reindentedText = smartReindent(pastedText, currentLine);\n // but only if there is a need for reindentation\n if (pastedText !== reindentedText) {\n editor.dispatch(editor.state.replaceSelection(reindentedText));\n event.preventDefault();\n return true;\n }\n\n return false;\n },\n }),\n );\n\n if (searchPanel) {\n extensions.push(\n SearchPanelPlugin({\n anchorSelector: '.g-md-search-markup-anchor',\n receiver,\n }),\n );\n }\n\n if (preserveEmptyRows) {\n extensions.push(\n keymap.of([\n {key: f.toCM(A.EmptyRow)!, run: withLogger(ActionName.emptyRow, insertEmptyRow)},\n ]),\n );\n }\n\n if (params.uploadHandler) {\n extensions.push(\n FileUploadHandlerFacet.of({\n fn: params.uploadHandler,\n imageWithDimensions: params.needImageDimensions,\n enableNewImageSizeCalculation: params.enableNewImageSizeCalculation,\n }),\n );\n }\n\n if (extraExtensions) {\n extensions.push(...extraExtensions);\n }\n\n return new EditorView({\n doc,\n extensions,\n dispatchTransactions: (trs, view) => {\n view.update(trs);\n onChange();\n if (trs.some((tr) => tr.docChanged)) {\n onDocChange();\n }\n },\n });\n}\n\nexport function withLogger(action: string, command: StateCommand): StateCommand {\n return (...args) => {\n const {state} = args[0];\n state.facet(LoggerFacet).action({source: 'keymap', action});\n globalLogger.action({mode: 'markup', source: 'keymap', action});\n return command(...args);\n };\n}\n"]}
1
+ {"version":3,"file":"create.js","sourceRoot":"../../../../src","sources":["markup/codemirror/create.ts"],"names":[],"mappings":"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","sourcesContent":["import {autocompletion} from '@codemirror/autocomplete';\nimport {\n defaultKeymap,\n history,\n historyKeymap,\n indentWithTab,\n insertNewlineKeepIndent,\n insertTab,\n} from '@codemirror/commands';\nimport {syntaxHighlighting} from '@codemirror/language';\nimport type {Extension, StateCommand} from '@codemirror/state';\nimport {\n EditorView,\n type EditorViewConfig,\n type KeyBinding,\n keymap,\n placeholder,\n tooltips,\n} from '@codemirror/view';\n\nimport {InputState} from 'src/utils/input-state';\n\nimport type {ParseInsertedUrlAsImage} from '../../bundle';\nimport type {EventMap} from '../../bundle/Editor';\nimport {ActionName} from '../../bundle/config/action-names';\nimport type {ReactRenderStorage} from '../../extensions';\nimport {type Logger2, globalLogger} from '../../logger';\nimport {Action as A, formatter as f} from '../../shortcuts';\nimport type {Receiver} from '../../utils';\nimport {DataTransferType, shouldSkipHtmlConversion} from '../../utils/clipboard';\nimport type {DirectiveSyntaxContext} from '../../utils/directive';\nimport {\n insertEmptyRow,\n insertImages,\n insertLink,\n toH1,\n toH2,\n toH3,\n toH4,\n toH5,\n toH6,\n toggleBold,\n toggleItalic,\n toggleStrikethrough,\n toggleUnderline,\n wrapToCodeBlock,\n wrapToInlineCode,\n wrapToYfmCut,\n wrapToYfmNote,\n} from '../commands';\n\nimport {DirectiveSyntaxFacet} from './directive-facet';\nimport {type FileUploadHandler, FileUploadHandlerFacet} from './files-upload-facet';\nimport {gravityHighlightStyle, gravityTheme} from './gravity';\nimport {MarkdownConverter} from './html-to-markdown/converters';\nimport {LoggerFacet} from './logger-facet';\nimport {PairingCharactersExtension} from './pairing-chars';\nimport {ReactRendererFacet} from './react-facet';\nimport {SearchPanelPlugin} from './search-plugin/plugin';\nimport {smartReindent} from './smart-reindent';\nimport {type YfmLangOptions, yfmLang} from './yfm';\n\nexport type {YfmLangOptions};\n\ntype Autocompletion = Parameters<typeof autocompletion>[0];\ntype Tooltips = Parameters<typeof tooltips>[0];\n\nconst linkRegex = /\\[[\\s\\S]*?]\\([\\s\\S]*?\\)/g;\n\nexport type CreateCodemirrorParams = {\n doc: EditorViewConfig['doc'];\n placeholder: Parameters<typeof placeholder>[0];\n logger: Logger2.ILogger;\n onCancel: () => void;\n onSubmit: () => void;\n onChange: () => void;\n onDocChange: () => void;\n onScroll: (event: Event) => void;\n reactRenderer: ReactRenderStorage;\n uploadHandler?: FileUploadHandler;\n parseHtmlOnPaste?: boolean;\n parseInsertedUrlAsImage?: ParseInsertedUrlAsImage;\n needImageDimensions?: boolean;\n enableNewImageSizeCalculation?: boolean;\n extensions?: Extension[];\n disabledExtensions?: {\n history?: boolean;\n };\n keymaps?: readonly KeyBinding[];\n receiver?: Receiver<EventMap>;\n yfmLangOptions?: YfmLangOptions;\n autocompletion?: Autocompletion;\n tooltips?: Tooltips;\n directiveSyntax: DirectiveSyntaxContext;\n preserveEmptyRows: boolean;\n searchPanel?: boolean;\n};\n\nexport function createCodemirror(params: CreateCodemirrorParams) {\n const {\n logger,\n doc,\n reactRenderer,\n onCancel,\n onScroll,\n onSubmit,\n onChange,\n onDocChange,\n disabledExtensions = {},\n keymaps = [],\n receiver,\n yfmLangOptions,\n extensions: extraExtensions,\n placeholder: placeholderContent,\n autocompletion: autocompletionConfig,\n tooltips: tooltipsConfig,\n parseHtmlOnPaste,\n parseInsertedUrlAsImage,\n directiveSyntax,\n preserveEmptyRows,\n searchPanel = true,\n } = params;\n\n const extensions: Extension[] = [gravityTheme, placeholder(placeholderContent)];\n\n if (!disabledExtensions.history) {\n extensions.push(history());\n }\n\n const inputState = new InputState();\n\n extensions.push(\n syntaxHighlighting(gravityHighlightStyle),\n LoggerFacet.of(logger),\n keymap.of([\n {key: f.toCM(A.Bold)!, run: withLogger(ActionName.bold, toggleBold)},\n {key: f.toCM(A.Italic)!, run: withLogger(ActionName.italic, toggleItalic)},\n {key: f.toCM(A.Strike)!, run: withLogger(ActionName.strike, toggleStrikethrough)},\n {key: f.toCM(A.Underline)!, run: withLogger(ActionName.underline, toggleUnderline)},\n {key: f.toCM(A.Link)!, run: withLogger(ActionName.link, insertLink)},\n {key: f.toCM(A.Heading1)!, run: withLogger(ActionName.heading1, toH1)},\n {key: f.toCM(A.Heading2)!, run: withLogger(ActionName.heading2, toH2)},\n {key: f.toCM(A.Heading3)!, run: withLogger(ActionName.heading3, toH3)},\n {key: f.toCM(A.Heading4)!, run: withLogger(ActionName.heading4, toH4)},\n {key: f.toCM(A.Heading5)!, run: withLogger(ActionName.heading5, toH5)},\n {key: f.toCM(A.Heading6)!, run: withLogger(ActionName.heading6, toH6)},\n {key: f.toCM(A.Code)!, run: withLogger(ActionName.code_inline, wrapToInlineCode)},\n {key: f.toCM(A.CodeBlock)!, run: withLogger(ActionName.code_block, wrapToCodeBlock)},\n {key: f.toCM(A.Cut)!, run: withLogger(ActionName.yfm_cut, wrapToYfmCut)},\n {key: f.toCM(A.Note)!, run: withLogger(ActionName.yfm_note, wrapToYfmNote)},\n {\n key: f.toCM(A.Cancel)!,\n preventDefault: true,\n run: () => {\n onCancel();\n return true;\n },\n },\n {\n key: f.toCM(A.Submit)!,\n preventDefault: true,\n run: () => {\n onSubmit();\n return true;\n },\n },\n {key: 'Tab', preventDefault: true, run: insertTab},\n {\n key: 'Enter',\n shift: insertNewlineKeepIndent,\n },\n indentWithTab,\n ...defaultKeymap,\n ...(disabledExtensions.history ? [] : historyKeymap),\n ...keymaps,\n ]),\n autocompletion(autocompletionConfig),\n yfmLang(yfmLangOptions),\n ReactRendererFacet.of(reactRenderer),\n DirectiveSyntaxFacet.of(directiveSyntax),\n PairingCharactersExtension,\n EditorView.lineWrapping,\n EditorView.contentAttributes.of({spellcheck: 'true'}),\n EditorView.domEventHandlers({\n scroll(event) {\n onScroll(event);\n },\n keydown(event) {\n inputState.keydown(event);\n },\n keyup(event) {\n inputState.keyup(event);\n },\n paste(event, editor) {\n if (!event.clipboardData) return false;\n\n const pasteLogger = logger.nested({\n domEvent: 'paste',\n dataTypes: event.clipboardData.types,\n });\n\n const {from} = editor.state.selection.main;\n const line = editor.state.doc.lineAt(from);\n const currentLine = line.text;\n\n // if clipboard contains YFM content - avoid any meddling with pasted content\n // since text/yfm will contain valid markdown\n const yfmContent = event.clipboardData.getData(DataTransferType.Yfm);\n if (yfmContent) {\n event.preventDefault();\n logger.event({event: 'paste-markup'});\n const reindentedYfmContent = smartReindent(yfmContent, currentLine);\n editor.dispatch(editor.state.replaceSelection(reindentedYfmContent));\n return true;\n }\n\n // checking if a copy buffer content is suitable for convertion\n const shouldSkipHtml = shouldSkipHtmlConversion(event.clipboardData);\n\n // if we have text/html inside copy/paste buffer\n const htmlContent = event.clipboardData.getData(DataTransferType.Html);\n // if we pasting markdown from VsCode we need skip html transformation\n if (htmlContent && parseHtmlOnPaste && !shouldSkipHtml) {\n let parsedMarkdownMarkup: string | undefined;\n try {\n const parser = new DOMParser();\n const htmlDoc = parser.parseFromString(htmlContent, 'text/html');\n\n const converter = new MarkdownConverter();\n parsedMarkdownMarkup = converter.processNode(htmlDoc.body).trim();\n } catch (e) {\n // The code is pretty new and there might be random issues we haven't caught yet,\n // especially with invalid HTML or weird DOM parsing errors.\n // If something goes wrong, I just want to fall back to the \"default pasting\"\n // rather than break the entire experience for the user.\n pasteLogger.error(e, {event: 'parse-html-to-md'});\n globalLogger.error(e);\n }\n\n if (parsedMarkdownMarkup !== undefined) {\n event.preventDefault();\n logger.event({event: 'paste-parsed-html'});\n const reindentedHtmlContent = smartReindent(\n parsedMarkdownMarkup,\n currentLine,\n );\n editor.dispatch(editor.state.replaceSelection(reindentedHtmlContent));\n return true;\n }\n }\n\n if (!inputState.shiftKey && parseInsertedUrlAsImage) {\n const linkMatches = currentLine.matchAll(linkRegex);\n const cursorPositionInCurrentLine = from - line.from;\n const isInsertedInsideLink = linkMatches.some(\n (item) =>\n cursorPositionInCurrentLine >= item.index &&\n cursorPositionInCurrentLine <= item.index + (item[0]?.length ?? 0),\n );\n\n if (!isInsertedInsideLink) {\n const {imageUrl, title} =\n parseInsertedUrlAsImage(\n event.clipboardData.getData(DataTransferType.Text) ?? '',\n ) || {};\n\n if (imageUrl) {\n event.preventDefault();\n logger.event({event: 'paste-url-as-image'});\n insertImages([\n {\n url: imageUrl,\n alt: title,\n title,\n },\n ])(editor);\n return true;\n }\n }\n }\n\n // Reindenting pasted plain text\n const pastedText = event.clipboardData.getData(DataTransferType.Text);\n const reindentedText = smartReindent(pastedText, currentLine);\n // but only if there is a need for reindentation\n if (pastedText !== reindentedText) {\n editor.dispatch(editor.state.replaceSelection(reindentedText));\n event.preventDefault();\n return true;\n }\n\n return false;\n },\n }),\n );\n\n if (searchPanel) {\n extensions.push(\n SearchPanelPlugin({\n anchorSelector: '.g-md-search-markup-anchor',\n receiver,\n }),\n );\n }\n\n if (preserveEmptyRows) {\n extensions.push(\n keymap.of([\n {key: f.toCM(A.EmptyRow)!, run: withLogger(ActionName.emptyRow, insertEmptyRow)},\n ]),\n );\n }\n\n if (params.uploadHandler) {\n extensions.push(\n FileUploadHandlerFacet.of({\n fn: params.uploadHandler,\n imageWithDimensions: params.needImageDimensions,\n enableNewImageSizeCalculation: params.enableNewImageSizeCalculation,\n }),\n );\n }\n\n if (tooltipsConfig) {\n extensions.push(tooltips(tooltipsConfig));\n }\n\n if (extraExtensions) {\n extensions.push(...extraExtensions);\n }\n\n return new EditorView({\n doc,\n extensions,\n dispatchTransactions: (trs, view) => {\n view.update(trs);\n onChange();\n if (trs.some((tr) => tr.docChanged)) {\n onDocChange();\n }\n },\n });\n}\n\nexport function withLogger(action: string, command: StateCommand): StateCommand {\n return (...args) => {\n const {state} = args[0];\n state.facet(LoggerFacet).action({source: 'keymap', action});\n globalLogger.action({mode: 'markup', source: 'keymap', action});\n return command(...args);\n };\n}\n"]}
@@ -10,7 +10,6 @@ exports.gravityHighlightStyle = language_1.HighlightStyle.define(language_1.defa
10
10
  { tag: yfm_1.customTags.underline, textDecoration: 'underline' }, { tag: yfm_1.customTags.monospace, fontFamily: 'monospace' }, { tag: yfm_1.customTags.marked, color: 'marktext', backgroundColor: 'mark' }));
11
11
  exports.gravityTheme = view_1.EditorView.baseTheme({
12
12
  '&': {
13
- overflow: 'hidden',
14
13
  height: '100%',
15
14
  },
16
15
  '&.cm-focused': {
@@ -1 +1 @@
1
- {"version":3,"file":"gravity.js","sourceRoot":"../../../../src","sources":["markup/codemirror/gravity.ts"],"names":[],"mappings":";;;AAAA,mDAA2E;AAC3E,2CAA4C;AAC5C,gDAA2C;AAE3C,kCAAuC;AAE1B,QAAA,qBAAqB,GAAG,yBAAc,CAAC,MAAM,CACtD,gCAAqB,CAAC,KAAK,CAAC,MAAM,CAC9B,EAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAC,EAChD,EAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAC,EAChD,EAAC,GAAG,EAAE,gBAAC,CAAC,GAAG,EAAE,KAAK,EAAE,gCAAgC,EAAC,EACrD,EAAC,GAAG,EAAE,gBAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,+BAA+B,EAAC,EACjE,EAAC,GAAG,EAAE,CAAC,gBAAC,CAAC,MAAM,EAAE,gBAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAC,EACjE,EAAC,GAAG,EAAE,gBAAC,CAAC,MAAM,EAAE,KAAK,EAAE,kCAAkC,EAAC,EAC1D,EAAC,GAAG,EAAE,gBAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,oCAAoC,EAAC,EAC9D,EAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,EAAE,KAAK,EAAE,gCAAgC,EAAC,EACtD,EAAC,GAAG,EAAE,gBAAC,CAAC,SAAS,EAAE,KAAK,EAAE,mCAAmC,EAAC,EAC9D,EAAC,GAAG,EAAE,gBAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAC;AACpC,cAAc;AACd,EAAC,GAAG,EAAE,gBAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,EAAC,EAChD,EAAC,GAAG,EAAE,gBAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAC,EAC5C,EAAC,GAAG,EAAE,gBAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAC,CAC/D,CACJ,CAAC;AAEW,QAAA,YAAY,GAAG,iBAAU,CAAC,SAAS,CAAC;IAC7C,GAAG,EAAE;QACD,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;KACjB;IACD,cAAc,EAAE;QACZ,OAAO,EAAE,MAAM;KAClB;IACD,iBAAiB,EAAE;QACf,KAAK,EAAE,+BAA+B;KACzC;IACD,aAAa,EAAE;QACX,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,gCAAgC;QAC1C,UAAU,EAAE,gCAAgC;QAC5C,UAAU,EAAE,gCAAgC;QAC5C,UAAU,EAAE,kCAAkC;KACjD;IACD,yBAAyB,EAAE;QACvB,eAAe,EAAE,cAAc;KAClC;IACD,gEAAgE,EAAE;QAC9D,UAAU,EAAE,iCAAiC;KAChD;IACD,qCAAqC,EAAE;QACnC,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,gCAAgC;QAC5C,QAAQ,EAAE,gCAAgC;QAC1C,eAAe,EAAE,2BAA2B;QAC5C,MAAM,EAAE,6CAA6C;QACrD,YAAY,EAAE,KAAK;QAEnB,QAAQ,EAAE;YACN,wBAAwB,EAAE;gBACtB,KAAK,EAAE,0BAA0B;gBACjC,UAAU,EAAE,kCAAkC;gBAC9C,YAAY,EAAE,uCAAuC;aACxD;YAED,cAAc,EAAE;gBACZ,eAAe,EAAE,kCAAkC;aACtD;YAED,uBAAuB,EAAE;gBACrB,eAAe,EAAE,+BAA+B;gBAChD,KAAK,EAAE,QAAQ;aAClB;SACJ;KACJ;CACJ,CAAC,CAAC","sourcesContent":["import {HighlightStyle, defaultHighlightStyle} from '@codemirror/language';\nimport {EditorView} from '@codemirror/view';\nimport {tags as t} from '@lezer/highlight';\n\nimport {customTags as ct} from './yfm';\n\nexport const gravityHighlightStyle = HighlightStyle.define(\n defaultHighlightStyle.specs.concat(\n {tag: t.meta, color: 'var(--g-color-text-hint)'},\n {tag: t.link, color: 'var(--g-color-text-link)'},\n {tag: t.url, color: 'var(--g-color-text-link-hover)'},\n {tag: t.contentSeparator, color: 'var(--g-color-text-secondary)'},\n {tag: [t.string, t.deleted], color: 'var(--g-color-text-danger)'},\n {tag: t.escape, color: 'var(--g-color-text-danger-heavy)'},\n {tag: t.typeName, color: 'var(--g-color-text-positive-heavy)'},\n {tag: t.atom, color: 'var(--g-color-text-info-heavy)'},\n {tag: t.labelName, color: 'var(--g-color-text-complementary)'},\n {tag: t.heading, fontWeight: 'bold'},\n // custom tags\n {tag: ct.underline, textDecoration: 'underline'},\n {tag: ct.monospace, fontFamily: 'monospace'},\n {tag: ct.marked, color: 'marktext', backgroundColor: 'mark'},\n ),\n);\n\nexport const gravityTheme = EditorView.baseTheme({\n '&': {\n overflow: 'hidden',\n height: '100%',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-placeholder': {\n color: 'var(--g-color-text-secondary)',\n },\n '.cm-content': {\n color: 'var(--g-color-text-primary)',\n caretColor: 'currentColor',\n fontSize: 'var(--g-text-code-2-font-size)',\n fontWeight: 'var(--g-text-code-font-weight)',\n fontFamily: 'var(--g-font-family-monospace)',\n lineHeight: 'var(--g-text-code-2-line-height)',\n },\n '&.cm-focused .cm-cursor': {\n borderLeftColor: 'currentColor',\n },\n '&.cm-focused .cm-selectionBackground, &.cm-focused ::selection': {\n background: 'var(--g-color-base-misc-medium)',\n },\n '.cm-tooltip.cm-tooltip-autocomplete': {\n padding: '4px 0',\n lineHeight: '24px',\n color: 'var(--g-color-text-primary)',\n fontFamily: 'var(--g-font-family-monospace)',\n fontSize: 'var(--g-text-body-1-font-size)',\n backgroundColor: 'var(--g-color-base-float)',\n border: '1px solid var(--g-color-line-generic-solid)',\n borderRadius: '4px',\n\n '& > ul': {\n '& > completion-section': {\n color: 'var(--g-color-text-hint)',\n fontWeight: 'var(--g-text-accent-font-weight)',\n borderBottom: '1px solid var(--g-color-line-generic)',\n },\n\n '& > li:hover': {\n backgroundColor: 'var(--g-color-base-simple-hover)',\n },\n\n '& > li[aria-selected]': {\n backgroundColor: 'var(--g-color-base-selection)',\n color: 'revert',\n },\n },\n },\n});\n"]}
1
+ {"version":3,"file":"gravity.js","sourceRoot":"../../../../src","sources":["markup/codemirror/gravity.ts"],"names":[],"mappings":";;;AAAA,mDAA2E;AAC3E,2CAA4C;AAC5C,gDAA2C;AAE3C,kCAAuC;AAE1B,QAAA,qBAAqB,GAAG,yBAAc,CAAC,MAAM,CACtD,gCAAqB,CAAC,KAAK,CAAC,MAAM,CAC9B,EAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAC,EAChD,EAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAC,EAChD,EAAC,GAAG,EAAE,gBAAC,CAAC,GAAG,EAAE,KAAK,EAAE,gCAAgC,EAAC,EACrD,EAAC,GAAG,EAAE,gBAAC,CAAC,gBAAgB,EAAE,KAAK,EAAE,+BAA+B,EAAC,EACjE,EAAC,GAAG,EAAE,CAAC,gBAAC,CAAC,MAAM,EAAE,gBAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,4BAA4B,EAAC,EACjE,EAAC,GAAG,EAAE,gBAAC,CAAC,MAAM,EAAE,KAAK,EAAE,kCAAkC,EAAC,EAC1D,EAAC,GAAG,EAAE,gBAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,oCAAoC,EAAC,EAC9D,EAAC,GAAG,EAAE,gBAAC,CAAC,IAAI,EAAE,KAAK,EAAE,gCAAgC,EAAC,EACtD,EAAC,GAAG,EAAE,gBAAC,CAAC,SAAS,EAAE,KAAK,EAAE,mCAAmC,EAAC,EAC9D,EAAC,GAAG,EAAE,gBAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAC;AACpC,cAAc;AACd,EAAC,GAAG,EAAE,gBAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,EAAC,EAChD,EAAC,GAAG,EAAE,gBAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAC,EAC5C,EAAC,GAAG,EAAE,gBAAE,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAC,CAC/D,CACJ,CAAC;AAEW,QAAA,YAAY,GAAG,iBAAU,CAAC,SAAS,CAAC;IAC7C,GAAG,EAAE;QACD,MAAM,EAAE,MAAM;KACjB;IACD,cAAc,EAAE;QACZ,OAAO,EAAE,MAAM;KAClB;IACD,iBAAiB,EAAE;QACf,KAAK,EAAE,+BAA+B;KACzC;IACD,aAAa,EAAE;QACX,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,cAAc;QAC1B,QAAQ,EAAE,gCAAgC;QAC1C,UAAU,EAAE,gCAAgC;QAC5C,UAAU,EAAE,gCAAgC;QAC5C,UAAU,EAAE,kCAAkC;KACjD;IACD,yBAAyB,EAAE;QACvB,eAAe,EAAE,cAAc;KAClC;IACD,gEAAgE,EAAE;QAC9D,UAAU,EAAE,iCAAiC;KAChD;IACD,qCAAqC,EAAE;QACnC,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,6BAA6B;QACpC,UAAU,EAAE,gCAAgC;QAC5C,QAAQ,EAAE,gCAAgC;QAC1C,eAAe,EAAE,2BAA2B;QAC5C,MAAM,EAAE,6CAA6C;QACrD,YAAY,EAAE,KAAK;QAEnB,QAAQ,EAAE;YACN,wBAAwB,EAAE;gBACtB,KAAK,EAAE,0BAA0B;gBACjC,UAAU,EAAE,kCAAkC;gBAC9C,YAAY,EAAE,uCAAuC;aACxD;YAED,cAAc,EAAE;gBACZ,eAAe,EAAE,kCAAkC;aACtD;YAED,uBAAuB,EAAE;gBACrB,eAAe,EAAE,+BAA+B;gBAChD,KAAK,EAAE,QAAQ;aAClB;SACJ;KACJ;CACJ,CAAC,CAAC","sourcesContent":["import {HighlightStyle, defaultHighlightStyle} from '@codemirror/language';\nimport {EditorView} from '@codemirror/view';\nimport {tags as t} from '@lezer/highlight';\n\nimport {customTags as ct} from './yfm';\n\nexport const gravityHighlightStyle = HighlightStyle.define(\n defaultHighlightStyle.specs.concat(\n {tag: t.meta, color: 'var(--g-color-text-hint)'},\n {tag: t.link, color: 'var(--g-color-text-link)'},\n {tag: t.url, color: 'var(--g-color-text-link-hover)'},\n {tag: t.contentSeparator, color: 'var(--g-color-text-secondary)'},\n {tag: [t.string, t.deleted], color: 'var(--g-color-text-danger)'},\n {tag: t.escape, color: 'var(--g-color-text-danger-heavy)'},\n {tag: t.typeName, color: 'var(--g-color-text-positive-heavy)'},\n {tag: t.atom, color: 'var(--g-color-text-info-heavy)'},\n {tag: t.labelName, color: 'var(--g-color-text-complementary)'},\n {tag: t.heading, fontWeight: 'bold'},\n // custom tags\n {tag: ct.underline, textDecoration: 'underline'},\n {tag: ct.monospace, fontFamily: 'monospace'},\n {tag: ct.marked, color: 'marktext', backgroundColor: 'mark'},\n ),\n);\n\nexport const gravityTheme = EditorView.baseTheme({\n '&': {\n height: '100%',\n },\n '&.cm-focused': {\n outline: 'none',\n },\n '.cm-placeholder': {\n color: 'var(--g-color-text-secondary)',\n },\n '.cm-content': {\n color: 'var(--g-color-text-primary)',\n caretColor: 'currentColor',\n fontSize: 'var(--g-text-code-2-font-size)',\n fontWeight: 'var(--g-text-code-font-weight)',\n fontFamily: 'var(--g-font-family-monospace)',\n lineHeight: 'var(--g-text-code-2-line-height)',\n },\n '&.cm-focused .cm-cursor': {\n borderLeftColor: 'currentColor',\n },\n '&.cm-focused .cm-selectionBackground, &.cm-focused ::selection': {\n background: 'var(--g-color-base-misc-medium)',\n },\n '.cm-tooltip.cm-tooltip-autocomplete': {\n padding: '4px 0',\n lineHeight: '24px',\n color: 'var(--g-color-text-primary)',\n fontFamily: 'var(--g-font-family-monospace)',\n fontSize: 'var(--g-text-body-1-font-size)',\n backgroundColor: 'var(--g-color-base-float)',\n border: '1px solid var(--g-color-line-generic-solid)',\n borderRadius: '4px',\n\n '& > ul': {\n '& > completion-section': {\n color: 'var(--g-color-text-hint)',\n fontWeight: 'var(--g-text-accent-font-weight)',\n borderBottom: '1px solid var(--g-color-line-generic)',\n },\n\n '& > li:hover': {\n backgroundColor: 'var(--g-color-base-simple-hover)',\n },\n\n '& > li[aria-selected]': {\n backgroundColor: 'var(--g-color-base-selection)',\n color: 'revert',\n },\n },\n },\n});\n"]}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const const_1 = require("./const.js");
4
4
  const formatter_1 = require("./formatter.js");
5
- /* eslint-disable */
6
5
  formatter_1.formatter
7
6
  .set(const_1.Action.__debug, [const_1.ModKey.Mod, const_1.ModKey.Option, ']'])
8
7
  .set(const_1.Action.Cancel, [const_1.Key.Esc])
@@ -31,5 +30,4 @@ formatter_1.formatter
31
30
  .set(const_1.Action.CodeBlock, { pc: [const_1.ModKey.Ctrl, const_1.ModKey.Shift, 'e'], mac: [const_1.ModKey.Cmd, const_1.ModKey.Option, 'e'] })
32
31
  .set(const_1.Action.Cut, { pc: [const_1.ModKey.Ctrl, const_1.ModKey.Shift, '7'], mac: [const_1.ModKey.Cmd, const_1.ModKey.Option, '7'] })
33
32
  .set(const_1.Action.Note, { pc: [const_1.ModKey.Ctrl, const_1.ModKey.Shift, '8'], mac: [const_1.ModKey.Cmd, const_1.ModKey.Option, '8'] });
34
- /* eslint-enable */
35
33
  //# sourceMappingURL=default.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"../../../src","sources":["shortcuts/default.ts"],"names":[],"mappings":"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","sourcesContent":["import {Action as A, Key as K, ModKey as MK} from './const';\nimport {formatter} from './formatter';\n\n/* eslint-disable */\nformatter\n .set(A.__debug, [MK.Mod, MK.Option, ']'])\n\n .set(A.Cancel, [K.Esc])\n .set(A.Submit, [MK.Mod, K.Enter])\n\n .set(A.Undo, [MK.Mod, 'z'])\n .set(A.Redo, [MK.Mod, MK.Shift, 'z'])\n\n .set(A.Bold, [MK.Mod, 'b'])\n .set(A.Italic, [MK.Mod, 'i'])\n .set(A.Underline, [MK.Mod, 'u'])\n .set(A.Strike, [MK.Mod, MK.Shift, 's'])\n .set(A.Code, [MK.Mod, 'e'])\n .set(A.Link, [MK.Mod, 'k'])\n\n .set(A.Text, {pc: [MK.Ctrl, MK.Shift, '0'], mac: [MK.Cmd, MK.Option, '0']})\n .set(A.Heading1, {pc: [MK.Ctrl, MK.Shift, '1'], mac: [MK.Cmd, MK.Option, '1']})\n .set(A.Heading2, {pc: [MK.Ctrl, MK.Shift, '2'], mac: [MK.Cmd, MK.Option, '2']})\n .set(A.Heading3, {pc: [MK.Ctrl, MK.Shift, '3'], mac: [MK.Cmd, MK.Option, '3']})\n .set(A.Heading4, {pc: [MK.Ctrl, MK.Shift, '4'], mac: [MK.Cmd, MK.Option, '4']})\n .set(A.Heading5, {pc: [MK.Ctrl, MK.Shift, '5'], mac: [MK.Cmd, MK.Option, '5']})\n .set(A.Heading6, {pc: [MK.Ctrl, MK.Shift, '6'], mac: [MK.Cmd, MK.Option, '6']})\n\n .set(A.EmptyRow, {pc: [MK.Ctrl, MK.Shift, K.Enter], mac: [MK.Cmd, MK.Shift, K.Enter]})\n\n .set(A.BulletList, [MK.Mod, MK.Shift, 'l'])\n .set(A.OrderedList, [MK.Mod, MK.Shift, 'm'])\n\n .set(A.SinkListItem, [MK.Tab])\n .set(A.LiftListItem, [MK.Shift, MK.Tab])\n\n .set(A.Quote, [MK.Mod, MK.Shift, '.'])\n .set(A.CodeBlock, {pc: [MK.Ctrl, MK.Shift, 'e'], mac: [MK.Cmd, MK.Option, 'e']})\n\n .set(A.Cut, {pc: [MK.Ctrl, MK.Shift, '7'], mac: [MK.Cmd, MK.Option, '7']})\n .set(A.Note, {pc: [MK.Ctrl, MK.Shift, '8'], mac: [MK.Cmd, MK.Option, '8']});\n/* eslint-enable */\n"]}
1
+ {"version":3,"file":"default.js","sourceRoot":"../../../src","sources":["shortcuts/default.ts"],"names":[],"mappings":"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","sourcesContent":["import {Action as A, Key as K, ModKey as MK} from './const';\nimport {formatter} from './formatter';\n\nformatter\n .set(A.__debug, [MK.Mod, MK.Option, ']'])\n\n .set(A.Cancel, [K.Esc])\n .set(A.Submit, [MK.Mod, K.Enter])\n\n .set(A.Undo, [MK.Mod, 'z'])\n .set(A.Redo, [MK.Mod, MK.Shift, 'z'])\n\n .set(A.Bold, [MK.Mod, 'b'])\n .set(A.Italic, [MK.Mod, 'i'])\n .set(A.Underline, [MK.Mod, 'u'])\n .set(A.Strike, [MK.Mod, MK.Shift, 's'])\n .set(A.Code, [MK.Mod, 'e'])\n .set(A.Link, [MK.Mod, 'k'])\n\n .set(A.Text, {pc: [MK.Ctrl, MK.Shift, '0'], mac: [MK.Cmd, MK.Option, '0']})\n .set(A.Heading1, {pc: [MK.Ctrl, MK.Shift, '1'], mac: [MK.Cmd, MK.Option, '1']})\n .set(A.Heading2, {pc: [MK.Ctrl, MK.Shift, '2'], mac: [MK.Cmd, MK.Option, '2']})\n .set(A.Heading3, {pc: [MK.Ctrl, MK.Shift, '3'], mac: [MK.Cmd, MK.Option, '3']})\n .set(A.Heading4, {pc: [MK.Ctrl, MK.Shift, '4'], mac: [MK.Cmd, MK.Option, '4']})\n .set(A.Heading5, {pc: [MK.Ctrl, MK.Shift, '5'], mac: [MK.Cmd, MK.Option, '5']})\n .set(A.Heading6, {pc: [MK.Ctrl, MK.Shift, '6'], mac: [MK.Cmd, MK.Option, '6']})\n\n .set(A.EmptyRow, {pc: [MK.Ctrl, MK.Shift, K.Enter], mac: [MK.Cmd, MK.Shift, K.Enter]})\n\n .set(A.BulletList, [MK.Mod, MK.Shift, 'l'])\n .set(A.OrderedList, [MK.Mod, MK.Shift, 'm'])\n\n .set(A.SinkListItem, [MK.Tab])\n .set(A.LiftListItem, [MK.Shift, MK.Tab])\n\n .set(A.Quote, [MK.Mod, MK.Shift, '.'])\n .set(A.CodeBlock, {pc: [MK.Ctrl, MK.Shift, 'e'], mac: [MK.Cmd, MK.Option, 'e']})\n\n .set(A.Cut, {pc: [MK.Ctrl, MK.Shift, '7'], mac: [MK.Cmd, MK.Option, '7']})\n .set(A.Note, {pc: [MK.Ctrl, MK.Shift, '8'], mac: [MK.Cmd, MK.Option, '8']});\n"]}
@@ -11,8 +11,7 @@ const removeRow = (state, dispatch, _, attrs = {}) => {
11
11
  const { tablePos, rowNumber } = attrs;
12
12
  if (tablePos === undefined || rowNumber === undefined)
13
13
  return false;
14
- const tableNode = (0, prosemirror_utils_1.findParentNodeClosestToPos)(state.doc.resolve(tablePos + 1), utils_1.isTableNode)
15
- ?.node;
14
+ const tableNode = (0, prosemirror_utils_1.findParentNodeClosestToPos)(state.doc.resolve(tablePos + 1), utils_1.isTableNode)?.node;
16
15
  if (!tableNode)
17
16
  return false;
18
17
  const tableDesc = table_desc_1.TableDesc.create(tableNode);
@@ -1 +1 @@
1
- {"version":3,"file":"removeRow.js","sourceRoot":"../../../../src","sources":["table-utils/commands/removeRow.ts"],"names":[],"mappings":";;;AAAA,yDAA2C;AAE3C,oCAAoC;AACpC,yDAA6D;AAE7D,8CAAmD;AACnD,iDAAwC;AACxC,uCAAqC;AAE9B,MAAM,SAAS,GAAY,CAC9B,KAAK,EACL,QAAQ,EACR,CAAC,EACD,QAAiD,EAAE,EACrD,EAAE;IACA,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAEpC,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEpE,MAAM,SAAS,GAAG,IAAA,8CAA0B,EAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,mBAAW,CAAC;QACtF,EAAE,IAAI,CAAC;IAEX,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,SAAS,GAAG,sBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAElD,IAAI,QAAQ,EAAE,CAAC;QACX,IAAI,EAAC,IAAI,EAAE,EAAE,EAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,IAAI,QAAQ,CAAC;QACjB,EAAE,IAAI,QAAQ,CAAC;QACf,QAAQ,CACJ,IAAA,8BAAuB,EAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,4BAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE;YACjF,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,IAAI,EAAE,SAAS,CAAC,IAAI;SACvB,CAAC,CACL,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAhCW,QAAA,SAAS,aAgCpB","sourcesContent":["import {Fragment} from 'prosemirror-model';\nimport type {Command} from 'prosemirror-state';\n// @ts-ignore // TODO: fix cjs build\nimport {findParentNodeClosestToPos} from 'prosemirror-utils';\n\nimport {trackTransactionMetrics} from '../../core';\nimport {TableDesc} from '../table-desc';\nimport {isTableNode} from '../utils';\n\nexport const removeRow: Command = (\n state,\n dispatch,\n _,\n attrs: {tablePos?: number; rowNumber?: number} = {},\n) => {\n const {tablePos, rowNumber} = attrs;\n\n if (tablePos === undefined || rowNumber === undefined) return false;\n\n const tableNode = findParentNodeClosestToPos(state.doc.resolve(tablePos + 1), isTableNode)\n ?.node;\n\n if (!tableNode) return false;\n\n const tableDesc = TableDesc.create(tableNode);\n if (!tableDesc || rowNumber >= tableDesc.rows) return false;\n if (!tableDesc.isSafeRow(rowNumber)) return false;\n\n if (dispatch) {\n let {from, to} = tableDesc.getRelativePosForRow(rowNumber);\n from += tablePos;\n to += tablePos;\n dispatch(\n trackTransactionMetrics(state.tr.replaceWith(from, to, Fragment.empty), 'removeRow', {\n rows: tableDesc.rows,\n cols: tableDesc.cols,\n }),\n );\n }\n\n return true;\n};\n"]}
1
+ {"version":3,"file":"removeRow.js","sourceRoot":"../../../../src","sources":["table-utils/commands/removeRow.ts"],"names":[],"mappings":";;;AAAA,yDAA2C;AAE3C,oCAAoC;AACpC,yDAA6D;AAE7D,8CAAmD;AACnD,iDAAwC;AACxC,uCAAqC;AAE9B,MAAM,SAAS,GAAY,CAC9B,KAAK,EACL,QAAQ,EACR,CAAC,EACD,QAAiD,EAAE,EACrD,EAAE;IACA,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IAEpC,IAAI,QAAQ,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEpE,MAAM,SAAS,GAAG,IAAA,8CAA0B,EACxC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,EAC/B,mBAAW,CACd,EAAE,IAAI,CAAC;IAER,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,SAAS,GAAG,sBAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,SAAS,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAElD,IAAI,QAAQ,EAAE,CAAC;QACX,IAAI,EAAC,IAAI,EAAE,EAAE,EAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,IAAI,QAAQ,CAAC;QACjB,EAAE,IAAI,QAAQ,CAAC;QACf,QAAQ,CACJ,IAAA,8BAAuB,EAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,4BAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE;YACjF,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,IAAI,EAAE,SAAS,CAAC,IAAI;SACvB,CAAC,CACL,CAAC;IACN,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAlCW,QAAA,SAAS,aAkCpB","sourcesContent":["import {Fragment} from 'prosemirror-model';\nimport type {Command} from 'prosemirror-state';\n// @ts-ignore // TODO: fix cjs build\nimport {findParentNodeClosestToPos} from 'prosemirror-utils';\n\nimport {trackTransactionMetrics} from '../../core';\nimport {TableDesc} from '../table-desc';\nimport {isTableNode} from '../utils';\n\nexport const removeRow: Command = (\n state,\n dispatch,\n _,\n attrs: {tablePos?: number; rowNumber?: number} = {},\n) => {\n const {tablePos, rowNumber} = attrs;\n\n if (tablePos === undefined || rowNumber === undefined) return false;\n\n const tableNode = findParentNodeClosestToPos(\n state.doc.resolve(tablePos + 1),\n isTableNode,\n )?.node;\n\n if (!tableNode) return false;\n\n const tableDesc = TableDesc.create(tableNode);\n if (!tableDesc || rowNumber >= tableDesc.rows) return false;\n if (!tableDesc.isSafeRow(rowNumber)) return false;\n\n if (dispatch) {\n let {from, to} = tableDesc.getRelativePosForRow(rowNumber);\n from += tablePos;\n to += tablePos;\n dispatch(\n trackTransactionMetrics(state.tr.replaceWith(from, to, Fragment.empty), 'removeRow', {\n rows: tableDesc.rows,\n cols: tableDesc.cols,\n }),\n );\n }\n\n return true;\n};\n"]}
@@ -34,7 +34,6 @@ export type ToolbarItemData<E> = QAProps & {
34
34
  * `true` – show default hint;
35
35
  *
36
36
  * `string` or `() => string` – show hint with custom message.
37
- *
38
37
  * @default true
39
38
  */
40
39
  hintWhenDisabled?: boolean | string | (() => string);
@@ -96,7 +95,7 @@ export type ToolbarListButtonData<E> = {
96
95
  };
97
96
  /**
98
97
  * @deprecated Use ReactComponent type instead
99
- * */
98
+ */
100
99
  export type ToolbarReactNodeData = {
101
100
  id: string;
102
101
  type: ToolbarDataType.ReactNode;
@@ -105,7 +104,7 @@ export type ToolbarReactNodeData = {
105
104
  };
106
105
  /**
107
106
  * @deprecated Use ReactComponent type instead
108
- * */
107
+ */
109
108
  export type ToolbarReactNodeFnData<E> = {
110
109
  id: string;
111
110
  type: ToolbarDataType.ReactNodeFn;