@lapismd/mira 0.0.1

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 (911) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE.md +4 -0
  3. package/README.md +52 -0
  4. package/dist/codemirror.d.ts +5 -0
  5. package/dist/codemirror.d.ts.map +1 -0
  6. package/dist/codemirror.js +4 -0
  7. package/dist/core/code-mirror.d.ts +29 -0
  8. package/dist/core/code-mirror.d.ts.map +1 -0
  9. package/dist/core/code-mirror.js +74 -0
  10. package/dist/core/code-mirror.test.d.ts +2 -0
  11. package/dist/core/code-mirror.test.d.ts.map +1 -0
  12. package/dist/core/code-mirror.test.js +68 -0
  13. package/dist/core/images.d.ts +30 -0
  14. package/dist/core/images.d.ts.map +1 -0
  15. package/dist/core/images.js +226 -0
  16. package/dist/core/images.test.d.ts +2 -0
  17. package/dist/core/images.test.d.ts.map +1 -0
  18. package/dist/core/images.test.js +109 -0
  19. package/dist/core/index.d.ts +69 -0
  20. package/dist/core/index.d.ts.map +1 -0
  21. package/dist/core/index.js +138 -0
  22. package/dist/core/index.test.d.ts +2 -0
  23. package/dist/core/index.test.d.ts.map +1 -0
  24. package/dist/core/index.test.js +11 -0
  25. package/dist/core/markdown-actions.d.ts +11 -0
  26. package/dist/core/markdown-actions.d.ts.map +1 -0
  27. package/dist/core/markdown-actions.js +603 -0
  28. package/dist/core/markdown-actions.test.d.ts +2 -0
  29. package/dist/core/markdown-actions.test.d.ts.map +1 -0
  30. package/dist/core/markdown-actions.test.js +182 -0
  31. package/dist/extensions/doodle-dividers.d.ts +44 -0
  32. package/dist/extensions/doodle-dividers.d.ts.map +1 -0
  33. package/dist/extensions/doodle-dividers.js +909 -0
  34. package/dist/extensions/doodle-dividers.test.d.ts +2 -0
  35. package/dist/extensions/doodle-dividers.test.d.ts.map +1 -0
  36. package/dist/extensions/doodle-dividers.test.js +296 -0
  37. package/dist/extensions/index.d.ts +342 -0
  38. package/dist/extensions/index.d.ts.map +1 -0
  39. package/dist/extensions/index.js +279 -0
  40. package/dist/extensions/index.test.d.ts +2 -0
  41. package/dist/extensions/index.test.d.ts.map +1 -0
  42. package/dist/extensions/index.test.js +283 -0
  43. package/dist/extensions/selection-toolbar.d.ts +6 -0
  44. package/dist/extensions/selection-toolbar.d.ts.map +1 -0
  45. package/dist/extensions/selection-toolbar.js +14 -0
  46. package/dist/index.d.ts +9 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +5 -0
  49. package/dist/index.test.d.ts +2 -0
  50. package/dist/index.test.d.ts.map +1 -0
  51. package/dist/index.test.js +64 -0
  52. package/dist/internal/appearance-context.d.ts +12 -0
  53. package/dist/internal/appearance-context.d.ts.map +1 -0
  54. package/dist/internal/appearance-context.js +31 -0
  55. package/dist/internal/appearance-context.test.d.ts +2 -0
  56. package/dist/internal/appearance-context.test.d.ts.map +1 -0
  57. package/dist/internal/appearance-context.test.js +31 -0
  58. package/dist/internal/codemirror/base/index.d.ts +24 -0
  59. package/dist/internal/codemirror/base/index.d.ts.map +1 -0
  60. package/dist/internal/codemirror/base/index.js +489 -0
  61. package/dist/internal/codemirror/base/index.test.d.ts +2 -0
  62. package/dist/internal/codemirror/base/index.test.d.ts.map +1 -0
  63. package/dist/internal/codemirror/base/index.test.js +303 -0
  64. package/dist/internal/codemirror/base/search-panel.svelte +590 -0
  65. package/dist/internal/codemirror/base/search-panel.svelte.d.ts +8 -0
  66. package/dist/internal/codemirror/base/search-panel.svelte.d.ts.map +1 -0
  67. package/dist/internal/codemirror/base/search.d.ts +46 -0
  68. package/dist/internal/codemirror/base/search.d.ts.map +1 -0
  69. package/dist/internal/codemirror/base/search.js +58 -0
  70. package/dist/internal/codemirror/base/search.test.d.ts +2 -0
  71. package/dist/internal/codemirror/base/search.test.d.ts.map +1 -0
  72. package/dist/internal/codemirror/base/search.test.js +155 -0
  73. package/dist/internal/codemirror/base/selection-toolbar.d.ts +21 -0
  74. package/dist/internal/codemirror/base/selection-toolbar.d.ts.map +1 -0
  75. package/dist/internal/codemirror/base/selection-toolbar.js +306 -0
  76. package/dist/internal/codemirror/base/selection-toolbar.test.d.ts +2 -0
  77. package/dist/internal/codemirror/base/selection-toolbar.test.d.ts.map +1 -0
  78. package/dist/internal/codemirror/base/selection-toolbar.test.js +149 -0
  79. package/dist/internal/codemirror/base/slash-commands.d.ts +61 -0
  80. package/dist/internal/codemirror/base/slash-commands.d.ts.map +1 -0
  81. package/dist/internal/codemirror/base/slash-commands.js +463 -0
  82. package/dist/internal/codemirror/markdown/authoring.d.ts +9 -0
  83. package/dist/internal/codemirror/markdown/authoring.d.ts.map +1 -0
  84. package/dist/internal/codemirror/markdown/authoring.js +14 -0
  85. package/dist/internal/codemirror/markdown/authoring.test.d.ts +2 -0
  86. package/dist/internal/codemirror/markdown/authoring.test.d.ts.map +1 -0
  87. package/dist/internal/codemirror/markdown/authoring.test.js +222 -0
  88. package/dist/internal/codemirror/markdown/completion.d.ts +12 -0
  89. package/dist/internal/codemirror/markdown/completion.d.ts.map +1 -0
  90. package/dist/internal/codemirror/markdown/completion.js +302 -0
  91. package/dist/internal/codemirror/markdown/directives.d.ts +3 -0
  92. package/dist/internal/codemirror/markdown/directives.d.ts.map +1 -0
  93. package/dist/internal/codemirror/markdown/directives.js +154 -0
  94. package/dist/internal/codemirror/markdown/grid-table.d.ts +3 -0
  95. package/dist/internal/codemirror/markdown/grid-table.d.ts.map +1 -0
  96. package/dist/internal/codemirror/markdown/grid-table.js +129 -0
  97. package/dist/internal/codemirror/markdown/index.d.ts +16 -0
  98. package/dist/internal/codemirror/markdown/index.d.ts.map +1 -0
  99. package/dist/internal/codemirror/markdown/index.js +125 -0
  100. package/dist/internal/codemirror/markdown/index.test.d.ts +2 -0
  101. package/dist/internal/codemirror/markdown/index.test.d.ts.map +1 -0
  102. package/dist/internal/codemirror/markdown/index.test.js +158 -0
  103. package/dist/internal/codemirror/markdown/input-handlers.d.ts +4 -0
  104. package/dist/internal/codemirror/markdown/input-handlers.d.ts.map +1 -0
  105. package/dist/internal/codemirror/markdown/input-handlers.js +56 -0
  106. package/dist/internal/codemirror/markdown/lapis-inline.d.ts +11 -0
  107. package/dist/internal/codemirror/markdown/lapis-inline.d.ts.map +1 -0
  108. package/dist/internal/codemirror/markdown/lapis-inline.js +189 -0
  109. package/dist/internal/codemirror/markdown/latex.d.ts +5 -0
  110. package/dist/internal/codemirror/markdown/latex.d.ts.map +1 -0
  111. package/dist/internal/codemirror/markdown/latex.js +97 -0
  112. package/dist/internal/codemirror/markdown/list-after-lazy-quote.d.ts +10 -0
  113. package/dist/internal/codemirror/markdown/list-after-lazy-quote.d.ts.map +1 -0
  114. package/dist/internal/codemirror/markdown/list-after-lazy-quote.js +28 -0
  115. package/dist/internal/codemirror/markdown/paste.d.ts +5 -0
  116. package/dist/internal/codemirror/markdown/paste.d.ts.map +1 -0
  117. package/dist/internal/codemirror/markdown/paste.js +84 -0
  118. package/dist/internal/codemirror/markdown/showcase-fixture.test.d.ts +2 -0
  119. package/dist/internal/codemirror/markdown/showcase-fixture.test.d.ts.map +1 -0
  120. package/dist/internal/codemirror/markdown/showcase-fixture.test.js +50 -0
  121. package/dist/internal/codemirror/markdown/types.d.ts +6 -0
  122. package/dist/internal/codemirror/rich/block-controls.d.ts +4 -0
  123. package/dist/internal/codemirror/rich/block-controls.d.ts.map +1 -0
  124. package/dist/internal/codemirror/rich/block-controls.js +1419 -0
  125. package/dist/internal/codemirror/rich/block-controls.test.d.ts +2 -0
  126. package/dist/internal/codemirror/rich/block-controls.test.d.ts.map +1 -0
  127. package/dist/internal/codemirror/rich/block-controls.test.js +401 -0
  128. package/dist/internal/codemirror/rich/block-ranges.d.ts +22 -0
  129. package/dist/internal/codemirror/rich/block-ranges.d.ts.map +1 -0
  130. package/dist/internal/codemirror/rich/block-ranges.js +736 -0
  131. package/dist/internal/codemirror/rich/block-ranges.test.d.ts +2 -0
  132. package/dist/internal/codemirror/rich/block-ranges.test.d.ts.map +1 -0
  133. package/dist/internal/codemirror/rich/block-ranges.test.js +310 -0
  134. package/dist/internal/codemirror/rich/block-toolbar.d.ts +25 -0
  135. package/dist/internal/codemirror/rich/block-toolbar.d.ts.map +1 -0
  136. package/dist/internal/codemirror/rich/block-toolbar.js +506 -0
  137. package/dist/internal/codemirror/rich/block-toolbar.test.d.ts +2 -0
  138. package/dist/internal/codemirror/rich/block-toolbar.test.d.ts.map +1 -0
  139. package/dist/internal/codemirror/rich/block-toolbar.test.js +178 -0
  140. package/dist/internal/codemirror/rich/decorations/fold-indicators.d.ts +7 -0
  141. package/dist/internal/codemirror/rich/decorations/fold-indicators.d.ts.map +1 -0
  142. package/dist/internal/codemirror/rich/decorations/fold-indicators.js +122 -0
  143. package/dist/internal/codemirror/rich/decorations/fold-indicators.test.d.ts +2 -0
  144. package/dist/internal/codemirror/rich/decorations/fold-indicators.test.d.ts.map +1 -0
  145. package/dist/internal/codemirror/rich/decorations/fold-indicators.test.js +8 -0
  146. package/dist/internal/codemirror/rich/decorations/heading-gutter.d.ts +3 -0
  147. package/dist/internal/codemirror/rich/decorations/heading-gutter.d.ts.map +1 -0
  148. package/dist/internal/codemirror/rich/decorations/heading-gutter.js +43 -0
  149. package/dist/internal/codemirror/rich/index.d.ts +17 -0
  150. package/dist/internal/codemirror/rich/index.d.ts.map +1 -0
  151. package/dist/internal/codemirror/rich/index.js +727 -0
  152. package/dist/internal/codemirror/rich/index.test.d.ts +2 -0
  153. package/dist/internal/codemirror/rich/index.test.d.ts.map +1 -0
  154. package/dist/internal/codemirror/rich/index.test.js +544 -0
  155. package/dist/internal/codemirror/rich/theme.d.ts +2 -0
  156. package/dist/internal/codemirror/rich/theme.d.ts.map +1 -0
  157. package/dist/internal/codemirror/rich/theme.js +268 -0
  158. package/dist/internal/codemirror/rich/types.d.ts +22 -0
  159. package/dist/internal/codemirror/rich/types.d.ts.map +1 -0
  160. package/dist/internal/codemirror/rich/types.js +1 -0
  161. package/dist/internal/codemirror/rich/utils/activation.d.ts +3 -0
  162. package/dist/internal/codemirror/rich/utils/activation.d.ts.map +1 -0
  163. package/dist/internal/codemirror/rich/utils/activation.js +27 -0
  164. package/dist/internal/codemirror/rich/utils/code-block-lines.d.ts +8 -0
  165. package/dist/internal/codemirror/rich/utils/code-block-lines.d.ts.map +1 -0
  166. package/dist/internal/codemirror/rich/utils/code-block-lines.js +143 -0
  167. package/dist/internal/codemirror/rich/utils/code-block-lines.test.d.ts +2 -0
  168. package/dist/internal/codemirror/rich/utils/code-block-lines.test.d.ts.map +1 -0
  169. package/dist/internal/codemirror/rich/utils/code-block-lines.test.js +82 -0
  170. package/dist/internal/codemirror/rich/utils/fenced-code.d.ts +4 -0
  171. package/dist/internal/codemirror/rich/utils/fenced-code.d.ts.map +1 -0
  172. package/dist/internal/codemirror/rich/utils/fenced-code.js +25 -0
  173. package/dist/internal/codemirror/rich/utils/fenced-code.test.d.ts +2 -0
  174. package/dist/internal/codemirror/rich/utils/fenced-code.test.d.ts.map +1 -0
  175. package/dist/internal/codemirror/rich/utils/fenced-code.test.js +12 -0
  176. package/dist/internal/codemirror/rich/utils/headings.d.ts +5 -0
  177. package/dist/internal/codemirror/rich/utils/headings.d.ts.map +1 -0
  178. package/dist/internal/codemirror/rich/utils/headings.js +20 -0
  179. package/dist/internal/codemirror/rich/utils/headings.test.d.ts +2 -0
  180. package/dist/internal/codemirror/rich/utils/headings.test.d.ts.map +1 -0
  181. package/dist/internal/codemirror/rich/utils/headings.test.js +27 -0
  182. package/dist/internal/codemirror/rich/utils/height-estimates.d.ts +2 -0
  183. package/dist/internal/codemirror/rich/utils/height-estimates.d.ts.map +1 -0
  184. package/dist/internal/codemirror/rich/utils/height-estimates.js +82 -0
  185. package/dist/internal/codemirror/rich/utils/height-estimates.test.d.ts +2 -0
  186. package/dist/internal/codemirror/rich/utils/height-estimates.test.d.ts.map +1 -0
  187. package/dist/internal/codemirror/rich/utils/height-estimates.test.js +10 -0
  188. package/dist/internal/codemirror/rich/utils/images.d.ts +9 -0
  189. package/dist/internal/codemirror/rich/utils/images.d.ts.map +1 -0
  190. package/dist/internal/codemirror/rich/utils/images.js +103 -0
  191. package/dist/internal/codemirror/rich/utils/images.test.d.ts +2 -0
  192. package/dist/internal/codemirror/rich/utils/images.test.d.ts.map +1 -0
  193. package/dist/internal/codemirror/rich/utils/images.test.js +37 -0
  194. package/dist/internal/codemirror/rich/utils/indent.d.ts +38 -0
  195. package/dist/internal/codemirror/rich/utils/indent.d.ts.map +1 -0
  196. package/dist/internal/codemirror/rich/utils/indent.js +435 -0
  197. package/dist/internal/codemirror/rich/utils/indent.test.d.ts +2 -0
  198. package/dist/internal/codemirror/rich/utils/indent.test.d.ts.map +1 -0
  199. package/dist/internal/codemirror/rich/utils/indent.test.js +169 -0
  200. package/dist/internal/codemirror/rich/utils/inline-code.d.ts +7 -0
  201. package/dist/internal/codemirror/rich/utils/inline-code.d.ts.map +1 -0
  202. package/dist/internal/codemirror/rich/utils/inline-code.js +43 -0
  203. package/dist/internal/codemirror/rich/utils/inline-math.d.ts +6 -0
  204. package/dist/internal/codemirror/rich/utils/inline-math.d.ts.map +1 -0
  205. package/dist/internal/codemirror/rich/utils/inline-math.js +45 -0
  206. package/dist/internal/codemirror/rich/utils/inline-math.test.d.ts +2 -0
  207. package/dist/internal/codemirror/rich/utils/inline-math.test.d.ts.map +1 -0
  208. package/dist/internal/codemirror/rich/utils/inline-math.test.js +15 -0
  209. package/dist/internal/codemirror/rich/utils/links.d.ts +6 -0
  210. package/dist/internal/codemirror/rich/utils/links.d.ts.map +1 -0
  211. package/dist/internal/codemirror/rich/utils/links.js +36 -0
  212. package/dist/internal/codemirror/rich/utils/links.test.d.ts +2 -0
  213. package/dist/internal/codemirror/rich/utils/links.test.d.ts.map +1 -0
  214. package/dist/internal/codemirror/rich/utils/links.test.js +28 -0
  215. package/dist/internal/codemirror/rich/utils/list-callouts.d.ts +15 -0
  216. package/dist/internal/codemirror/rich/utils/list-callouts.d.ts.map +1 -0
  217. package/dist/internal/codemirror/rich/utils/list-callouts.js +41 -0
  218. package/dist/internal/codemirror/rich/utils/list-callouts.test.d.ts +2 -0
  219. package/dist/internal/codemirror/rich/utils/list-callouts.test.d.ts.map +1 -0
  220. package/dist/internal/codemirror/rich/utils/list-callouts.test.js +47 -0
  221. package/dist/internal/codemirror/rich/utils/measured-indent.d.ts +18 -0
  222. package/dist/internal/codemirror/rich/utils/measured-indent.d.ts.map +1 -0
  223. package/dist/internal/codemirror/rich/utils/measured-indent.js +419 -0
  224. package/dist/internal/codemirror/rich/utils/measured-indent.test.d.ts +2 -0
  225. package/dist/internal/codemirror/rich/utils/measured-indent.test.d.ts.map +1 -0
  226. package/dist/internal/codemirror/rich/utils/measured-indent.test.js +102 -0
  227. package/dist/internal/codemirror/rich/utils/ranges.d.ts +13 -0
  228. package/dist/internal/codemirror/rich/utils/ranges.d.ts.map +1 -0
  229. package/dist/internal/codemirror/rich/utils/ranges.js +42 -0
  230. package/dist/internal/codemirror/rich/utils/ranges.test.d.ts +2 -0
  231. package/dist/internal/codemirror/rich/utils/ranges.test.d.ts.map +1 -0
  232. package/dist/internal/codemirror/rich/utils/ranges.test.js +22 -0
  233. package/dist/internal/codemirror/rich/utils/tasks.d.ts +11 -0
  234. package/dist/internal/codemirror/rich/utils/tasks.d.ts.map +1 -0
  235. package/dist/internal/codemirror/rich/utils/tasks.js +23 -0
  236. package/dist/internal/codemirror/rich/utils/tasks.test.d.ts +2 -0
  237. package/dist/internal/codemirror/rich/utils/tasks.test.d.ts.map +1 -0
  238. package/dist/internal/codemirror/rich/utils/tasks.test.js +57 -0
  239. package/dist/internal/codemirror/rich/widgets/list-callout.d.ts +19 -0
  240. package/dist/internal/codemirror/rich/widgets/list-callout.d.ts.map +1 -0
  241. package/dist/internal/codemirror/rich/widgets/list-callout.js +58 -0
  242. package/dist/internal/codemirror/rich/widgets/preview-widgets.d.ts +50 -0
  243. package/dist/internal/codemirror/rich/widgets/preview-widgets.d.ts.map +1 -0
  244. package/dist/internal/codemirror/rich/widgets/preview-widgets.js +311 -0
  245. package/dist/internal/codemirror/rich/widgets/source-toggle.d.ts +4 -0
  246. package/dist/internal/codemirror/rich/widgets/source-toggle.d.ts.map +1 -0
  247. package/dist/internal/codemirror/rich/widgets/source-toggle.js +47 -0
  248. package/dist/internal/codemirror/rich/widgets/task-checkbox.d.ts +14 -0
  249. package/dist/internal/codemirror/rich/widgets/task-checkbox.d.ts.map +1 -0
  250. package/dist/internal/codemirror/rich/widgets/task-checkbox.js +54 -0
  251. package/dist/internal/doodle-dividers.d.ts +62 -0
  252. package/dist/internal/doodle-dividers.d.ts.map +1 -0
  253. package/dist/internal/doodle-dividers.js +103 -0
  254. package/dist/internal/task-states.d.ts +73 -0
  255. package/dist/internal/task-states.d.ts.map +1 -0
  256. package/dist/internal/task-states.js +27 -0
  257. package/dist/internal/task-states.test.d.ts +2 -0
  258. package/dist/internal/task-states.test.d.ts.map +1 -0
  259. package/dist/internal/task-states.test.js +36 -0
  260. package/dist/mira-code-editor.css +222 -0
  261. package/dist/mira-code-editor.d.ts +40 -0
  262. package/dist/mira-code-editor.d.ts.map +1 -0
  263. package/dist/mira-code-editor.js +1 -0
  264. package/dist/mira-code-editor.svelte +181 -0
  265. package/dist/mira-code-editor.svelte.d.ts +17 -0
  266. package/dist/mira-code-editor.svelte.d.ts.map +1 -0
  267. package/dist/mira-code-editor.test.d.ts +2 -0
  268. package/dist/mira-code-editor.test.d.ts.map +1 -0
  269. package/dist/mira-code-editor.test.js +93 -0
  270. package/dist/mira.svelte +581 -0
  271. package/dist/mira.svelte.d.ts +23 -0
  272. package/dist/mira.svelte.d.ts.map +1 -0
  273. package/dist/mode-position.d.ts +18 -0
  274. package/dist/mode-position.d.ts.map +1 -0
  275. package/dist/mode-position.js +99 -0
  276. package/dist/mode-position.test.d.ts +2 -0
  277. package/dist/mode-position.test.d.ts.map +1 -0
  278. package/dist/mode-position.test.js +60 -0
  279. package/dist/preview/adobe-gridtables.d.ts +11 -0
  280. package/dist/preview/code-language.d.ts +2 -0
  281. package/dist/preview/code-language.d.ts.map +1 -0
  282. package/dist/preview/code-language.js +58 -0
  283. package/dist/preview/code-language.test.d.ts +2 -0
  284. package/dist/preview/code-language.test.d.ts.map +1 -0
  285. package/dist/preview/code-language.test.js +12 -0
  286. package/dist/preview/components/callout.svelte +123 -0
  287. package/dist/preview/components/callout.svelte.d.ts +17 -0
  288. package/dist/preview/components/callout.svelte.d.ts.map +1 -0
  289. package/dist/preview/components/checkbox.svelte +151 -0
  290. package/dist/preview/components/checkbox.svelte.d.ts +12 -0
  291. package/dist/preview/components/checkbox.svelte.d.ts.map +1 -0
  292. package/dist/preview/components/code.svelte +146 -0
  293. package/dist/preview/components/code.svelte.d.ts +12 -0
  294. package/dist/preview/components/code.svelte.d.ts.map +1 -0
  295. package/dist/preview/components/embed.svelte +236 -0
  296. package/dist/preview/components/embed.svelte.d.ts +14 -0
  297. package/dist/preview/components/embed.svelte.d.ts.map +1 -0
  298. package/dist/preview/components/embedded-markdown-preview.svelte +53 -0
  299. package/dist/preview/components/embedded-markdown-preview.svelte.d.ts +12 -0
  300. package/dist/preview/components/embedded-markdown-preview.svelte.d.ts.map +1 -0
  301. package/dist/preview/components/frontmatter-property-name-input.svelte +207 -0
  302. package/dist/preview/components/frontmatter-property-name-input.svelte.d.ts +14 -0
  303. package/dist/preview/components/frontmatter-property-name-input.svelte.d.ts.map +1 -0
  304. package/dist/preview/components/frontmatter-property-text-input.svelte +228 -0
  305. package/dist/preview/components/frontmatter-property-text-input.svelte.d.ts +13 -0
  306. package/dist/preview/components/frontmatter-property-text-input.svelte.d.ts.map +1 -0
  307. package/dist/preview/components/frontmatter-property-value-input.svelte +232 -0
  308. package/dist/preview/components/frontmatter-property-value-input.svelte.d.ts +13 -0
  309. package/dist/preview/components/frontmatter-property-value-input.svelte.d.ts.map +1 -0
  310. package/dist/preview/components/frontmatter-utils.d.ts +2 -0
  311. package/dist/preview/components/frontmatter-utils.d.ts.map +1 -0
  312. package/dist/preview/components/frontmatter-utils.js +1 -0
  313. package/dist/preview/components/frontmatter.svelte +857 -0
  314. package/dist/preview/components/frontmatter.svelte.d.ts +18 -0
  315. package/dist/preview/components/frontmatter.svelte.d.ts.map +1 -0
  316. package/dist/preview/components/icon.svelte +225 -0
  317. package/dist/preview/components/icon.svelte.d.ts +9 -0
  318. package/dist/preview/components/icon.svelte.d.ts.map +1 -0
  319. package/dist/preview/components/icon.test.d.ts +2 -0
  320. package/dist/preview/components/icon.test.d.ts.map +1 -0
  321. package/dist/preview/components/icon.test.js +20 -0
  322. package/dist/preview/components/image.svelte +266 -0
  323. package/dist/preview/components/image.svelte.d.ts +10 -0
  324. package/dist/preview/components/image.svelte.d.ts.map +1 -0
  325. package/dist/preview/components/link.svelte +382 -0
  326. package/dist/preview/components/link.svelte.d.ts +16 -0
  327. package/dist/preview/components/link.svelte.d.ts.map +1 -0
  328. package/dist/preview/components/list-callout-control.svelte +138 -0
  329. package/dist/preview/components/list-callout-control.svelte.d.ts +10 -0
  330. package/dist/preview/components/list-callout-control.svelte.d.ts.map +1 -0
  331. package/dist/preview/components/list-callout-marker.svelte +108 -0
  332. package/dist/preview/components/list-callout-marker.svelte.d.ts +15 -0
  333. package/dist/preview/components/list-callout-marker.svelte.d.ts.map +1 -0
  334. package/dist/preview/components/list-item.svelte +161 -0
  335. package/dist/preview/components/list-item.svelte.d.ts +11 -0
  336. package/dist/preview/components/list-item.svelte.d.ts.map +1 -0
  337. package/dist/preview/components/tag.svelte +18 -0
  338. package/dist/preview/components/tag.svelte.d.ts +10 -0
  339. package/dist/preview/components/tag.svelte.d.ts.map +1 -0
  340. package/dist/preview/components/task-checkbox-control.svelte +113 -0
  341. package/dist/preview/components/task-checkbox-control.svelte.d.ts +14 -0
  342. package/dist/preview/components/task-checkbox-control.svelte.d.ts.map +1 -0
  343. package/dist/preview/editable-markdown-preview/behavior.d.ts +6 -0
  344. package/dist/preview/editable-markdown-preview/behavior.d.ts.map +1 -0
  345. package/dist/preview/editable-markdown-preview/behavior.js +57 -0
  346. package/dist/preview/editable-markdown-preview/behavior.test.d.ts +2 -0
  347. package/dist/preview/editable-markdown-preview/behavior.test.d.ts.map +1 -0
  348. package/dist/preview/editable-markdown-preview/behavior.test.js +36 -0
  349. package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte +386 -0
  350. package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte.d.ts +35 -0
  351. package/dist/preview/editable-markdown-preview/editable-markdown-surface.svelte.d.ts.map +1 -0
  352. package/dist/preview/editable-markdown-preview/editor-surface.svelte +228 -0
  353. package/dist/preview/editable-markdown-preview/editor-surface.svelte.d.ts +22 -0
  354. package/dist/preview/editable-markdown-preview/editor-surface.svelte.d.ts.map +1 -0
  355. package/dist/preview/editable-markdown-preview/serialized-writer.d.ts +36 -0
  356. package/dist/preview/editable-markdown-preview/serialized-writer.d.ts.map +1 -0
  357. package/dist/preview/editable-markdown-preview/serialized-writer.js +109 -0
  358. package/dist/preview/editable-markdown-preview/serialized-writer.test.d.ts +2 -0
  359. package/dist/preview/editable-markdown-preview/serialized-writer.test.d.ts.map +1 -0
  360. package/dist/preview/editable-markdown-preview/serialized-writer.test.js +59 -0
  361. package/dist/preview/editable-markdown-preview.svelte +195 -0
  362. package/dist/preview/editable-markdown-preview.svelte.d.ts +37 -0
  363. package/dist/preview/editable-markdown-preview.svelte.d.ts.map +1 -0
  364. package/dist/preview/embed-target.d.ts +13 -0
  365. package/dist/preview/embed-target.d.ts.map +1 -0
  366. package/dist/preview/embed-target.js +133 -0
  367. package/dist/preview/embed-target.test.d.ts +2 -0
  368. package/dist/preview/embed-target.test.d.ts.map +1 -0
  369. package/dist/preview/embed-target.test.js +78 -0
  370. package/dist/preview/file-embed.svelte +56 -0
  371. package/dist/preview/file-embed.svelte.d.ts +32 -0
  372. package/dist/preview/file-embed.svelte.d.ts.map +1 -0
  373. package/dist/preview/frontmatter/controller.svelte.d.ts +58 -0
  374. package/dist/preview/frontmatter/controller.svelte.d.ts.map +1 -0
  375. package/dist/preview/frontmatter/controller.svelte.js +195 -0
  376. package/dist/preview/frontmatter/defaults.d.ts +3 -0
  377. package/dist/preview/frontmatter/defaults.d.ts.map +1 -0
  378. package/dist/preview/frontmatter/defaults.js +32 -0
  379. package/dist/preview/frontmatter/frontmatter.test.d.ts +2 -0
  380. package/dist/preview/frontmatter/frontmatter.test.d.ts.map +1 -0
  381. package/dist/preview/frontmatter/frontmatter.test.js +190 -0
  382. package/dist/preview/frontmatter/index.d.ts +12 -0
  383. package/dist/preview/frontmatter/index.d.ts.map +1 -0
  384. package/dist/preview/frontmatter/index.js +11 -0
  385. package/dist/preview/frontmatter/manager.d.ts +28 -0
  386. package/dist/preview/frontmatter/manager.d.ts.map +1 -0
  387. package/dist/preview/frontmatter/manager.js +46 -0
  388. package/dist/preview/frontmatter/parse.d.ts +4 -0
  389. package/dist/preview/frontmatter/parse.d.ts.map +1 -0
  390. package/dist/preview/frontmatter/parse.js +49 -0
  391. package/dist/preview/frontmatter/predicates.d.ts +3 -0
  392. package/dist/preview/frontmatter/predicates.d.ts.map +1 -0
  393. package/dist/preview/frontmatter/predicates.js +7 -0
  394. package/dist/preview/frontmatter/properties.d.ts +13 -0
  395. package/dist/preview/frontmatter/properties.d.ts.map +1 -0
  396. package/dist/preview/frontmatter/properties.js +250 -0
  397. package/dist/preview/frontmatter/serialize.d.ts +3 -0
  398. package/dist/preview/frontmatter/serialize.d.ts.map +1 -0
  399. package/dist/preview/frontmatter/serialize.js +10 -0
  400. package/dist/preview/frontmatter/suggestions.d.ts +11 -0
  401. package/dist/preview/frontmatter/suggestions.d.ts.map +1 -0
  402. package/dist/preview/frontmatter/suggestions.js +91 -0
  403. package/dist/preview/frontmatter/suggestions.test.d.ts +2 -0
  404. package/dist/preview/frontmatter/suggestions.test.d.ts.map +1 -0
  405. package/dist/preview/frontmatter/suggestions.test.js +45 -0
  406. package/dist/preview/frontmatter/types.d.ts +66 -0
  407. package/dist/preview/frontmatter/types.d.ts.map +1 -0
  408. package/dist/preview/frontmatter/types.js +27 -0
  409. package/dist/preview/frontmatter/values.d.ts +5 -0
  410. package/dist/preview/frontmatter/values.d.ts.map +1 -0
  411. package/dist/preview/frontmatter/values.js +96 -0
  412. package/dist/preview/frontmatter/widgets.d.ts +9 -0
  413. package/dist/preview/frontmatter/widgets.d.ts.map +1 -0
  414. package/dist/preview/frontmatter/widgets.js +104 -0
  415. package/dist/preview/index.d.ts +18 -0
  416. package/dist/preview/index.d.ts.map +1 -0
  417. package/dist/preview/index.js +15 -0
  418. package/dist/preview/markdown-embed.svelte +80 -0
  419. package/dist/preview/markdown-embed.svelte.d.ts +27 -0
  420. package/dist/preview/markdown-embed.svelte.d.ts.map +1 -0
  421. package/dist/preview/markdown-outline.svelte +256 -0
  422. package/dist/preview/markdown-outline.svelte.d.ts +15 -0
  423. package/dist/preview/markdown-outline.svelte.d.ts.map +1 -0
  424. package/dist/preview/markdown-preview.svelte +500 -0
  425. package/dist/preview/markdown-preview.svelte.d.ts +30 -0
  426. package/dist/preview/markdown-preview.svelte.d.ts.map +1 -0
  427. package/dist/preview/note-link.svelte +78 -0
  428. package/dist/preview/note-link.svelte.d.ts +25 -0
  429. package/dist/preview/note-link.svelte.d.ts.map +1 -0
  430. package/dist/preview/outline.d.ts +16 -0
  431. package/dist/preview/outline.d.ts.map +1 -0
  432. package/dist/preview/outline.js +54 -0
  433. package/dist/preview/outline.test.d.ts +2 -0
  434. package/dist/preview/outline.test.d.ts.map +1 -0
  435. package/dist/preview/outline.test.js +98 -0
  436. package/dist/preview/portable-surfaces.test.d.ts +2 -0
  437. package/dist/preview/portable-surfaces.test.d.ts.map +1 -0
  438. package/dist/preview/portable-surfaces.test.js +482 -0
  439. package/dist/preview/preview.test.d.ts +2 -0
  440. package/dist/preview/preview.test.d.ts.map +1 -0
  441. package/dist/preview/preview.test.js +124 -0
  442. package/dist/preview/rehype-code-context.d.ts +5 -0
  443. package/dist/preview/rehype-code-context.d.ts.map +1 -0
  444. package/dist/preview/rehype-code-context.js +17 -0
  445. package/dist/preview/rehype-highlight-lines.d.ts +9 -0
  446. package/dist/preview/rehype-highlight-lines.d.ts.map +1 -0
  447. package/dist/preview/rehype-highlight-lines.js +257 -0
  448. package/dist/preview/rehype-table-spans.d.ts +4 -0
  449. package/dist/preview/rehype-table-spans.d.ts.map +1 -0
  450. package/dist/preview/rehype-table-spans.js +120 -0
  451. package/dist/preview/remark/callouts.d.ts +4 -0
  452. package/dist/preview/remark/callouts.d.ts.map +1 -0
  453. package/dist/preview/remark/callouts.js +81 -0
  454. package/dist/preview/remark/callouts.test.d.ts +2 -0
  455. package/dist/preview/remark/callouts.test.d.ts.map +1 -0
  456. package/dist/preview/remark/callouts.test.js +23 -0
  457. package/dist/preview/remark/custom-checklists.d.ts +25 -0
  458. package/dist/preview/remark/custom-checklists.d.ts.map +1 -0
  459. package/dist/preview/remark/custom-checklists.js +204 -0
  460. package/dist/preview/remark/custom-checklists.test.d.ts +2 -0
  461. package/dist/preview/remark/custom-checklists.test.d.ts.map +1 -0
  462. package/dist/preview/remark/custom-checklists.test.js +51 -0
  463. package/dist/preview/remark/external-links.d.ts +4 -0
  464. package/dist/preview/remark/external-links.d.ts.map +1 -0
  465. package/dist/preview/remark/external-links.js +34 -0
  466. package/dist/preview/remark/hast.d.ts +6 -0
  467. package/dist/preview/remark/hast.d.ts.map +1 -0
  468. package/dist/preview/remark/hast.js +60 -0
  469. package/dist/preview/remark/headings.d.ts +8 -0
  470. package/dist/preview/remark/headings.d.ts.map +1 -0
  471. package/dist/preview/remark/headings.js +40 -0
  472. package/dist/preview/remark/links.test.d.ts +2 -0
  473. package/dist/preview/remark/links.test.d.ts.map +1 -0
  474. package/dist/preview/remark/links.test.js +62 -0
  475. package/dist/preview/remark/list-callouts.d.ts +14 -0
  476. package/dist/preview/remark/list-callouts.d.ts.map +1 -0
  477. package/dist/preview/remark/list-callouts.js +91 -0
  478. package/dist/preview/remark/multimarkdown-table.d.ts +11 -0
  479. package/dist/preview/remark/multimarkdown-table.d.ts.map +1 -0
  480. package/dist/preview/remark/multimarkdown-table.js +138 -0
  481. package/dist/preview/remark/parity.test.d.ts +2 -0
  482. package/dist/preview/remark/parity.test.d.ts.map +1 -0
  483. package/dist/preview/remark/parity.test.js +105 -0
  484. package/dist/preview/remark/pathlink.d.ts +4 -0
  485. package/dist/preview/remark/pathlink.d.ts.map +1 -0
  486. package/dist/preview/remark/pathlink.js +26 -0
  487. package/dist/preview/remark/tags.d.ts +4 -0
  488. package/dist/preview/remark/tags.d.ts.map +1 -0
  489. package/dist/preview/remark/tags.js +22 -0
  490. package/dist/preview/remark/utils.d.ts +12 -0
  491. package/dist/preview/remark/utils.d.ts.map +1 -0
  492. package/dist/preview/remark/utils.js +74 -0
  493. package/dist/preview/remark/wikilink.d.ts +4 -0
  494. package/dist/preview/remark/wikilink.d.ts.map +1 -0
  495. package/dist/preview/remark/wikilink.js +23 -0
  496. package/dist/preview/remark.d.ts +12 -0
  497. package/dist/preview/remark.d.ts.map +1 -0
  498. package/dist/preview/remark.js +11 -0
  499. package/dist/preview/renderer/context.svelte.d.ts +37 -0
  500. package/dist/preview/renderer/context.svelte.d.ts.map +1 -0
  501. package/dist/preview/renderer/context.svelte.js +47 -0
  502. package/dist/preview/renderer/markdown.svelte +109 -0
  503. package/dist/preview/renderer/markdown.svelte.d.ts +28 -0
  504. package/dist/preview/renderer/markdown.svelte.d.ts.map +1 -0
  505. package/dist/preview/renderer/renderer.svelte +122 -0
  506. package/dist/preview/renderer/renderer.svelte.d.ts +9 -0
  507. package/dist/preview/renderer/renderer.svelte.d.ts.map +1 -0
  508. package/dist/preview/renderer/types.d.ts +20 -0
  509. package/dist/preview/renderer/types.d.ts.map +1 -0
  510. package/dist/preview/renderer/types.js +1 -0
  511. package/dist/preview/renderer/utils.d.ts +9 -0
  512. package/dist/preview/renderer/utils.d.ts.map +1 -0
  513. package/dist/preview/renderer/utils.js +135 -0
  514. package/dist/preview/styles/blockquotes-footnotes.css +78 -0
  515. package/dist/preview/styles/callouts.css +171 -0
  516. package/dist/preview/styles/code-katex.css +213 -0
  517. package/dist/preview/styles/editor-shared.css +132 -0
  518. package/dist/preview/styles/frontmatter-collapsible.css +94 -0
  519. package/dist/preview/styles/frontmatter-properties.css +532 -0
  520. package/dist/preview/styles/frontmatter-properties.test.d.ts +2 -0
  521. package/dist/preview/styles/frontmatter-properties.test.d.ts.map +1 -0
  522. package/dist/preview/styles/frontmatter-properties.test.js +57 -0
  523. package/dist/preview/styles/headings.css +183 -0
  524. package/dist/preview/styles/images.css +177 -0
  525. package/dist/preview/styles/links-embeds-tags.css +275 -0
  526. package/dist/preview/styles/list-callouts.css +281 -0
  527. package/dist/preview/styles/lists-tasks.css +638 -0
  528. package/dist/preview/styles/live-preview.css +58 -0
  529. package/dist/preview/styles/mermaid-highlight.css +112 -0
  530. package/dist/preview/styles/outline.css +219 -0
  531. package/dist/preview/styles/reading-mode.css +151 -0
  532. package/dist/preview/styles/source-mode.css +498 -0
  533. package/dist/preview/styles/source-mode.test.d.ts +2 -0
  534. package/dist/preview/styles/source-mode.test.d.ts.map +1 -0
  535. package/dist/preview/styles/source-mode.test.js +13 -0
  536. package/dist/preview/styles/surfaces.css +56 -0
  537. package/dist/preview/styles/tables.css +550 -0
  538. package/dist/preview/styles/tokens.css +269 -0
  539. package/dist/preview/styles/utilities.css +700 -0
  540. package/dist/preview/styles.css +22 -0
  541. package/dist/preview/test-utils.d.ts +3 -0
  542. package/dist/preview/test-utils.d.ts.map +1 -0
  543. package/dist/preview/test-utils.js +15 -0
  544. package/dist/styles.css +139 -0
  545. package/dist/tables/adobe-gridtables.d.ts +6 -0
  546. package/dist/tables/editor-column.svelte +136 -0
  547. package/dist/tables/editor-column.svelte.d.ts +12 -0
  548. package/dist/tables/editor-column.svelte.d.ts.map +1 -0
  549. package/dist/tables/editor-table.svelte +967 -0
  550. package/dist/tables/editor-table.svelte.d.ts +12 -0
  551. package/dist/tables/editor-table.svelte.d.ts.map +1 -0
  552. package/dist/tables/extension.d.ts +19 -0
  553. package/dist/tables/extension.d.ts.map +1 -0
  554. package/dist/tables/extension.js +189 -0
  555. package/dist/tables/extension.test.d.ts +2 -0
  556. package/dist/tables/extension.test.d.ts.map +1 -0
  557. package/dist/tables/extension.test.js +100 -0
  558. package/dist/tables/from-markdown.d.ts +1 -0
  559. package/dist/tables/from-markdown.js +378 -0
  560. package/dist/tables/grid-editor-column.svelte +127 -0
  561. package/dist/tables/grid-editor-column.svelte.d.ts +10 -0
  562. package/dist/tables/grid-editor-column.svelte.d.ts.map +1 -0
  563. package/dist/tables/grid-editor-column.test.d.ts +2 -0
  564. package/dist/tables/grid-editor-column.test.d.ts.map +1 -0
  565. package/dist/tables/grid-editor-column.test.js +27 -0
  566. package/dist/tables/grid-editor-table.svelte +1260 -0
  567. package/dist/tables/grid-editor-table.svelte.d.ts +12 -0
  568. package/dist/tables/grid-editor-table.svelte.d.ts.map +1 -0
  569. package/dist/tables/grid-table-extension.d.ts +14 -0
  570. package/dist/tables/grid-table-extension.d.ts.map +1 -0
  571. package/dist/tables/grid-table-extension.js +183 -0
  572. package/dist/tables/grid-table.d.ts +141 -0
  573. package/dist/tables/grid-table.d.ts.map +1 -0
  574. package/dist/tables/grid-table.js +425 -0
  575. package/dist/tables/grid-table.test.d.ts +2 -0
  576. package/dist/tables/grid-table.test.d.ts.map +1 -0
  577. package/dist/tables/grid-table.test.js +140 -0
  578. package/dist/tables/index.d.ts +13 -0
  579. package/dist/tables/index.d.ts.map +1 -0
  580. package/dist/tables/index.js +12 -0
  581. package/dist/tables/index.test.d.ts +2 -0
  582. package/dist/tables/index.test.d.ts.map +1 -0
  583. package/dist/tables/index.test.js +7 -0
  584. package/dist/tables/inline-editor-extensions.d.ts +3 -0
  585. package/dist/tables/inline-editor-extensions.d.ts.map +1 -0
  586. package/dist/tables/inline-editor-extensions.js +16 -0
  587. package/dist/tables/inline-editor-extensions.test.d.ts +2 -0
  588. package/dist/tables/inline-editor-extensions.test.d.ts.map +1 -0
  589. package/dist/tables/inline-editor-extensions.test.js +23 -0
  590. package/dist/tables/markdown-table-column-head.svelte +103 -0
  591. package/dist/tables/markdown-table-column-head.svelte.d.ts +14 -0
  592. package/dist/tables/markdown-table-column-head.svelte.d.ts.map +1 -0
  593. package/dist/tables/markdown-table-data-cell.svelte +121 -0
  594. package/dist/tables/markdown-table-data-cell.svelte.d.ts +24 -0
  595. package/dist/tables/markdown-table-data-cell.svelte.d.ts.map +1 -0
  596. package/dist/tables/markdown-table-dnd.d.ts +6 -0
  597. package/dist/tables/markdown-table-dnd.d.ts.map +1 -0
  598. package/dist/tables/markdown-table-dnd.js +6 -0
  599. package/dist/tables/markdown-table-row-gutter-cell.svelte +161 -0
  600. package/dist/tables/markdown-table-row-gutter-cell.svelte.d.ts +15 -0
  601. package/dist/tables/markdown-table-row-gutter-cell.svelte.d.ts.map +1 -0
  602. package/dist/tables/menu-component.svelte +109 -0
  603. package/dist/tables/menu-component.svelte.d.ts +8 -0
  604. package/dist/tables/menu-component.svelte.d.ts.map +1 -0
  605. package/dist/tables/menu.d.ts +21 -0
  606. package/dist/tables/menu.d.ts.map +1 -0
  607. package/dist/tables/menu.js +41 -0
  608. package/dist/tables/pipe-table.d.ts +4 -0
  609. package/dist/tables/pipe-table.d.ts.map +1 -0
  610. package/dist/tables/pipe-table.js +62 -0
  611. package/dist/tables/pipe-table.test.d.ts +2 -0
  612. package/dist/tables/pipe-table.test.d.ts.map +1 -0
  613. package/dist/tables/pipe-table.test.js +13 -0
  614. package/dist/tables/syntax.d.ts +1 -0
  615. package/dist/tables/syntax.js +436 -0
  616. package/dist/tables/table-line-scroll-sync.d.ts +5 -0
  617. package/dist/tables/table-line-scroll-sync.d.ts.map +1 -0
  618. package/dist/tables/table-line-scroll-sync.js +123 -0
  619. package/dist/tables/table-node.d.ts +92 -0
  620. package/dist/tables/table-node.d.ts.map +1 -0
  621. package/dist/tables/table-node.js +514 -0
  622. package/dist/tables/table-node.test.d.ts +2 -0
  623. package/dist/tables/table-node.test.d.ts.map +1 -0
  624. package/dist/tables/table-node.test.js +167 -0
  625. package/dist/tables/types.d.ts +25 -0
  626. package/dist/tables/types.d.ts.map +1 -0
  627. package/dist/tables/types.js +8 -0
  628. package/dist/tables/utils.d.ts +4 -0
  629. package/dist/tables/utils.d.ts.map +1 -0
  630. package/dist/tables/utils.js +16 -0
  631. package/dist/tables/widgets/grid-table-widget.d.ts +3 -0
  632. package/dist/tables/widgets/grid-table-widget.d.ts.map +1 -0
  633. package/dist/tables/widgets/grid-table-widget.js +26 -0
  634. package/dist/tables/widgets/pipe-table-widget.d.ts +3 -0
  635. package/dist/tables/widgets/pipe-table-widget.d.ts.map +1 -0
  636. package/dist/tables/widgets/pipe-table-widget.js +25 -0
  637. package/dist/tables/widgets/source-button.d.ts +2 -0
  638. package/dist/tables/widgets/source-button.d.ts.map +1 -0
  639. package/dist/tables/widgets/source-button.js +20 -0
  640. package/dist/tables/widgets/source-button.test.d.ts +2 -0
  641. package/dist/tables/widgets/source-button.test.d.ts.map +1 -0
  642. package/dist/tables/widgets/source-button.test.js +11 -0
  643. package/dist/test-setup.d.ts +2 -0
  644. package/dist/test-setup.d.ts.map +1 -0
  645. package/dist/test-setup.js +31 -0
  646. package/dist/themes/_contract.css +88 -0
  647. package/dist/themes/_mira-palette.css +187 -0
  648. package/dist/themes/_obsidian-palette.css +183 -0
  649. package/dist/themes/mira.css +2 -0
  650. package/dist/themes/obsidian.css +2 -0
  651. package/dist/themes/theme-contract.test.d.ts +2 -0
  652. package/dist/themes/theme-contract.test.d.ts.map +1 -0
  653. package/dist/themes/theme-contract.test.js +88 -0
  654. package/dist/themes.css +3 -0
  655. package/dist/types.d.ts +55 -0
  656. package/dist/types.d.ts.map +1 -0
  657. package/dist/types.js +1 -0
  658. package/dist/ui/appearance/index.d.ts +6 -0
  659. package/dist/ui/appearance/index.d.ts.map +1 -0
  660. package/dist/ui/appearance/index.js +9 -0
  661. package/dist/ui/button/button.shared.d.ts +59 -0
  662. package/dist/ui/button/button.shared.d.ts.map +1 -0
  663. package/dist/ui/button/button.shared.js +25 -0
  664. package/dist/ui/button/button.svelte +42 -0
  665. package/dist/ui/button/button.svelte.d.ts +5 -0
  666. package/dist/ui/button/button.svelte.d.ts.map +1 -0
  667. package/dist/ui/button/index.d.ts +4 -0
  668. package/dist/ui/button/index.d.ts.map +1 -0
  669. package/dist/ui/button/index.js +5 -0
  670. package/dist/ui/context-menu/context-menu-checkbox-item.svelte +40 -0
  671. package/dist/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +10 -0
  672. package/dist/ui/context-menu/context-menu-checkbox-item.svelte.d.ts.map +1 -0
  673. package/dist/ui/context-menu/context-menu-content.svelte +61 -0
  674. package/dist/ui/context-menu/context-menu-content.svelte.d.ts +8 -0
  675. package/dist/ui/context-menu/context-menu-content.svelte.d.ts.map +1 -0
  676. package/dist/ui/context-menu/context-menu-group-heading.svelte +24 -0
  677. package/dist/ui/context-menu/context-menu-group-heading.svelte.d.ts +8 -0
  678. package/dist/ui/context-menu/context-menu-group-heading.svelte.d.ts.map +1 -0
  679. package/dist/ui/context-menu/context-menu-group.svelte +12 -0
  680. package/dist/ui/context-menu/context-menu-group.svelte.d.ts +5 -0
  681. package/dist/ui/context-menu/context-menu-group.svelte.d.ts.map +1 -0
  682. package/dist/ui/context-menu/context-menu-item.svelte +27 -0
  683. package/dist/ui/context-menu/context-menu-item.svelte.d.ts +9 -0
  684. package/dist/ui/context-menu/context-menu-item.svelte.d.ts.map +1 -0
  685. package/dist/ui/context-menu/context-menu-label.svelte +27 -0
  686. package/dist/ui/context-menu/context-menu-label.svelte.d.ts +9 -0
  687. package/dist/ui/context-menu/context-menu-label.svelte.d.ts.map +1 -0
  688. package/dist/ui/context-menu/context-menu-radio-group.svelte +16 -0
  689. package/dist/ui/context-menu/context-menu-radio-group.svelte.d.ts +5 -0
  690. package/dist/ui/context-menu/context-menu-radio-group.svelte.d.ts.map +1 -0
  691. package/dist/ui/context-menu/context-menu-radio-item.svelte +33 -0
  692. package/dist/ui/context-menu/context-menu-radio-item.svelte.d.ts +5 -0
  693. package/dist/ui/context-menu/context-menu-radio-item.svelte.d.ts.map +1 -0
  694. package/dist/ui/context-menu/context-menu-root.svelte +17 -0
  695. package/dist/ui/context-menu/context-menu-root.svelte.d.ts +4 -0
  696. package/dist/ui/context-menu/context-menu-root.svelte.d.ts.map +1 -0
  697. package/dist/ui/context-menu/context-menu-separator.svelte +17 -0
  698. package/dist/ui/context-menu/context-menu-separator.svelte.d.ts +5 -0
  699. package/dist/ui/context-menu/context-menu-separator.svelte.d.ts.map +1 -0
  700. package/dist/ui/context-menu/context-menu-shortcut.svelte +20 -0
  701. package/dist/ui/context-menu/context-menu-shortcut.svelte.d.ts +6 -0
  702. package/dist/ui/context-menu/context-menu-shortcut.svelte.d.ts.map +1 -0
  703. package/dist/ui/context-menu/context-menu-sub-content.svelte +20 -0
  704. package/dist/ui/context-menu/context-menu-sub-content.svelte.d.ts +5 -0
  705. package/dist/ui/context-menu/context-menu-sub-content.svelte.d.ts.map +1 -0
  706. package/dist/ui/context-menu/context-menu-sub-trigger.svelte +29 -0
  707. package/dist/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +9 -0
  708. package/dist/ui/context-menu/context-menu-sub-trigger.svelte.d.ts.map +1 -0
  709. package/dist/ui/context-menu/context-menu-trigger.svelte +29 -0
  710. package/dist/ui/context-menu/context-menu-trigger.svelte.d.ts +5 -0
  711. package/dist/ui/context-menu/context-menu-trigger.svelte.d.ts.map +1 -0
  712. package/dist/ui/context-menu/index.d.ts +17 -0
  713. package/dist/ui/context-menu/index.d.ts.map +1 -0
  714. package/dist/ui/context-menu/index.js +19 -0
  715. package/dist/ui/dialog/dialog-close.svelte +8 -0
  716. package/dist/ui/dialog/dialog-close.svelte.d.ts +5 -0
  717. package/dist/ui/dialog/dialog-close.svelte.d.ts.map +1 -0
  718. package/dist/ui/dialog/dialog-content.svelte +66 -0
  719. package/dist/ui/dialog/dialog-content.svelte.d.ts +12 -0
  720. package/dist/ui/dialog/dialog-content.svelte.d.ts.map +1 -0
  721. package/dist/ui/dialog/dialog-description.svelte +17 -0
  722. package/dist/ui/dialog/dialog-description.svelte.d.ts +5 -0
  723. package/dist/ui/dialog/dialog-description.svelte.d.ts.map +1 -0
  724. package/dist/ui/dialog/dialog-footer.svelte +23 -0
  725. package/dist/ui/dialog/dialog-footer.svelte.d.ts +6 -0
  726. package/dist/ui/dialog/dialog-footer.svelte.d.ts.map +1 -0
  727. package/dist/ui/dialog/dialog-header.svelte +20 -0
  728. package/dist/ui/dialog/dialog-header.svelte.d.ts +6 -0
  729. package/dist/ui/dialog/dialog-header.svelte.d.ts.map +1 -0
  730. package/dist/ui/dialog/dialog-overlay.svelte +21 -0
  731. package/dist/ui/dialog/dialog-overlay.svelte.d.ts +5 -0
  732. package/dist/ui/dialog/dialog-overlay.svelte.d.ts.map +1 -0
  733. package/dist/ui/dialog/dialog-title.svelte +17 -0
  734. package/dist/ui/dialog/dialog-title.svelte.d.ts +5 -0
  735. package/dist/ui/dialog/dialog-title.svelte.d.ts.map +1 -0
  736. package/dist/ui/dialog/dialog-trigger.svelte +8 -0
  737. package/dist/ui/dialog/dialog-trigger.svelte.d.ts +5 -0
  738. package/dist/ui/dialog/dialog-trigger.svelte.d.ts.map +1 -0
  739. package/dist/ui/dialog/index.d.ts +12 -0
  740. package/dist/ui/dialog/index.d.ts.map +1 -0
  741. package/dist/ui/dialog/index.js +14 -0
  742. package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +43 -0
  743. package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +10 -0
  744. package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts.map +1 -0
  745. package/dist/ui/dropdown-menu/dropdown-menu-content.svelte +63 -0
  746. package/dist/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +8 -0
  747. package/dist/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts.map +1 -0
  748. package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
  749. package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +9 -0
  750. package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts.map +1 -0
  751. package/dist/ui/dropdown-menu/dropdown-menu-group.svelte +14 -0
  752. package/dist/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +5 -0
  753. package/dist/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts.map +1 -0
  754. package/dist/ui/dropdown-menu/dropdown-menu-item.svelte +27 -0
  755. package/dist/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +9 -0
  756. package/dist/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts.map +1 -0
  757. package/dist/ui/dropdown-menu/dropdown-menu-label.svelte +24 -0
  758. package/dist/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +9 -0
  759. package/dist/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts.map +1 -0
  760. package/dist/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  761. package/dist/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +5 -0
  762. package/dist/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts.map +1 -0
  763. package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte +33 -0
  764. package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +5 -0
  765. package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts.map +1 -0
  766. package/dist/ui/dropdown-menu/dropdown-menu-root.svelte +27 -0
  767. package/dist/ui/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
  768. package/dist/ui/dropdown-menu/dropdown-menu-root.svelte.d.ts.map +1 -0
  769. package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte +17 -0
  770. package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +5 -0
  771. package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts.map +1 -0
  772. package/dist/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
  773. package/dist/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +6 -0
  774. package/dist/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts.map +1 -0
  775. package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
  776. package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +5 -0
  777. package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts.map +1 -0
  778. package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
  779. package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +8 -0
  780. package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts.map +1 -0
  781. package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte +29 -0
  782. package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +5 -0
  783. package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts.map +1 -0
  784. package/dist/ui/dropdown-menu/index.d.ts +17 -0
  785. package/dist/ui/dropdown-menu/index.d.ts.map +1 -0
  786. package/dist/ui/dropdown-menu/index.js +17 -0
  787. package/dist/ui/index.d.ts +13 -0
  788. package/dist/ui/index.d.ts.map +1 -0
  789. package/dist/ui/index.js +12 -0
  790. package/dist/ui/index.test.d.ts +2 -0
  791. package/dist/ui/index.test.d.ts.map +1 -0
  792. package/dist/ui/index.test.js +7 -0
  793. package/dist/ui/internal/overlay-portal-context.d.ts +19 -0
  794. package/dist/ui/internal/overlay-portal-context.d.ts.map +1 -0
  795. package/dist/ui/internal/overlay-portal-context.js +39 -0
  796. package/dist/ui/popover/index.d.ts +7 -0
  797. package/dist/ui/popover/index.d.ts.map +1 -0
  798. package/dist/ui/popover/index.js +6 -0
  799. package/dist/ui/popover/popover-content.svelte +65 -0
  800. package/dist/ui/popover/popover-content.svelte.d.ts +8 -0
  801. package/dist/ui/popover/popover-content.svelte.d.ts.map +1 -0
  802. package/dist/ui/popover/popover-root.svelte +15 -0
  803. package/dist/ui/popover/popover-root.svelte.d.ts +4 -0
  804. package/dist/ui/popover/popover-root.svelte.d.ts.map +1 -0
  805. package/dist/ui/popover/popover-trigger.svelte +23 -0
  806. package/dist/ui/popover/popover-trigger.svelte.d.ts +5 -0
  807. package/dist/ui/popover/popover-trigger.svelte.d.ts.map +1 -0
  808. package/dist/ui/scroll-area/index.d.ts +2 -0
  809. package/dist/ui/scroll-area/index.d.ts.map +1 -0
  810. package/dist/ui/scroll-area/index.js +1 -0
  811. package/dist/ui/scroll-area/scroll-area.svelte +14 -0
  812. package/dist/ui/scroll-area/scroll-area.svelte.d.ts +9 -0
  813. package/dist/ui/scroll-area/scroll-area.svelte.d.ts.map +1 -0
  814. package/dist/ui/separator/index.d.ts +2 -0
  815. package/dist/ui/separator/index.d.ts.map +1 -0
  816. package/dist/ui/separator/index.js +1 -0
  817. package/dist/ui/separator/separator.svelte +14 -0
  818. package/dist/ui/separator/separator.svelte.d.ts +8 -0
  819. package/dist/ui/separator/separator.svelte.d.ts.map +1 -0
  820. package/dist/ui/styles.css +760 -0
  821. package/dist/ui/styles.test.d.ts +2 -0
  822. package/dist/ui/styles.test.d.ts.map +1 -0
  823. package/dist/ui/styles.test.js +26 -0
  824. package/dist/ui/table/index.d.ts +10 -0
  825. package/dist/ui/table/index.d.ts.map +1 -0
  826. package/dist/ui/table/index.js +11 -0
  827. package/dist/ui/table/table-body.svelte +20 -0
  828. package/dist/ui/table/table-body.svelte.d.ts +6 -0
  829. package/dist/ui/table/table-body.svelte.d.ts.map +1 -0
  830. package/dist/ui/table/table-caption.svelte +20 -0
  831. package/dist/ui/table/table-caption.svelte.d.ts +6 -0
  832. package/dist/ui/table/table-caption.svelte.d.ts.map +1 -0
  833. package/dist/ui/table/table-cell.svelte +23 -0
  834. package/dist/ui/table/table-cell.svelte.d.ts +6 -0
  835. package/dist/ui/table/table-cell.svelte.d.ts.map +1 -0
  836. package/dist/ui/table/table-footer.svelte +23 -0
  837. package/dist/ui/table/table-footer.svelte.d.ts +6 -0
  838. package/dist/ui/table/table-footer.svelte.d.ts.map +1 -0
  839. package/dist/ui/table/table-head.svelte +23 -0
  840. package/dist/ui/table/table-head.svelte.d.ts +6 -0
  841. package/dist/ui/table/table-head.svelte.d.ts.map +1 -0
  842. package/dist/ui/table/table-header.svelte +20 -0
  843. package/dist/ui/table/table-header.svelte.d.ts +6 -0
  844. package/dist/ui/table/table-header.svelte.d.ts.map +1 -0
  845. package/dist/ui/table/table-row.svelte +23 -0
  846. package/dist/ui/table/table-row.svelte.d.ts +6 -0
  847. package/dist/ui/table/table-row.svelte.d.ts.map +1 -0
  848. package/dist/ui/table/table.svelte +21 -0
  849. package/dist/ui/table/table.svelte.d.ts +9 -0
  850. package/dist/ui/table/table.svelte.d.ts.map +1 -0
  851. package/dist/ui/table-dnd/index.d.ts +4 -0
  852. package/dist/ui/table-dnd/index.d.ts.map +1 -0
  853. package/dist/ui/table-dnd/index.js +3 -0
  854. package/dist/ui/table-dnd/table-dnd-sensors.d.ts +3 -0
  855. package/dist/ui/table-dnd/table-dnd-sensors.d.ts.map +1 -0
  856. package/dist/ui/table-dnd/table-dnd-sensors.js +11 -0
  857. package/dist/ui/table-dnd/table-dnd-utils.d.ts +30 -0
  858. package/dist/ui/table-dnd/table-dnd-utils.d.ts.map +1 -0
  859. package/dist/ui/table-dnd/table-dnd-utils.js +77 -0
  860. package/dist/ui/table-dnd/table-dnd-utils.test.d.ts +2 -0
  861. package/dist/ui/table-dnd/table-dnd-utils.test.d.ts.map +1 -0
  862. package/dist/ui/table-dnd/table-dnd-utils.test.js +46 -0
  863. package/dist/ui/table-dnd/table-drag-grip.svelte +60 -0
  864. package/dist/ui/table-dnd/table-drag-grip.svelte.d.ts +17 -0
  865. package/dist/ui/table-dnd/table-drag-grip.svelte.d.ts.map +1 -0
  866. package/dist/ui/toggle-group/context.d.ts +7 -0
  867. package/dist/ui/toggle-group/context.d.ts.map +1 -0
  868. package/dist/ui/toggle-group/context.js +8 -0
  869. package/dist/ui/toggle-group/index.d.ts +3 -0
  870. package/dist/ui/toggle-group/index.d.ts.map +1 -0
  871. package/dist/ui/toggle-group/index.js +2 -0
  872. package/dist/ui/toggle-group/toggle-group-item.svelte +33 -0
  873. package/dist/ui/toggle-group/toggle-group-item.svelte.d.ts +11 -0
  874. package/dist/ui/toggle-group/toggle-group-item.svelte.d.ts.map +1 -0
  875. package/dist/ui/toggle-group/toggle-group.svelte +74 -0
  876. package/dist/ui/toggle-group/toggle-group.svelte.d.ts +12 -0
  877. package/dist/ui/toggle-group/toggle-group.svelte.d.ts.map +1 -0
  878. package/dist/ui/toolbar/index.d.ts +7 -0
  879. package/dist/ui/toolbar/index.d.ts.map +1 -0
  880. package/dist/ui/toolbar/index.js +6 -0
  881. package/dist/ui/toolbar/toolbar-button.svelte +17 -0
  882. package/dist/ui/toolbar/toolbar-button.svelte.d.ts +5 -0
  883. package/dist/ui/toolbar/toolbar-button.svelte.d.ts.map +1 -0
  884. package/dist/ui/toolbar/toolbar-group-item.svelte +17 -0
  885. package/dist/ui/toolbar/toolbar-group-item.svelte.d.ts +4 -0
  886. package/dist/ui/toolbar/toolbar-group-item.svelte.d.ts.map +1 -0
  887. package/dist/ui/toolbar/toolbar-group.svelte +19 -0
  888. package/dist/ui/toolbar/toolbar-group.svelte.d.ts +5 -0
  889. package/dist/ui/toolbar/toolbar-group.svelte.d.ts.map +1 -0
  890. package/dist/ui/toolbar/toolbar-link.svelte +17 -0
  891. package/dist/ui/toolbar/toolbar-link.svelte.d.ts +5 -0
  892. package/dist/ui/toolbar/toolbar-link.svelte.d.ts.map +1 -0
  893. package/dist/ui/toolbar/toolbar.svelte +21 -0
  894. package/dist/ui/toolbar/toolbar.svelte.d.ts +5 -0
  895. package/dist/ui/toolbar/toolbar.svelte.d.ts.map +1 -0
  896. package/dist/ui/tooltip/index.d.ts +8 -0
  897. package/dist/ui/tooltip/index.d.ts.map +1 -0
  898. package/dist/ui/tooltip/index.js +9 -0
  899. package/dist/ui/tooltip/tooltip-content.svelte +85 -0
  900. package/dist/ui/tooltip/tooltip-content.svelte.d.ts +9 -0
  901. package/dist/ui/tooltip/tooltip-content.svelte.d.ts.map +1 -0
  902. package/dist/ui/tooltip/tooltip-root.svelte +15 -0
  903. package/dist/ui/tooltip/tooltip-root.svelte.d.ts +5 -0
  904. package/dist/ui/tooltip/tooltip-root.svelte.d.ts.map +1 -0
  905. package/dist/ui/tooltip/tooltip-trigger.svelte +23 -0
  906. package/dist/ui/tooltip/tooltip-trigger.svelte.d.ts +5 -0
  907. package/dist/ui/tooltip/tooltip-trigger.svelte.d.ts.map +1 -0
  908. package/dist/ui/utils.d.ts +13 -0
  909. package/dist/ui/utils.d.ts.map +1 -0
  910. package/dist/ui/utils.js +5 -0
  911. package/package.json +171 -0
@@ -0,0 +1,967 @@
1
+ <script lang="ts">
2
+ // @ts-nocheck
3
+ import { TableNode } from "./table-node";
4
+ import * as Table from "@lapismd/mira/ui/table";
5
+ import { cn } from "./utils";
6
+ import ColumnEditor from "./editor-column.svelte";
7
+ import * as Tooltip from "@lapismd/mira/ui/tooltip";
8
+ import Delete from "@lucide/svelte/icons/trash";
9
+ import Elipsis from "@lucide/svelte/icons/ellipsis";
10
+ import * as ContextMenu from "@lapismd/mira/ui/context-menu";
11
+ import AlignLeft from "@lucide/svelte/icons/align-left";
12
+ import AlignRight from "@lucide/svelte/icons/align-right";
13
+ import AlignCenter from "@lucide/svelte/icons/align-center";
14
+ import * as DropdownMenu from "@lapismd/mira/ui/dropdown-menu";
15
+ import { Button, buttonVariants } from "@lapismd/mira/ui/button";
16
+ import { DropdownMenuItem } from "@lapismd/mira/ui/dropdown-menu";
17
+ import type { AlignType } from "mdast";
18
+ import { Menu } from "./menu";
19
+ import MenuComponent from "./menu-component.svelte";
20
+ import { onMount } from "svelte";
21
+ import * as _ from "lodash-es";
22
+ import { DragDropProvider } from "@dnd-kit/svelte";
23
+ import { tableReorderSensors } from "@lapismd/mira/ui/table-dnd/sensors";
24
+ import {
25
+ parseTableDragData,
26
+ resolveTableDragTargetIndex,
27
+ } from "@lapismd/mira/ui/table-dnd/utils";
28
+ import type {
29
+ DragEndEvent,
30
+ DragOverEvent,
31
+ DragStartEvent,
32
+ } from "@dnd-kit/dom";
33
+ import MarkdownTableColumnHead from "./markdown-table-column-head.svelte";
34
+ import MarkdownTableDataCell from "./markdown-table-data-cell.svelte";
35
+ import MarkdownTableRowGutterCell from "./markdown-table-row-gutter-cell.svelte";
36
+ import {
37
+ MARKDOWN_TABLE_COL_TYPE,
38
+ MARKDOWN_TABLE_ROW_TYPE,
39
+ type MarkdownTableDragSource,
40
+ } from "./markdown-table-dnd";
41
+
42
+ let {
43
+ node,
44
+ onChange = () => {},
45
+ onDelete = () => {},
46
+ onMouseUp = () => {},
47
+ selectedCells = [],
48
+ }: {
49
+ node: TableNode;
50
+ onChange?: (data: string, props?: Record<string, any>) => void;
51
+ onDelete?: (evt: Event) => void;
52
+ onMouseUp?: (evt: MouseEvent) => void;
53
+ selectedCells?: Array<[number, number]>;
54
+ } = $props();
55
+ let tableVersion = $state(0);
56
+ let mdastNode = $derived.by(() => {
57
+ tableVersion;
58
+ return node.getDisplayMdastNode();
59
+ });
60
+ let align = $derived(mdastNode.align ?? []);
61
+ let columnCount = $derived.by(() => {
62
+ tableVersion;
63
+ return node.getColCount();
64
+ });
65
+ let rowCount = $derived.by(() => {
66
+ tableVersion;
67
+ return node.getRowCount();
68
+ });
69
+ let coords: [number, number] = $state([-1, -1]);
70
+ let tableRoot = $state<HTMLElement | null>(null);
71
+ let hoverChrome: { row: number; col: number } | null = $state(null);
72
+ let focusChrome: { row: number; col: number } | null = $state(null);
73
+ const activeRow = $derived.by(() => {
74
+ const chrome = focusChrome ?? hoverChrome;
75
+ return chrome && chrome.row >= 0 ? chrome.row : null;
76
+ });
77
+ const activeCol = $derived.by(() => {
78
+ const chrome = focusChrome ?? hoverChrome;
79
+ return chrome && chrome.col >= 0 ? chrome.col : null;
80
+ });
81
+
82
+ const handleMouseOver = _.debounce((evt: MouseEvent) => {
83
+ onMouseUp(evt);
84
+ }, 100);
85
+
86
+ function emitChange(props?: Record<string, any>) {
87
+ node.rerender();
88
+ tableVersion += 1;
89
+ onChange(node.toMarkdown(), props);
90
+ }
91
+
92
+ function insertColumn(evt: Event, index: number) {
93
+ node.insertColumnAt(index);
94
+ emitChange();
95
+ }
96
+
97
+ function insertColumnAtEnd(evt: Event) {
98
+ evt.stopPropagation();
99
+ insertColumn(evt, node.getColCount());
100
+ }
101
+
102
+ function deleteColumn(evt: Event, index: number) {
103
+ node.deleteColumnAt(index);
104
+ emitChange();
105
+ }
106
+
107
+ function alignContent(
108
+ evt: Event,
109
+ index: number | number[],
110
+ align: AlignType,
111
+ ) {
112
+ if (Array.isArray(index)) {
113
+ index.forEach((idx) => node.setColumnAlign(idx, align));
114
+ } else {
115
+ node.setColumnAlign(index, align);
116
+ }
117
+ emitChange();
118
+ }
119
+
120
+ function insertRow(evt: Event, index: number) {
121
+ node.insertRowAt(index);
122
+ emitChange();
123
+ }
124
+
125
+ function deleteRow(evt: Event, index: number) {
126
+ node.deleteRowAt(index);
127
+ emitChange();
128
+ }
129
+
130
+ function duplicateRow(evt: Event, index: number) {
131
+ node.duplicateRowAt(index);
132
+ emitChange();
133
+ }
134
+
135
+ function duplicateColumn(evt: Event, index: number) {
136
+ node.duplicateColumnAt(index);
137
+ emitChange();
138
+ }
139
+
140
+ function moveColumn(evt: Event, index: number, newIndex: number) {
141
+ node.moveColumn(index, newIndex);
142
+ emitChange();
143
+ }
144
+
145
+ function moveRow(evt: Event, index: number, newIndex: number) {
146
+ node.moveRow(index, newIndex);
147
+ emitChange();
148
+ }
149
+
150
+ function transpose() {
151
+ node.transpose();
152
+ emitChange();
153
+ }
154
+
155
+ function sortColumn(index: number, asc: boolean) {
156
+ node.sort(index, asc);
157
+ emitChange();
158
+ }
159
+
160
+ function onContentChange(value: string, colIndex: number, rowIndex: number) {
161
+ node.updateCellContents(colIndex, rowIndex, value);
162
+ emitChange();
163
+ }
164
+
165
+ function clearCells(cells: [number, number][]) {
166
+ cells.forEach(([row, col]) => {
167
+ node.updateCellContents(col, row, "");
168
+ });
169
+ emitChange();
170
+ }
171
+
172
+ function deleteCells(cells: [number, number][]) {
173
+ const { fullRows, fullCols } = fullRowsAndColumns(cells);
174
+ console.log(fullCols);
175
+ if (fullRows.length + fullCols.length > 0) {
176
+ fullRows.forEach((row, i) => node.deleteRowAt(row - i));
177
+ fullCols.forEach((col, i) => node.deleteColumnAt(col - i));
178
+ } else {
179
+ clearCells(cells);
180
+ }
181
+ emitChange();
182
+ }
183
+
184
+ function fullRowsAndColumns(selectedCells: [number, number][]) {
185
+ const rowMap: Map<number, Set<number>> = new Map();
186
+ const colMap: Map<number, Set<number>> = new Map();
187
+ for (const [row, col] of selectedCells) {
188
+ if (!rowMap.has(row)) rowMap.set(row, new Set());
189
+ if (!colMap.has(col)) colMap.set(col, new Set());
190
+ rowMap.get(row)!.add(col);
191
+ colMap.get(col)!.add(row);
192
+ }
193
+
194
+ const fullRows: number[] = [];
195
+ const fullCols: number[] = [];
196
+
197
+ for (const [row, cols] of rowMap.entries()) {
198
+ if (cols.size === node.getColCount()) {
199
+ fullRows.push(row);
200
+ }
201
+ }
202
+
203
+ for (const [col, rows] of colMap.entries()) {
204
+ if (rows.size === node.getRowCount()) {
205
+ fullCols.push(col);
206
+ }
207
+ }
208
+
209
+ return { fullRows, fullCols };
210
+ }
211
+
212
+ function createMenu() {
213
+ const menu = new Menu();
214
+
215
+ if (!selected.length) {
216
+ menu
217
+ .addMenu((menu) => {
218
+ menu
219
+ .setTitle("Row")
220
+ .addItem((item) =>
221
+ item
222
+ .setTitle("Add row before")
223
+ .onClick(menuEvent(({ evt, row }) => insertRow(evt, row))),
224
+ )
225
+ .addItem((item) =>
226
+ item
227
+ .setTitle("Add row after")
228
+ .onClick(menuEvent(({ evt, row }) => insertRow(evt, row + 1))),
229
+ )
230
+ .addSeparator()
231
+ .addItem((item) =>
232
+ item
233
+ .setTitle("Move row up")
234
+ .onClick(
235
+ menuEvent(({ evt, row }) => moveRow(evt, row, row - 1)),
236
+ ),
237
+ )
238
+ .addItem((item) =>
239
+ item
240
+ .setTitle("Move row down")
241
+ .onClick(
242
+ menuEvent(({ evt, row }) => moveRow(evt, row, row + 1)),
243
+ ),
244
+ )
245
+ .addSeparator()
246
+ .addItem((item) =>
247
+ item
248
+ .setTitle("Duplicate row")
249
+ .onClick(menuEvent(({ evt, row }) => duplicateRow(evt, row))),
250
+ )
251
+ .addItem((item) =>
252
+ item
253
+ .setTitle("Delete row")
254
+ .onClick(menuEvent(({ evt, row }) => deleteRow(evt, row))),
255
+ );
256
+ })
257
+ .addMenu((menu) => {
258
+ menu
259
+ .setTitle("Column")
260
+ .addItem((item) =>
261
+ item
262
+ .setTitle("Add column left")
263
+ .onClick(menuEvent(({ evt, col }) => insertColumn(evt, col))),
264
+ )
265
+ .addItem((item) =>
266
+ item
267
+ .setTitle("Add column right")
268
+ .onClick(
269
+ menuEvent(({ evt, col }) => insertColumn(evt, col + 1)),
270
+ ),
271
+ )
272
+ .addSeparator()
273
+ .addItem((item) =>
274
+ item
275
+ .setTitle("Move column right")
276
+ .onClick(
277
+ menuEvent(({ evt, col }) => moveColumn(evt, col, col + 1)),
278
+ ),
279
+ )
280
+ .addItem((item) =>
281
+ item
282
+ .setTitle("Move column left")
283
+ .onClick(
284
+ menuEvent(({ evt, col }) => moveColumn(evt, col, col - 1)),
285
+ ),
286
+ )
287
+ .addSeparator()
288
+ .addItem((item) =>
289
+ item
290
+ .setTitle("Align left")
291
+ .onClick(
292
+ menuEvent(({ evt, col }) => alignContent(evt, col, "left")),
293
+ ),
294
+ )
295
+ .addItem((item) =>
296
+ item
297
+ .setTitle("Align center")
298
+ .onClick(
299
+ menuEvent(({ evt, col }) => alignContent(evt, col, "center")),
300
+ ),
301
+ )
302
+ .addItem((item) =>
303
+ item
304
+ .setTitle("Align right")
305
+ .onClick(
306
+ menuEvent(({ evt, col }) => alignContent(evt, col, "right")),
307
+ ),
308
+ )
309
+ .addSeparator()
310
+ .addItem((item) =>
311
+ item
312
+ .setTitle("Duplicate column")
313
+ .onClick(
314
+ menuEvent(({ evt, col }) => duplicateColumn(evt, col)),
315
+ ),
316
+ )
317
+ .addItem((item) =>
318
+ item
319
+ .setTitle("Delete column")
320
+ .onClick(menuEvent(({ evt, col }) => deleteColumn(evt, col))),
321
+ );
322
+ })
323
+ .addSeparator()
324
+ .addItem((item) =>
325
+ item
326
+ .setTitle("Sort by column (A to Z)")
327
+ .onClick(menuEvent(({ evt, col }) => sortColumn(col, true))),
328
+ )
329
+ .addItem((item) =>
330
+ item
331
+ .setTitle("Sort by column (Z to A)")
332
+ .onClick(menuEvent(({ evt, col }) => sortColumn(col, false))),
333
+ )
334
+ .addSeparator()
335
+ .addItem((item) =>
336
+ item.setTitle("Transpose").onClick(() => transpose()),
337
+ )
338
+ .addItem((item) =>
339
+ item.setTitle("Delete").onClick((evt) => onDelete(evt)),
340
+ );
341
+ } else {
342
+ menu
343
+ .addItem((item) =>
344
+ item.setTitle("Delete cells").onClick(() => deleteCells(selected)),
345
+ )
346
+ .addItem((item) =>
347
+ item.setTitle("Clear cells").onClick(() => clearCells(selected)),
348
+ )
349
+ .addSeparator()
350
+ .addItem((item) =>
351
+ item
352
+ .setTitle("Align left")
353
+ .onClick((evt) =>
354
+ alignContent(
355
+ evt,
356
+ [...new Set(selected.map((it) => it[1]))],
357
+ "left",
358
+ ),
359
+ ),
360
+ )
361
+ .addItem((item) =>
362
+ item
363
+ .setTitle("Align center")
364
+ .onClick((evt) =>
365
+ alignContent(
366
+ evt,
367
+ [...new Set(selected.map((it) => it[1]))],
368
+ "center",
369
+ ),
370
+ ),
371
+ )
372
+ .addItem((item) =>
373
+ item
374
+ .setTitle("Align right")
375
+ .onClick((evt) =>
376
+ alignContent(
377
+ evt,
378
+ [...new Set(selected.map((it) => it[1]))],
379
+ "right",
380
+ ),
381
+ ),
382
+ );
383
+ }
384
+ return menu;
385
+ }
386
+
387
+ function menuEvent(
388
+ cb: (props: { row: number; col: number; evt: Event }) => void,
389
+ ) {
390
+ return (evt: MouseEvent | KeyboardEvent) => {
391
+ const [row, col] = coords;
392
+ if (row === -1 || col === -1) {
393
+ return;
394
+ }
395
+ cb({ row, col, evt });
396
+ coords = [-1, -1];
397
+ };
398
+ }
399
+
400
+ const pos: {
401
+ start: [number, number];
402
+ end: [number, number];
403
+ isMouseDown: boolean;
404
+ } = { start: [-1, -1], end: [-1, -1], isMouseDown: false };
405
+ let selected: Array<[number, number]> = $state([]);
406
+
407
+ $effect(() => {
408
+ selected = selectedCells;
409
+ });
410
+
411
+ const selectedClasses: Record<string, string> = $derived.by(() => {
412
+ const data: Record<string, string> = {};
413
+ if (!selected.length) {
414
+ return data;
415
+ }
416
+ const start = selected[0];
417
+ const end = selected[selected.length - 1];
418
+ selected.forEach((pos) => {
419
+ const id = pos.join(",");
420
+ const [row, col] = pos;
421
+ const decorations: string[] = ["is-selected"];
422
+ if (row === start[0]) {
423
+ decorations.push(" top ");
424
+ }
425
+ if (col === start[1]) {
426
+ decorations.push(" start ");
427
+ }
428
+ if (row === end[0]) {
429
+ decorations.push(" bottom ");
430
+ }
431
+ if (col === end[1]) {
432
+ decorations.push(" end ");
433
+ }
434
+ data[id] = decorations.join(" ");
435
+ });
436
+ return data;
437
+ });
438
+
439
+ function onMouseDown(evt: MouseEvent) {
440
+ if (evt.button === 0) {
441
+ pos.isMouseDown = true;
442
+ setTimeout(() => (selected = []));
443
+ pos.start = getCoords(evt);
444
+ evt.preventDefault();
445
+ }
446
+ }
447
+
448
+ function onMouseOver(evt: MouseEvent) {
449
+ updateHoverChrome(evt);
450
+ if (pos.isMouseDown) {
451
+ pos.end = getCoords(evt);
452
+ selected = getCellsBetween(pos.start, pos.end);
453
+ evt.preventDefault();
454
+ }
455
+ }
456
+
457
+ function updateHoverChrome(evt: Event) {
458
+ const [row, col] = getCoords(evt);
459
+ if (row >= 0 && col >= 0) {
460
+ hoverChrome = { row, col };
461
+ return;
462
+ }
463
+ const target = evt.target as Element | null;
464
+ const colHeader = target?.closest?.(
465
+ '[data-markdown-table-chrome="col-header"]',
466
+ ) as HTMLElement | null;
467
+ if (colHeader) {
468
+ const index = Number(
469
+ colHeader.dataset.markdownTableColIndex ??
470
+ colHeader.dataset.markdownTableDragIndex ??
471
+ -1,
472
+ );
473
+ if (Number.isFinite(index) && index >= 0) {
474
+ hoverChrome = { row: -1, col: index };
475
+ }
476
+ return;
477
+ }
478
+ const rowGutter = target?.closest?.(
479
+ '[data-markdown-table-chrome="row-gutter"]',
480
+ ) as HTMLElement | null;
481
+ if (rowGutter) {
482
+ const handle = rowGutter.querySelector<HTMLElement>(
483
+ "[data-markdown-table-drag-index]",
484
+ );
485
+ const index = Number(handle?.dataset.markdownTableDragIndex ?? -1);
486
+ if (Number.isFinite(index) && index >= 0) {
487
+ hoverChrome = { row: index, col: -1 };
488
+ }
489
+ }
490
+ }
491
+
492
+ function onTablePointerLeave(evt: PointerEvent) {
493
+ const related = evt.relatedTarget as Node | null;
494
+ if (tableRoot && related && tableRoot.contains(related)) {
495
+ return;
496
+ }
497
+ hoverChrome = null;
498
+ }
499
+
500
+ function onTableFocusIn(evt: FocusEvent) {
501
+ const [row, col] = getCoords(evt);
502
+ if (row >= 0 && col >= 0) {
503
+ focusChrome = { row, col };
504
+ }
505
+ }
506
+
507
+ function onTableFocusOut(evt: FocusEvent) {
508
+ const related = evt.relatedTarget as Node | null;
509
+ if (tableRoot && related && tableRoot.contains(related)) {
510
+ return;
511
+ }
512
+ focusChrome = null;
513
+ }
514
+
515
+ function getCoords(evt: Event): [number, number] {
516
+ let tableCell = evt.target as HTMLElement | null;
517
+
518
+ while (tableCell && !["TH", "TD"].includes(tableCell.tagName)) {
519
+ if (tableCell === evt.currentTarget) {
520
+ return [-1, -1];
521
+ }
522
+
523
+ tableCell = tableCell.parentElement;
524
+ }
525
+ if (tableCell === null) {
526
+ return [-1, -1];
527
+ }
528
+ const x = tableCell.dataset.x;
529
+ const y = tableCell.dataset.y;
530
+ if (x && y) {
531
+ return [+y, +x];
532
+ }
533
+ const tableRow = tableCell.parentElement!;
534
+ const tableContainer = tableRow.parentElement!;
535
+ const colIndex =
536
+ tableContainer.tagName === "TFOOT"
537
+ ? -1
538
+ : Array.from(tableRow.children).indexOf(tableCell);
539
+ const rowIndex =
540
+ tableCell.tagName === "TH"
541
+ ? -1
542
+ : Array.from(tableRow.parentElement!.children).indexOf(tableRow);
543
+
544
+ return [rowIndex, colIndex - 1];
545
+ }
546
+
547
+ function getCellsBetween(
548
+ start: [number, number],
549
+ end: [number, number],
550
+ ): [number, number][] {
551
+ const cells = node.getCellsInDisplayRange(start, end);
552
+ if (cells.length == 1) {
553
+ return [];
554
+ }
555
+ return cells;
556
+ }
557
+
558
+ function selectColumn(evt: Event, column: number) {
559
+ setTimeout(() => {
560
+ selected = node.getCellsInDisplayColumn(column);
561
+ });
562
+ }
563
+
564
+ function selectRow(evt: Event, row: number) {
565
+ setTimeout(() => {
566
+ selected = node.getCellsInDisplayRow(row);
567
+ });
568
+ }
569
+
570
+ let dragSource: MarkdownTableDragSource | null = $state(null);
571
+ let dragOverIndex: number | null = $state(null);
572
+
573
+ function commitDrag(type: string, start: number, end: number) {
574
+ if (start !== end) {
575
+ if (type === MARKDOWN_TABLE_COL_TYPE) {
576
+ node.moveColumn(start, end);
577
+ selectColumn(new Event("select"), end);
578
+ } else if (type === MARKDOWN_TABLE_ROW_TYPE) {
579
+ node.moveRow(start, end);
580
+ selectRow(new Event("select"), end);
581
+ }
582
+ emitChange({
583
+ selectedCells:
584
+ type === MARKDOWN_TABLE_COL_TYPE
585
+ ? node.getCellsInDisplayColumn(end)
586
+ : node.getCellsInDisplayRow(end),
587
+ });
588
+ }
589
+ }
590
+
591
+ function handleDragOver(event: DragOverEvent) {
592
+ const target = parseTableDragData(
593
+ event.operation.target,
594
+ MARKDOWN_TABLE_ROW_TYPE,
595
+ MARKDOWN_TABLE_COL_TYPE,
596
+ );
597
+ if (
598
+ target &&
599
+ dragSource &&
600
+ target.type === dragSource.type &&
601
+ target.index !== dragSource.index
602
+ ) {
603
+ dragOverIndex = target.index;
604
+ }
605
+ }
606
+
607
+ function handleDragStart(event: DragStartEvent) {
608
+ const data = parseTableDragData(
609
+ event.operation.source,
610
+ MARKDOWN_TABLE_ROW_TYPE,
611
+ MARKDOWN_TABLE_COL_TYPE,
612
+ );
613
+ if (!data) {
614
+ return;
615
+ }
616
+ dragSource = { type: data.type, index: data.index };
617
+ if (data.type === MARKDOWN_TABLE_COL_TYPE) {
618
+ selectColumn(new Event("select"), data.index);
619
+ } else {
620
+ selectRow(new Event("select"), data.index);
621
+ }
622
+ }
623
+
624
+ function handleDragEnd(event: DragEndEvent) {
625
+ const source = parseTableDragData(
626
+ event.operation.source,
627
+ MARKDOWN_TABLE_ROW_TYPE,
628
+ MARKDOWN_TABLE_COL_TYPE,
629
+ );
630
+ const targetIndex = resolveTableDragTargetIndex(
631
+ event,
632
+ dragOverIndex,
633
+ MARKDOWN_TABLE_ROW_TYPE,
634
+ MARKDOWN_TABLE_COL_TYPE,
635
+ );
636
+ if (source && targetIndex !== null) {
637
+ commitDrag(source.type, source.index, targetIndex);
638
+ }
639
+ dragSource = null;
640
+ dragOverIndex = null;
641
+ }
642
+
643
+ onMount(() => {
644
+ const fn = (evt: MouseEvent) => {
645
+ if (!pos.isMouseDown && selected.length && evt.button === 0) {
646
+ setTimeout(() => (selected = []));
647
+ }
648
+ pos.isMouseDown = false;
649
+ onMouseUp(evt);
650
+ };
651
+
652
+ document.addEventListener("mouseup", fn);
653
+ document.addEventListener("mouseover", handleMouseOver);
654
+ return () => {
655
+ document.removeEventListener("mouseup", fn);
656
+ document.removeEventListener("mouseover", handleMouseOver);
657
+ };
658
+ });
659
+ </script>
660
+
661
+ <DragDropProvider
662
+ sensors={tableReorderSensors}
663
+ onDragStart={handleDragStart}
664
+ onDragOver={handleDragOver}
665
+ onDragEnd={handleDragEnd}
666
+ >
667
+ <ContextMenu.Root>
668
+ <ContextMenu.Trigger class="relative">
669
+ {#key tableVersion}
670
+ <Table.Root
671
+ bind:ref={tableRoot}
672
+ class={cn(
673
+ "cm-table-widget h-full w-fit",
674
+ dragSource && "is-table-chrome-dragging",
675
+ )}
676
+ className="overflow-x-auto overflow-y-hidden"
677
+ onpointerover={updateHoverChrome}
678
+ onpointerleave={onTablePointerLeave}
679
+ onfocusin={onTableFocusIn}
680
+ onfocusout={onTableFocusOut}
681
+ >
682
+ <colgroup>
683
+ <col />
684
+ {#each mdastNode.children[0].children as _, index}
685
+ <col
686
+ class={cn("text-left", {
687
+ "text-right": align[index] === "right",
688
+ "text-left": align[index] === "left",
689
+ "text-center": align[index] === "center",
690
+ })}
691
+ />
692
+ {/each}
693
+ <col />
694
+ </colgroup>
695
+ <Table.Header>
696
+ <Table.Row
697
+ class="border-none hover:[&,&>svelte-css-wrapper]:[&>th,td]:bg-transparent"
698
+ >
699
+ <Table.Head
700
+ aria-label="Table actions"
701
+ class="group h-5 border-none p-0"
702
+ >
703
+ <div
704
+ class="markdown-table-chrome absolute top-0 z-10 flex items-center opacity-0"
705
+ data-markdown-table-chrome="delete-table"
706
+ >
707
+ <Tooltip.Provider>
708
+ <Tooltip.Root>
709
+ <Tooltip.Trigger
710
+ aria-label="Delete table"
711
+ class={buttonVariants({
712
+ variant: "ghost",
713
+ size: "xs",
714
+ class: "h-5 w-5 p-0",
715
+ })}
716
+ onclick={(evt) => onDelete(evt)}
717
+ >
718
+ <Delete />
719
+ </Tooltip.Trigger>
720
+ <Tooltip.Content side="right"
721
+ >Delete table</Tooltip.Content
722
+ >
723
+ </Tooltip.Root>
724
+ </Tooltip.Provider>
725
+ </div>
726
+ </Table.Head>
727
+ {#each mdastNode.children[0].children as col, index}
728
+ <MarkdownTableColumnHead
729
+ {index}
730
+ chromeActive={activeCol === index}
731
+ {dragSource}
732
+ {dragOverIndex}
733
+ onSelectColumn={(evt) => selectColumn(evt, index)}
734
+ >
735
+ {@render columnMenu({ index })}
736
+ </MarkdownTableColumnHead>
737
+ {/each}
738
+ <Table.Head
739
+ aria-label="Column actions"
740
+ class="group h-5 w-5 border-none"
741
+ >
742
+ <span class="sr-only">Column actions</span>
743
+ </Table.Head>
744
+ </Table.Row>
745
+ </Table.Header>
746
+ <Table.Body>
747
+ {#each mdastNode.children as row, rowIndex}
748
+ <Table.Row class={cn("group border-none")}>
749
+ <MarkdownTableRowGutterCell
750
+ {rowIndex}
751
+ colIndex={0}
752
+ chromeActive={activeRow === rowIndex}
753
+ {dragSource}
754
+ {dragOverIndex}
755
+ onSelectRow={(evt) => selectRow(evt, rowIndex)}
756
+ onInsertRow={insertRow}
757
+ onDeleteRow={deleteRow}
758
+ />
759
+ {#each row.children as col, index}
760
+ {@const hProperties = col.data?.hProperties ?? {}}
761
+ {@const sourceRowIndex =
762
+ hProperties.sourceRowIndex ?? rowIndex}
763
+ {@const sourceColIndex = hProperties.sourceColIndex ?? index}
764
+ {@const displayColIndex =
765
+ hProperties.displayColIndex ?? index}
766
+ {@const id = [sourceRowIndex, sourceColIndex].join(",")}
767
+ <MarkdownTableDataCell
768
+ node={col}
769
+ {rowIndex}
770
+ colIndex={displayColIndex}
771
+ {sourceRowIndex}
772
+ {sourceColIndex}
773
+ align={align[displayColIndex]}
774
+ colspan={col.data?.hProperties?.colSpan}
775
+ rowspan={col.data?.hProperties?.rowSpan}
776
+ selectedClass={selectedClasses[id]}
777
+ {dragSource}
778
+ {dragOverIndex}
779
+ onContentChange={(value) =>
780
+ onContentChange(value, sourceColIndex, sourceRowIndex)}
781
+ {onMouseOver}
782
+ {onMouseDown}
783
+ onContextMenu={() =>
784
+ (coords = [sourceRowIndex, sourceColIndex])}
785
+ />
786
+ {/each}
787
+ {#if rowIndex === 0}
788
+ <Table.Cell
789
+ rowspan={rowCount}
790
+ class="markdown-table-chrome markdown-table-chrome--edge-cell bg-background group-hover:bg-background w-5 p-0 group-hover:border-y group-hover:border-r"
791
+ data-markdown-table-chrome="add-col"
792
+ >
793
+ <button
794
+ type="button"
795
+ data-slot="button"
796
+ aria-label="Add column"
797
+ class={buttonVariants({
798
+ variant: "ghost",
799
+ size: "sm",
800
+ class:
801
+ "markdown-table-chrome h-full w-5 cursor-e-resize rounded-none opacity-0 [&_svg]:size-6",
802
+ })}
803
+ onclickcapture={insertColumnAtEnd}
804
+ >
805
+ <svg
806
+ width="24"
807
+ height="24"
808
+ viewBox="0 0 24 24"
809
+ fill="none"
810
+ xmlns="http://www.w3.org/2000/svg"
811
+ ><path
812
+ fill-rule="evenodd"
813
+ clip-rule="evenodd"
814
+ d="M9.70775 4.025C9.35775 4.375 9.18275 4.80258 9.18275 5.30775V6.5H10.6827V5.30775C10.6827 5.21792 10.7116 5.14417 10.7693 5.0865C10.8269 5.02883 10.9007 5 10.9905 5H15.6923C15.7821 5 15.8558 5.02883 15.9135 5.0865C15.9712 5.14417 16 5.21792 16 5.30775V18.6923C16 18.7821 15.9712 18.8558 15.9135 18.9135C15.8558 18.9712 15.7821 19 15.6923 19H10.9905C10.9007 19 10.8269 18.9712 10.7693 18.9135C10.7116 18.8558 10.6827 18.7821 10.6827 18.6923V17.6923H9.18275V18.6923C9.18275 19.1974 9.35775 19.625 9.70775 19.975C10.0577 20.325 10.4853 20.5 10.9905 20.5H15.6923C16.1974 20.5 16.625 20.325 16.975 19.975C17.325 19.625 17.5 19.1974 17.5 18.6923V5.30775C17.5 4.80258 17.325 4.375 16.975 4.025C16.625 3.675 16.1974 3.5 15.6923 3.5H10.9905C10.4853 3.5 10.0577 3.675 9.70775 4.025Z"
815
+ fill="currentColor"
816
+ ></path><path
817
+ d="M9.18275 11.3848H7V12.8848H9.18275V15H10.6827V12.8848H12.7307V11.3848H10.6827V9.26925H9.18275V11.3848Z"
818
+ fill="currentColor"
819
+ ></path></svg
820
+ >
821
+ </button>
822
+ </Table.Cell>
823
+ {/if}
824
+ </Table.Row>
825
+ {/each}
826
+ </Table.Body>
827
+ <Table.Footer class="border-t-0 bg-transparent">
828
+ <Table.Row class="group border-none p-0 hover:bg-transparent">
829
+ <Table.Head aria-label="Row actions" class="h-5 !bg-transparent">
830
+ <span class="sr-only">Row actions</span>
831
+ </Table.Head>
832
+ <Table.Head
833
+ aria-label="Add row"
834
+ colspan={columnCount}
835
+ class="markdown-table-chrome markdown-table-chrome--footer-cell group m-0 h-5 p-0 group-hover:border-x group-hover:border-b"
836
+ >
837
+ <div
838
+ class="markdown-table-chrome flex items-center opacity-0"
839
+ data-markdown-table-chrome="add-row"
840
+ >
841
+ <Button
842
+ aria-label="Add row"
843
+ size="sm"
844
+ variant="ghost"
845
+ class="h-5 w-full cursor-s-resize rounded-none [&_svg]:size-6"
846
+ onclick={(evt) => insertRow(evt, node.getRowCount())}
847
+ >
848
+ <svg
849
+ width="24"
850
+ height="24"
851
+ viewBox="0 0 24 24"
852
+ fill="none"
853
+ xmlns="http://www.w3.org/2000/svg"
854
+ ><path
855
+ fill-rule="evenodd"
856
+ clip-rule="evenodd"
857
+ d="M4.025 10.2077C4.375 9.85775 4.80258 9.68275 5.30775 9.68275H6.5V11.1827H5.30775C5.21792 11.1827 5.14417 11.2116 5.0865 11.2693C5.02883 11.3269 5 11.4007 5 11.4905V16.1923C5 16.2821 5.02883 16.3558 5.0865 16.4135C5.14417 16.4712 5.21792 16.5 5.30775 16.5H18.6923C18.7821 16.5 18.8558 16.4712 18.9135 16.4135C18.9712 16.3558 19 16.2821 19 16.1923V11.4905C19 11.4007 18.9712 11.3269 18.9135 11.2693C18.8558 11.2116 18.7821 11.1827 18.6923 11.1827H17.6923V9.68275H18.6923C19.1974 9.68275 19.625 9.85775 19.975 10.2077C20.325 10.5577 20.5 10.9853 20.5 11.4905V16.1923C20.5 16.6974 20.325 17.125 19.975 17.475C19.625 17.825 19.1974 18 18.6923 18H5.30775C4.80258 18 4.375 17.825 4.025 17.475C3.675 17.125 3.5 16.6974 3.5 16.1923V11.4905C3.5 10.9853 3.675 10.5577 4.025 10.2077Z"
858
+ fill="currentColor"
859
+ ></path><path
860
+ d="M11.3848 9.68275V7.5H12.8848V9.68275H15V11.1827H12.8848V13.2307H11.3848V11.1827H9.26925V9.68275H11.3848Z"
861
+ fill="currentColor"
862
+ ></path></svg
863
+ >
864
+ </Button>
865
+ </div>
866
+ </Table.Head>
867
+ <Table.Head
868
+ aria-label="Column actions"
869
+ class="h-5 !bg-transparent"
870
+ >
871
+ <span class="sr-only">Column actions</span>
872
+ </Table.Head>
873
+ </Table.Row>
874
+ </Table.Footer>
875
+ </Table.Root>
876
+ {/key}
877
+ </ContextMenu.Trigger>
878
+ <MenuComponent menu={createMenu()} />
879
+ </ContextMenu.Root>
880
+ </DragDropProvider>
881
+
882
+ {#snippet columnMenu({ index }: { index: number })}
883
+ <DropdownMenu.Root>
884
+ <DropdownMenu.Trigger
885
+ aria-label={`Column ${index + 1} actions`}
886
+ class={buttonVariants({
887
+ variant: "ghost",
888
+ size: "xs",
889
+ class:
890
+ "markdown-table-chrome h-5 w-5 rounded-full p-0 opacity-40 group-hover:opacity-100",
891
+ })}
892
+ >
893
+ <Elipsis />
894
+ </DropdownMenu.Trigger>
895
+ <DropdownMenu.Content class="flex">
896
+ <DropdownMenuItem
897
+ aria-label="Align column left"
898
+ disabled={node.__mdastNode.align?.[index] === "left"}
899
+ class="[&_svg]:size-5"
900
+ onclick={(evt) => alignContent(evt, index, "left")}
901
+ ><AlignLeft /></DropdownMenuItem
902
+ >
903
+ <DropdownMenuItem
904
+ aria-label="Align column center"
905
+ disabled={node.__mdastNode.align?.[index] === "center"}
906
+ class="[&_svg]:size-5"
907
+ onclick={(evt) => alignContent(evt, index, "center")}
908
+ ><AlignCenter /></DropdownMenuItem
909
+ >
910
+ <DropdownMenuItem
911
+ aria-label="Align column right"
912
+ disabled={node.__mdastNode.align?.[index] === "right"}
913
+ class="[&_svg]:size-5"
914
+ onclick={(evt) => alignContent(evt, index, "right")}
915
+ ><AlignRight /></DropdownMenuItem
916
+ >
917
+ <DropdownMenuItem
918
+ aria-label="Insert column left"
919
+ title="Insert a column to the left of this one"
920
+ class="[&_svg]:size-5"
921
+ onclick={(evt) => {
922
+ insertColumn(evt, index);
923
+ }}
924
+ >
925
+ <svg
926
+ width="24"
927
+ height="24"
928
+ viewBox="0 0 24 24"
929
+ fill="none"
930
+ xmlns="http://www.w3.org/2000/svg"
931
+ ><path
932
+ d="M10.8075 20.1152H15.1305H15.0537H15.1152H10.8075ZM16.6152 19.8075C16.6152 20.3127 16.4402 20.7402 16.0902 21.0902C15.7402 21.4402 15.3127 21.6152 14.8075 21.6152H11.1152C10.6101 21.6152 10.1825 21.4402 9.83248 21.0902C9.48248 20.7402 9.30748 20.3127 9.30748 19.8075V10.423H10.8075V19.8075C10.8075 19.8973 10.8363 19.9711 10.894 20.0287C10.9517 20.0864 11.0254 20.1152 11.1152 20.1152H14.8075C14.8973 20.1152 14.9711 20.0864 15.0287 20.0287C15.0864 19.9711 15.1152 19.8973 15.1152 19.8075V4.69223C15.5434 4.74357 15.9004 4.93299 16.1862 5.26048C16.4722 5.58798 16.6152 5.97548 16.6152 6.42298V19.8075ZM10.8075 2.49998V4.61523H12.923V6.11523H10.8075V8.23073H9.30748V6.11523H7.19223V4.61523H9.30748V2.49998H10.8075Z"
933
+ fill="currentColor"
934
+ ></path></svg
935
+ >
936
+ </DropdownMenuItem>
937
+ <DropdownMenuItem
938
+ aria-label="Insert column right"
939
+ title="Insert a column to the right of this one"
940
+ class="[&_svg]:size-5"
941
+ onclick={(evt) => {
942
+ insertColumn(evt, index + 1);
943
+ }}
944
+ >
945
+ <svg
946
+ width="24"
947
+ height="24"
948
+ viewBox="0 0 24 24"
949
+ fill="none"
950
+ xmlns="http://www.w3.org/2000/svg"
951
+ ><path
952
+ d="M13.0001 20.1152H8.67713H8.75388H8.69238H13.0001ZM7.19238 19.8075C7.19238 20.3127 7.36738 20.7402 7.71738 21.0902C8.06738 21.4402 8.49497 21.6152 9.00013 21.6152H12.6924C13.1975 21.6152 13.6251 21.4402 13.9751 21.0902C14.3251 20.7402 14.5001 20.3127 14.5001 19.8075V10.423H13.0001V19.8075C13.0001 19.8973 12.9713 19.9711 12.9136 20.0287C12.856 20.0864 12.7822 20.1152 12.6924 20.1152H9.00013C8.9103 20.1152 8.83655 20.0864 8.77888 20.0287C8.72122 19.9711 8.69238 19.8973 8.69238 19.8075V4.69223C8.26422 4.74357 7.90722 4.93299 7.62138 5.26048C7.33538 5.58798 7.19238 5.97548 7.19238 6.42298V19.8075ZM13.0001 2.49998V4.61523H10.8846V6.11523H13.0001V8.23073H14.5001V6.11523H16.6154V4.61523H14.5001V2.49998H13.0001Z"
953
+ fill="currentColor"
954
+ ></path></svg
955
+ >
956
+ </DropdownMenuItem>
957
+ <DropdownMenuItem
958
+ aria-label="Delete column"
959
+ title="Delete column"
960
+ class="[&_svg]:size-5"
961
+ onclick={(evt) => {
962
+ deleteColumn(evt, index);
963
+ }}><Delete /></DropdownMenuItem
964
+ >
965
+ </DropdownMenu.Content>
966
+ </DropdownMenu.Root>
967
+ {/snippet}