@walkthru-earth/objex 0.1.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 (367) hide show
  1. package/LICENSE +396 -0
  2. package/README.md +114 -0
  3. package/dist/assets/favicon.svg +17 -0
  4. package/dist/components/CLAUDE.md +44 -0
  5. package/dist/components/browser/Breadcrumb.svelte +50 -0
  6. package/dist/components/browser/Breadcrumb.svelte.d.ts +7 -0
  7. package/dist/components/browser/CreateFolderDialog.svelte +98 -0
  8. package/dist/components/browser/CreateFolderDialog.svelte.d.ts +6 -0
  9. package/dist/components/browser/DeleteConfirmDialog.svelte +90 -0
  10. package/dist/components/browser/DeleteConfirmDialog.svelte.d.ts +8 -0
  11. package/dist/components/browser/DropZone.svelte +83 -0
  12. package/dist/components/browser/DropZone.svelte.d.ts +7 -0
  13. package/dist/components/browser/FileBrowser.svelte +229 -0
  14. package/dist/components/browser/FileBrowser.svelte.d.ts +3 -0
  15. package/dist/components/browser/FileRow.svelte +112 -0
  16. package/dist/components/browser/FileRow.svelte.d.ts +9 -0
  17. package/dist/components/browser/FileTreeSidebar.svelte +559 -0
  18. package/dist/components/browser/FileTreeSidebar.svelte.d.ts +8 -0
  19. package/dist/components/browser/RenameDialog.svelte +101 -0
  20. package/dist/components/browser/RenameDialog.svelte.d.ts +8 -0
  21. package/dist/components/browser/SearchBar.svelte +40 -0
  22. package/dist/components/browser/SearchBar.svelte.d.ts +6 -0
  23. package/dist/components/browser/UploadButton.svelte +65 -0
  24. package/dist/components/browser/UploadButton.svelte.d.ts +3 -0
  25. package/dist/components/editor/CodeMirrorEditor.svelte +404 -0
  26. package/dist/components/editor/CodeMirrorEditor.svelte.d.ts +12 -0
  27. package/dist/components/editor/MilkdownEditor.svelte +98 -0
  28. package/dist/components/editor/MilkdownEditor.svelte.d.ts +9 -0
  29. package/dist/components/editor/SqlEditor.svelte +173 -0
  30. package/dist/components/editor/SqlEditor.svelte.d.ts +7 -0
  31. package/dist/components/editor/SqlResultBlock.svelte +199 -0
  32. package/dist/components/editor/SqlResultBlock.svelte.d.ts +9 -0
  33. package/dist/components/layout/ConnectionDialog.svelte +439 -0
  34. package/dist/components/layout/ConnectionDialog.svelte.d.ts +9 -0
  35. package/dist/components/layout/LocaleToggle.svelte +32 -0
  36. package/dist/components/layout/LocaleToggle.svelte.d.ts +3 -0
  37. package/dist/components/layout/SafeLockToggle.svelte +37 -0
  38. package/dist/components/layout/SafeLockToggle.svelte.d.ts +18 -0
  39. package/dist/components/layout/Sidebar.svelte +314 -0
  40. package/dist/components/layout/Sidebar.svelte.d.ts +3 -0
  41. package/dist/components/layout/StatusBar.svelte +73 -0
  42. package/dist/components/layout/StatusBar.svelte.d.ts +3 -0
  43. package/dist/components/layout/TabBar.svelte +102 -0
  44. package/dist/components/layout/TabBar.svelte.d.ts +7 -0
  45. package/dist/components/layout/ThemeToggle.svelte +52 -0
  46. package/dist/components/layout/ThemeToggle.svelte.d.ts +3 -0
  47. package/dist/components/ui/badge/badge.svelte +49 -0
  48. package/dist/components/ui/badge/badge.svelte.d.ts +32 -0
  49. package/dist/components/ui/badge/index.d.ts +1 -0
  50. package/dist/components/ui/badge/index.js +1 -0
  51. package/dist/components/ui/button/button.svelte +82 -0
  52. package/dist/components/ui/button/button.svelte.d.ts +64 -0
  53. package/dist/components/ui/button/index.d.ts +2 -0
  54. package/dist/components/ui/button/index.js +4 -0
  55. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +40 -0
  56. package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +9 -0
  57. package/dist/components/ui/context-menu/context-menu-content.svelte +28 -0
  58. package/dist/components/ui/context-menu/context-menu-content.svelte.d.ts +10 -0
  59. package/dist/components/ui/context-menu/context-menu-group-heading.svelte +21 -0
  60. package/dist/components/ui/context-menu/context-menu-group-heading.svelte.d.ts +7 -0
  61. package/dist/components/ui/context-menu/context-menu-group.svelte +7 -0
  62. package/dist/components/ui/context-menu/context-menu-group.svelte.d.ts +4 -0
  63. package/dist/components/ui/context-menu/context-menu-item.svelte +27 -0
  64. package/dist/components/ui/context-menu/context-menu-item.svelte.d.ts +8 -0
  65. package/dist/components/ui/context-menu/context-menu-label.svelte +24 -0
  66. package/dist/components/ui/context-menu/context-menu-label.svelte.d.ts +8 -0
  67. package/dist/components/ui/context-menu/context-menu-portal.svelte +7 -0
  68. package/dist/components/ui/context-menu/context-menu-portal.svelte.d.ts +3 -0
  69. package/dist/components/ui/context-menu/context-menu-radio-group.svelte +16 -0
  70. package/dist/components/ui/context-menu/context-menu-radio-group.svelte.d.ts +4 -0
  71. package/dist/components/ui/context-menu/context-menu-radio-item.svelte +33 -0
  72. package/dist/components/ui/context-menu/context-menu-radio-item.svelte.d.ts +4 -0
  73. package/dist/components/ui/context-menu/context-menu-separator.svelte +17 -0
  74. package/dist/components/ui/context-menu/context-menu-separator.svelte.d.ts +4 -0
  75. package/dist/components/ui/context-menu/context-menu-shortcut.svelte +20 -0
  76. package/dist/components/ui/context-menu/context-menu-shortcut.svelte.d.ts +5 -0
  77. package/dist/components/ui/context-menu/context-menu-sub-content.svelte +20 -0
  78. package/dist/components/ui/context-menu/context-menu-sub-content.svelte.d.ts +4 -0
  79. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +29 -0
  80. package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +8 -0
  81. package/dist/components/ui/context-menu/context-menu-sub.svelte +7 -0
  82. package/dist/components/ui/context-menu/context-menu-sub.svelte.d.ts +3 -0
  83. package/dist/components/ui/context-menu/context-menu-trigger.svelte +7 -0
  84. package/dist/components/ui/context-menu/context-menu-trigger.svelte.d.ts +4 -0
  85. package/dist/components/ui/context-menu/context-menu.svelte +7 -0
  86. package/dist/components/ui/context-menu/context-menu.svelte.d.ts +3 -0
  87. package/dist/components/ui/context-menu/index.d.ts +17 -0
  88. package/dist/components/ui/context-menu/index.js +19 -0
  89. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
  90. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +4 -0
  91. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +43 -0
  92. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  93. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +29 -0
  94. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -0
  95. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
  96. package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +8 -0
  97. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +7 -0
  98. package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +4 -0
  99. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +27 -0
  100. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +8 -0
  101. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +24 -0
  102. package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
  103. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +7 -0
  104. package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte.d.ts +3 -0
  105. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  106. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +4 -0
  107. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +33 -0
  108. package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
  109. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +17 -0
  110. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
  111. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
  112. package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +5 -0
  113. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
  114. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +4 -0
  115. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
  116. package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
  117. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +7 -0
  118. package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte.d.ts +3 -0
  119. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
  120. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +4 -0
  121. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +7 -0
  122. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte.d.ts +3 -0
  123. package/dist/components/ui/dropdown-menu/index.d.ts +18 -0
  124. package/dist/components/ui/dropdown-menu/index.js +18 -0
  125. package/dist/components/ui/input/index.d.ts +2 -0
  126. package/dist/components/ui/input/index.js +4 -0
  127. package/dist/components/ui/input/input.svelte +52 -0
  128. package/dist/components/ui/input/input.svelte.d.ts +13 -0
  129. package/dist/components/ui/resizable/index.d.ts +4 -0
  130. package/dist/components/ui/resizable/index.js +6 -0
  131. package/dist/components/ui/resizable/resizable-handle.svelte +30 -0
  132. package/dist/components/ui/resizable/resizable-handle.svelte.d.ts +8 -0
  133. package/dist/components/ui/resizable/resizable-pane-group.svelte +20 -0
  134. package/dist/components/ui/resizable/resizable-pane-group.svelte.d.ts +7 -0
  135. package/dist/components/ui/scroll-area/index.d.ts +3 -0
  136. package/dist/components/ui/scroll-area/index.js +5 -0
  137. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  138. package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
  139. package/dist/components/ui/scroll-area/scroll-area.svelte +47 -0
  140. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +11 -0
  141. package/dist/components/ui/separator/index.d.ts +2 -0
  142. package/dist/components/ui/separator/index.js +4 -0
  143. package/dist/components/ui/separator/separator.svelte +21 -0
  144. package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
  145. package/dist/components/ui/sheet/index.d.ts +11 -0
  146. package/dist/components/ui/sheet/index.js +13 -0
  147. package/dist/components/ui/sheet/sheet-close.svelte +7 -0
  148. package/dist/components/ui/sheet/sheet-close.svelte.d.ts +4 -0
  149. package/dist/components/ui/sheet/sheet-content.svelte +62 -0
  150. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +37 -0
  151. package/dist/components/ui/sheet/sheet-description.svelte +17 -0
  152. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +4 -0
  153. package/dist/components/ui/sheet/sheet-footer.svelte +20 -0
  154. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +5 -0
  155. package/dist/components/ui/sheet/sheet-header.svelte +20 -0
  156. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +5 -0
  157. package/dist/components/ui/sheet/sheet-overlay.svelte +20 -0
  158. package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +4 -0
  159. package/dist/components/ui/sheet/sheet-portal.svelte +7 -0
  160. package/dist/components/ui/sheet/sheet-portal.svelte.d.ts +3 -0
  161. package/dist/components/ui/sheet/sheet-title.svelte +13 -0
  162. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +4 -0
  163. package/dist/components/ui/sheet/sheet-trigger.svelte +7 -0
  164. package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +4 -0
  165. package/dist/components/ui/sheet/sheet.svelte +7 -0
  166. package/dist/components/ui/sheet/sheet.svelte.d.ts +3 -0
  167. package/dist/components/ui/switch/index.d.ts +2 -0
  168. package/dist/components/ui/switch/index.js +4 -0
  169. package/dist/components/ui/switch/switch.svelte +28 -0
  170. package/dist/components/ui/switch/switch.svelte.d.ts +8 -0
  171. package/dist/components/ui/tabs/index.d.ts +5 -0
  172. package/dist/components/ui/tabs/index.js +7 -0
  173. package/dist/components/ui/tabs/tabs-content.svelte +17 -0
  174. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +4 -0
  175. package/dist/components/ui/tabs/tabs-list.svelte +16 -0
  176. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +4 -0
  177. package/dist/components/ui/tabs/tabs-trigger.svelte +20 -0
  178. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
  179. package/dist/components/ui/tabs/tabs.svelte +19 -0
  180. package/dist/components/ui/tabs/tabs.svelte.d.ts +4 -0
  181. package/dist/components/ui/tooltip/index.d.ts +6 -0
  182. package/dist/components/ui/tooltip/index.js +8 -0
  183. package/dist/components/ui/tooltip/tooltip-content.svelte +52 -0
  184. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +11 -0
  185. package/dist/components/ui/tooltip/tooltip-portal.svelte +7 -0
  186. package/dist/components/ui/tooltip/tooltip-portal.svelte.d.ts +4 -0
  187. package/dist/components/ui/tooltip/tooltip-provider.svelte +7 -0
  188. package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +4 -0
  189. package/dist/components/ui/tooltip/tooltip-trigger.svelte +7 -0
  190. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +4 -0
  191. package/dist/components/ui/tooltip/tooltip.svelte +7 -0
  192. package/dist/components/ui/tooltip/tooltip.svelte.d.ts +4 -0
  193. package/dist/components/viewers/ArchiveViewer.svelte +586 -0
  194. package/dist/components/viewers/ArchiveViewer.svelte.d.ts +7 -0
  195. package/dist/components/viewers/CLAUDE.md +60 -0
  196. package/dist/components/viewers/CodeViewer.svelte +553 -0
  197. package/dist/components/viewers/CodeViewer.svelte.d.ts +7 -0
  198. package/dist/components/viewers/CogViewer.svelte +1345 -0
  199. package/dist/components/viewers/CogViewer.svelte.d.ts +7 -0
  200. package/dist/components/viewers/CopcViewer.svelte +25 -0
  201. package/dist/components/viewers/CopcViewer.svelte.d.ts +7 -0
  202. package/dist/components/viewers/DatabaseViewer.svelte +169 -0
  203. package/dist/components/viewers/DatabaseViewer.svelte.d.ts +7 -0
  204. package/dist/components/viewers/FileInfo.svelte +174 -0
  205. package/dist/components/viewers/FileInfo.svelte.d.ts +10 -0
  206. package/dist/components/viewers/FlatGeobufViewer.svelte +755 -0
  207. package/dist/components/viewers/FlatGeobufViewer.svelte.d.ts +7 -0
  208. package/dist/components/viewers/GeoParquetMapViewer.svelte +278 -0
  209. package/dist/components/viewers/GeoParquetMapViewer.svelte.d.ts +17 -0
  210. package/dist/components/viewers/ImageViewer.svelte +233 -0
  211. package/dist/components/viewers/ImageViewer.svelte.d.ts +7 -0
  212. package/dist/components/viewers/LoadProgress.svelte +93 -0
  213. package/dist/components/viewers/LoadProgress.svelte.d.ts +15 -0
  214. package/dist/components/viewers/MapViewer.svelte +234 -0
  215. package/dist/components/viewers/MapViewer.svelte.d.ts +7 -0
  216. package/dist/components/viewers/MarkdownViewer.svelte +478 -0
  217. package/dist/components/viewers/MarkdownViewer.svelte.d.ts +7 -0
  218. package/dist/components/viewers/MediaViewer.svelte +121 -0
  219. package/dist/components/viewers/MediaViewer.svelte.d.ts +7 -0
  220. package/dist/components/viewers/ModelViewer.svelte +164 -0
  221. package/dist/components/viewers/ModelViewer.svelte.d.ts +7 -0
  222. package/dist/components/viewers/NotebookViewer.svelte +389 -0
  223. package/dist/components/viewers/NotebookViewer.svelte.d.ts +7 -0
  224. package/dist/components/viewers/PdfViewer.svelte +278 -0
  225. package/dist/components/viewers/PdfViewer.svelte.d.ts +7 -0
  226. package/dist/components/viewers/PmtilesViewer.svelte +191 -0
  227. package/dist/components/viewers/PmtilesViewer.svelte.d.ts +7 -0
  228. package/dist/components/viewers/QueryHistoryPanel.svelte +159 -0
  229. package/dist/components/viewers/QueryHistoryPanel.svelte.d.ts +8 -0
  230. package/dist/components/viewers/RawViewer.svelte +117 -0
  231. package/dist/components/viewers/RawViewer.svelte.d.ts +7 -0
  232. package/dist/components/viewers/StacMapViewer.svelte +20 -0
  233. package/dist/components/viewers/StacMapViewer.svelte.d.ts +7 -0
  234. package/dist/components/viewers/StyleEditorOverlay.svelte +27 -0
  235. package/dist/components/viewers/StyleEditorOverlay.svelte.d.ts +7 -0
  236. package/dist/components/viewers/TableGrid.svelte +355 -0
  237. package/dist/components/viewers/TableGrid.svelte.d.ts +12 -0
  238. package/dist/components/viewers/TableStatusBar.svelte +92 -0
  239. package/dist/components/viewers/TableStatusBar.svelte.d.ts +11 -0
  240. package/dist/components/viewers/TableToolbar.svelte +382 -0
  241. package/dist/components/viewers/TableToolbar.svelte.d.ts +25 -0
  242. package/dist/components/viewers/TableViewer.svelte +923 -0
  243. package/dist/components/viewers/TableViewer.svelte.d.ts +7 -0
  244. package/dist/components/viewers/ViewerRouter.svelte +70 -0
  245. package/dist/components/viewers/ViewerRouter.svelte.d.ts +7 -0
  246. package/dist/components/viewers/ZarrMapViewer.svelte +288 -0
  247. package/dist/components/viewers/ZarrMapViewer.svelte.d.ts +17 -0
  248. package/dist/components/viewers/ZarrViewer.svelte +256 -0
  249. package/dist/components/viewers/ZarrViewer.svelte.d.ts +7 -0
  250. package/dist/components/viewers/map/AttributeTable.svelte +52 -0
  251. package/dist/components/viewers/map/AttributeTable.svelte.d.ts +8 -0
  252. package/dist/components/viewers/map/MapContainer.svelte +158 -0
  253. package/dist/components/viewers/map/MapContainer.svelte.d.ts +12 -0
  254. package/dist/components/viewers/pmtiles/PmtilesArchiveView.svelte +389 -0
  255. package/dist/components/viewers/pmtiles/PmtilesArchiveView.svelte.d.ts +10 -0
  256. package/dist/components/viewers/pmtiles/PmtilesMapView.svelte +332 -0
  257. package/dist/components/viewers/pmtiles/PmtilesMapView.svelte.d.ts +11 -0
  258. package/dist/components/viewers/pmtiles/PmtilesTileInspector.svelte +373 -0
  259. package/dist/components/viewers/pmtiles/PmtilesTileInspector.svelte.d.ts +12 -0
  260. package/dist/components/viewers/pmtiles/SvgTileRenderer.svelte +112 -0
  261. package/dist/components/viewers/pmtiles/SvgTileRenderer.svelte.d.ts +10 -0
  262. package/dist/file-icons/CLAUDE.md +21 -0
  263. package/dist/file-icons/FileTypeIcon.svelte +74 -0
  264. package/dist/file-icons/FileTypeIcon.svelte.d.ts +9 -0
  265. package/dist/file-icons/index.d.ts +56 -0
  266. package/dist/file-icons/index.js +1070 -0
  267. package/dist/i18n/CLAUDE.md +19 -0
  268. package/dist/i18n/ar.d.ts +1 -0
  269. package/dist/i18n/ar.js +404 -0
  270. package/dist/i18n/en.d.ts +1 -0
  271. package/dist/i18n/en.js +404 -0
  272. package/dist/i18n/index.svelte.d.ts +9 -0
  273. package/dist/i18n/index.svelte.js +27 -0
  274. package/dist/index.d.ts +20 -0
  275. package/dist/index.js +13 -0
  276. package/dist/query/CLAUDE.md +22 -0
  277. package/dist/query/engine.d.ts +56 -0
  278. package/dist/query/engine.js +6 -0
  279. package/dist/query/index.d.ts +4 -0
  280. package/dist/query/index.js +19 -0
  281. package/dist/query/wasm.d.ts +20 -0
  282. package/dist/query/wasm.js +890 -0
  283. package/dist/storage/CLAUDE.md +23 -0
  284. package/dist/storage/adapter.d.ts +21 -0
  285. package/dist/storage/adapter.js +1 -0
  286. package/dist/storage/browser-azure.d.ts +25 -0
  287. package/dist/storage/browser-azure.js +271 -0
  288. package/dist/storage/browser-cloud.d.ts +32 -0
  289. package/dist/storage/browser-cloud.js +293 -0
  290. package/dist/storage/index.d.ts +11 -0
  291. package/dist/storage/index.js +37 -0
  292. package/dist/storage/url-adapter.d.ts +19 -0
  293. package/dist/storage/url-adapter.js +51 -0
  294. package/dist/stores/CLAUDE.md +29 -0
  295. package/dist/stores/browser.svelte.d.ts +28 -0
  296. package/dist/stores/browser.svelte.js +160 -0
  297. package/dist/stores/connections.svelte.d.ts +56 -0
  298. package/dist/stores/connections.svelte.js +272 -0
  299. package/dist/stores/credentials.svelte.d.ts +56 -0
  300. package/dist/stores/credentials.svelte.js +79 -0
  301. package/dist/stores/files.svelte.d.ts +20 -0
  302. package/dist/stores/files.svelte.js +76 -0
  303. package/dist/stores/query-history.svelte.d.ts +16 -0
  304. package/dist/stores/query-history.svelte.js +57 -0
  305. package/dist/stores/safelock.svelte.d.ts +8 -0
  306. package/dist/stores/safelock.svelte.js +52 -0
  307. package/dist/stores/settings.svelte.d.ts +11 -0
  308. package/dist/stores/settings.svelte.js +101 -0
  309. package/dist/stores/tab-resources.svelte.d.ts +25 -0
  310. package/dist/stores/tab-resources.svelte.js +61 -0
  311. package/dist/stores/tabs.svelte.d.ts +17 -0
  312. package/dist/stores/tabs.svelte.js +110 -0
  313. package/dist/types/notebookjs.d.ts +14 -0
  314. package/dist/types.d.ts +47 -0
  315. package/dist/types.js +1 -0
  316. package/dist/utils/CLAUDE.md +54 -0
  317. package/dist/utils/analytics.d.ts +10 -0
  318. package/dist/utils/analytics.js +38 -0
  319. package/dist/utils/archive.d.ts +70 -0
  320. package/dist/utils/archive.js +333 -0
  321. package/dist/utils/column-types.d.ts +5 -0
  322. package/dist/utils/column-types.js +137 -0
  323. package/dist/utils/deck.d.ts +98 -0
  324. package/dist/utils/deck.js +208 -0
  325. package/dist/utils/evidence-context.d.ts +22 -0
  326. package/dist/utils/evidence-context.js +56 -0
  327. package/dist/utils/export.d.ts +2 -0
  328. package/dist/utils/export.js +51 -0
  329. package/dist/utils/format.d.ts +14 -0
  330. package/dist/utils/format.js +56 -0
  331. package/dist/utils/geoarrow.d.ts +32 -0
  332. package/dist/utils/geoarrow.js +672 -0
  333. package/dist/utils/hex.d.ts +10 -0
  334. package/dist/utils/hex.js +27 -0
  335. package/dist/utils/host-detection.d.ts +23 -0
  336. package/dist/utils/host-detection.js +289 -0
  337. package/dist/utils/map-selection.d.ts +12 -0
  338. package/dist/utils/map-selection.js +45 -0
  339. package/dist/utils/markdown-sql.d.ts +30 -0
  340. package/dist/utils/markdown-sql.js +73 -0
  341. package/dist/utils/markdown.d.ts +18 -0
  342. package/dist/utils/markdown.js +146 -0
  343. package/dist/utils/model3d.d.ts +13 -0
  344. package/dist/utils/model3d.js +62 -0
  345. package/dist/utils/parquet-metadata.d.ts +58 -0
  346. package/dist/utils/parquet-metadata.js +228 -0
  347. package/dist/utils/pdf.d.ts +8 -0
  348. package/dist/utils/pdf.js +28 -0
  349. package/dist/utils/pmtiles-tile.d.ts +38 -0
  350. package/dist/utils/pmtiles-tile.js +64 -0
  351. package/dist/utils/pmtiles.d.ts +46 -0
  352. package/dist/utils/pmtiles.js +135 -0
  353. package/dist/utils/shiki.d.ts +8 -0
  354. package/dist/utils/shiki.js +98 -0
  355. package/dist/utils/storage-url.d.ts +64 -0
  356. package/dist/utils/storage-url.js +374 -0
  357. package/dist/utils/url-state.d.ts +40 -0
  358. package/dist/utils/url-state.js +113 -0
  359. package/dist/utils/url.d.ts +27 -0
  360. package/dist/utils/url.js +115 -0
  361. package/dist/utils/wkb.d.ts +43 -0
  362. package/dist/utils/wkb.js +345 -0
  363. package/dist/utils/zarr.d.ts +39 -0
  364. package/dist/utils/zarr.js +204 -0
  365. package/dist/utils.d.ts +12 -0
  366. package/dist/utils.js +5 -0
  367. package/package.json +203 -0
@@ -0,0 +1,40 @@
1
+ <script lang="ts">
2
+ import { Search, X } from '@lucide/svelte';
3
+ import { Input } from '../ui/input/index.js';
4
+ import { t } from '../../i18n/index.svelte.js';
5
+
6
+ let { onFilter }: { onFilter: (query: string) => void } = $props();
7
+
8
+ let query = $state('');
9
+
10
+ function handleInput() {
11
+ onFilter(query);
12
+ }
13
+
14
+ function clearSearch() {
15
+ query = '';
16
+ onFilter('');
17
+ }
18
+ </script>
19
+
20
+ <div class="relative flex items-center">
21
+ <label for="file-filter" class="sr-only">{t('searchBar.label')}</label>
22
+ <Search class="text-muted-foreground pointer-events-none absolute start-2.5 size-4" />
23
+ <Input
24
+ id="file-filter"
25
+ type="text"
26
+ placeholder={t('searchBar.placeholder')}
27
+ class="h-8 ps-8 pe-8 text-sm"
28
+ bind:value={query}
29
+ oninput={handleInput}
30
+ />
31
+ {#if query.length > 0}
32
+ <button
33
+ class="text-muted-foreground hover:text-foreground absolute end-2.5 flex items-center justify-center"
34
+ onclick={clearSearch}
35
+ aria-label={t('searchBar.clear')}
36
+ >
37
+ <X class="size-3.5" />
38
+ </button>
39
+ {/if}
40
+ </div>
@@ -0,0 +1,6 @@
1
+ type $$ComponentProps = {
2
+ onFilter: (query: string) => void;
3
+ };
4
+ declare const SearchBar: import("svelte").Component<$$ComponentProps, {}, "">;
5
+ type SearchBar = ReturnType<typeof SearchBar>;
6
+ export default SearchBar;
@@ -0,0 +1,65 @@
1
+ <script lang="ts">
2
+ import Loader2Icon from '@lucide/svelte/icons/loader-2';
3
+ import UploadIcon from '@lucide/svelte/icons/upload';
4
+ import { Button } from '../ui/button/index.js';
5
+ import { t } from '../../i18n/index.svelte.js';
6
+ import { browser } from '../../stores/browser.svelte.js';
7
+
8
+ let fileInput: HTMLInputElement;
9
+
10
+ let uploading = $derived(browser.uploading);
11
+
12
+ function handleClick() {
13
+ fileInput?.click();
14
+ }
15
+
16
+ async function handleFileSelect(e: Event) {
17
+ const input = e.target as HTMLInputElement;
18
+ const fileList = input.files;
19
+ if (!fileList || fileList.length === 0) return;
20
+
21
+ const files: Array<{ name: string; data: Uint8Array; type?: string }> = [];
22
+
23
+ for (const file of fileList) {
24
+ const buffer = await file.arrayBuffer();
25
+ files.push({
26
+ name: file.name,
27
+ data: new Uint8Array(buffer),
28
+ type: file.type || undefined
29
+ });
30
+ }
31
+
32
+ try {
33
+ await browser.uploadFiles(files);
34
+ } catch (err) {
35
+ console.error('Upload failed:', err);
36
+ }
37
+
38
+ // Reset input so the same file can be re-selected
39
+ input.value = '';
40
+ }
41
+ </script>
42
+
43
+ <input
44
+ bind:this={fileInput}
45
+ type="file"
46
+ multiple
47
+ class="hidden"
48
+ onchange={handleFileSelect}
49
+ />
50
+
51
+ <Button
52
+ variant="outline"
53
+ size="sm"
54
+ class="h-7 gap-1.5 px-2 text-xs"
55
+ disabled={uploading}
56
+ onclick={handleClick}
57
+ >
58
+ {#if uploading}
59
+ <Loader2Icon class="size-3.5 animate-spin" />
60
+ {t('upload.uploading')}
61
+ {:else}
62
+ <UploadIcon class="size-3.5" />
63
+ {t('upload.upload')}
64
+ {/if}
65
+ </Button>
@@ -0,0 +1,3 @@
1
+ declare const UploadButton: import("svelte").Component<Record<string, never>, {}, "">;
2
+ type UploadButton = ReturnType<typeof UploadButton>;
3
+ export default UploadButton;
@@ -0,0 +1,404 @@
1
+ <script lang="ts">
2
+ import {
3
+ autocompletion,
4
+ type CompletionContext,
5
+ type CompletionResult,
6
+ closeBrackets,
7
+ closeBracketsKeymap
8
+ } from '@codemirror/autocomplete';
9
+ import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
10
+ import { StandardSQL, sql } from '@codemirror/lang-sql';
11
+ import { bracketMatching, defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language';
12
+ import { EditorState } from '@codemirror/state';
13
+ import { oneDark } from '@codemirror/theme-one-dark';
14
+ import {
15
+ EditorView,
16
+ highlightActiveLine,
17
+ highlightActiveLineGutter,
18
+ keymap,
19
+ lineNumbers,
20
+ placeholder as placeholderExt
21
+ } from '@codemirror/view';
22
+ import { onMount, untrack } from 'svelte';
23
+ import { settings } from '../../stores/settings.svelte.js';
24
+
25
+ let {
26
+ value = '',
27
+ onExecute,
28
+ onChange,
29
+ placeholder = 'Enter SQL query...',
30
+ readonly = false,
31
+ minHeight = '60px',
32
+ schemaColumns = [] as string[]
33
+ }: {
34
+ value?: string;
35
+ onExecute?: () => void;
36
+ onChange?: (value: string) => void;
37
+ placeholder?: string;
38
+ readonly?: boolean;
39
+ minHeight?: string;
40
+ schemaColumns?: string[];
41
+ } = $props();
42
+
43
+ let editorContainer: HTMLDivElement | undefined = $state();
44
+
45
+ // Use a plain variable — NOT $state — to avoid reactivity loops
46
+ let view: EditorView | undefined;
47
+ let currentTheme: 'light' | 'dark' = settings.resolved;
48
+
49
+ // SQL keywords for autocompletion
50
+ const SQL_KEYWORDS = [
51
+ 'SELECT',
52
+ 'FROM',
53
+ 'WHERE',
54
+ 'AND',
55
+ 'OR',
56
+ 'NOT',
57
+ 'IN',
58
+ 'IS',
59
+ 'NULL',
60
+ 'AS',
61
+ 'ORDER',
62
+ 'BY',
63
+ 'ASC',
64
+ 'DESC',
65
+ 'LIMIT',
66
+ 'OFFSET',
67
+ 'GROUP',
68
+ 'HAVING',
69
+ 'JOIN',
70
+ 'LEFT',
71
+ 'RIGHT',
72
+ 'INNER',
73
+ 'OUTER',
74
+ 'CROSS',
75
+ 'ON',
76
+ 'USING',
77
+ 'UNION',
78
+ 'ALL',
79
+ 'INTERSECT',
80
+ 'EXCEPT',
81
+ 'DISTINCT',
82
+ 'CASE',
83
+ 'WHEN',
84
+ 'THEN',
85
+ 'ELSE',
86
+ 'END',
87
+ 'EXISTS',
88
+ 'BETWEEN',
89
+ 'LIKE',
90
+ 'ILIKE',
91
+ 'INSERT',
92
+ 'INTO',
93
+ 'VALUES',
94
+ 'UPDATE',
95
+ 'SET',
96
+ 'DELETE',
97
+ 'CREATE',
98
+ 'TABLE',
99
+ 'VIEW',
100
+ 'INDEX',
101
+ 'DROP',
102
+ 'ALTER',
103
+ 'ADD',
104
+ 'COLUMN',
105
+ 'WITH',
106
+ 'RECURSIVE',
107
+ 'OVER',
108
+ 'PARTITION',
109
+ 'WINDOW',
110
+ 'ROWS',
111
+ 'RANGE',
112
+ 'UNBOUNDED',
113
+ 'PRECEDING',
114
+ 'FOLLOWING',
115
+ 'CURRENT',
116
+ 'ROW',
117
+ 'EXCLUDE',
118
+ 'FILTER',
119
+ 'TRUE',
120
+ 'FALSE',
121
+ 'CAST',
122
+ 'COALESCE',
123
+ 'NULLIF',
124
+ 'EXPLAIN',
125
+ 'ANALYZE',
126
+ 'PRAGMA',
127
+ 'COPY',
128
+ 'EXPORT',
129
+ 'IMPORT'
130
+ ];
131
+
132
+ // DuckDB functions commonly used with spatial / analytics
133
+ const DUCKDB_FUNCTIONS = [
134
+ 'COUNT',
135
+ 'SUM',
136
+ 'AVG',
137
+ 'MIN',
138
+ 'MAX',
139
+ 'FIRST',
140
+ 'LAST',
141
+ 'LIST',
142
+ 'STRING_AGG',
143
+ 'ROW_NUMBER',
144
+ 'RANK',
145
+ 'DENSE_RANK',
146
+ 'LAG',
147
+ 'LEAD',
148
+ 'NTILE',
149
+ 'LENGTH',
150
+ 'LOWER',
151
+ 'UPPER',
152
+ 'TRIM',
153
+ 'LTRIM',
154
+ 'RTRIM',
155
+ 'REPLACE',
156
+ 'SUBSTRING',
157
+ 'CONCAT',
158
+ 'STARTS_WITH',
159
+ 'ENDS_WITH',
160
+ 'CONTAINS',
161
+ 'REGEXP_MATCHES',
162
+ 'STRFTIME',
163
+ 'DATE_PART',
164
+ 'DATE_TRUNC',
165
+ 'NOW',
166
+ 'CURRENT_DATE',
167
+ 'CURRENT_TIMESTAMP',
168
+ 'ABS',
169
+ 'CEIL',
170
+ 'FLOOR',
171
+ 'ROUND',
172
+ 'POWER',
173
+ 'SQRT',
174
+ 'LOG',
175
+ 'LN',
176
+ 'MOD',
177
+ 'ARRAY_AGG',
178
+ 'UNNEST',
179
+ 'GENERATE_SERIES',
180
+ 'RANGE',
181
+ 'JSON_EXTRACT',
182
+ 'JSON_EXTRACT_STRING',
183
+ 'JSON_TYPE',
184
+ 'READ_PARQUET',
185
+ 'READ_CSV',
186
+ 'READ_JSON',
187
+ 'READ_CSV_AUTO',
188
+ 'ST_POINT',
189
+ 'ST_GEOMFROMWKB',
190
+ 'ST_GEOMFROMGEOJSON',
191
+ 'ST_GEOMFROMTEXT',
192
+ 'ST_ASWKB',
193
+ 'ST_ASTEXT',
194
+ 'ST_ASGEOJSON',
195
+ 'ST_TRANSFORM',
196
+ 'ST_AREA',
197
+ 'ST_LENGTH',
198
+ 'ST_DISTANCE',
199
+ 'ST_CENTROID',
200
+ 'ST_BUFFER',
201
+ 'ST_INTERSECTS',
202
+ 'ST_CONTAINS',
203
+ 'ST_WITHIN',
204
+ 'ST_INTERSECTION',
205
+ 'ST_UNION',
206
+ 'ST_ENVELOPE',
207
+ 'ST_X',
208
+ 'ST_Y',
209
+ 'ST_SRID',
210
+ 'TYPEOF',
211
+ 'TRY_CAST',
212
+ 'IF',
213
+ 'IFN',
214
+ 'GREATEST',
215
+ 'LEAST',
216
+ 'LIST_AGGREGATE',
217
+ 'LIST_SORT',
218
+ 'LIST_DISTINCT',
219
+ 'LIST_CONTAINS'
220
+ ];
221
+
222
+ function sqlCompletions(context: CompletionContext): CompletionResult | null {
223
+ const word = context.matchBefore(/[\w.]*/);
224
+ if (!word || (word.from === word.to && !context.explicit)) return null;
225
+
226
+ const input = word.text.toLowerCase();
227
+ const options: { label: string; type: string; boost?: number }[] = [];
228
+
229
+ // Column completions get highest priority
230
+ for (const col of schemaColumns) {
231
+ if (col.toLowerCase().startsWith(input)) {
232
+ options.push({ label: col, type: 'property', boost: 2 });
233
+ }
234
+ }
235
+
236
+ // SQL keywords
237
+ for (const kw of SQL_KEYWORDS) {
238
+ if (kw.toLowerCase().startsWith(input)) {
239
+ options.push({ label: kw, type: 'keyword', boost: 1 });
240
+ }
241
+ }
242
+
243
+ // DuckDB functions
244
+ for (const fn of DUCKDB_FUNCTIONS) {
245
+ if (fn.toLowerCase().startsWith(input)) {
246
+ options.push({ label: fn, type: 'function', boost: 0 });
247
+ }
248
+ }
249
+
250
+ if (options.length === 0) return null;
251
+ return { from: word.from, options };
252
+ }
253
+
254
+ function createExtensions() {
255
+ const dark = settings.resolved === 'dark';
256
+ const exts = [
257
+ lineNumbers(),
258
+ EditorView.lineWrapping,
259
+ highlightActiveLine(),
260
+ highlightActiveLineGutter(),
261
+ history(),
262
+ bracketMatching(),
263
+ closeBrackets(),
264
+ syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
265
+ sql({ dialect: StandardSQL }),
266
+ autocompletion({
267
+ override: [sqlCompletions],
268
+ defaultKeymap: true,
269
+ icons: true
270
+ }),
271
+ placeholderExt(placeholder),
272
+ keymap.of([
273
+ {
274
+ key: 'Mod-Enter',
275
+ run: () => {
276
+ onExecute?.();
277
+ return true;
278
+ }
279
+ },
280
+ ...closeBracketsKeymap,
281
+ ...defaultKeymap,
282
+ ...historyKeymap
283
+ ]),
284
+ EditorView.updateListener.of((update) => {
285
+ if (update.docChanged) {
286
+ onChange?.(update.state.doc.toString());
287
+ }
288
+ }),
289
+ EditorView.theme({
290
+ '&': { minHeight, maxHeight: '40vh' },
291
+ '.cm-scroller': { overflow: 'auto', minHeight },
292
+ '.cm-content': {
293
+ fontFamily: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',
294
+ fontSize: '12px',
295
+ minHeight
296
+ },
297
+ '.cm-gutters': { fontSize: '11px', minHeight }
298
+ }),
299
+ EditorState.readOnly.of(readonly)
300
+ ];
301
+
302
+ if (dark) {
303
+ exts.push(oneDark);
304
+ }
305
+
306
+ return exts;
307
+ }
308
+
309
+ function createView(doc: string) {
310
+ if (!editorContainer) return;
311
+ view?.destroy();
312
+ view = undefined;
313
+ try {
314
+ view = new EditorView({
315
+ state: EditorState.create({
316
+ doc,
317
+ extensions: createExtensions()
318
+ }),
319
+ parent: editorContainer
320
+ });
321
+ currentTheme = settings.resolved;
322
+ } catch (err) {
323
+ console.warn('[CodeMirrorEditor] Failed to create editor:', err);
324
+ // Retry once with minimal extensions (handles stale module instances during HMR)
325
+ try {
326
+ view = new EditorView({
327
+ state: EditorState.create({
328
+ doc,
329
+ extensions: [
330
+ EditorView.updateListener.of((update) => {
331
+ if (update.docChanged) {
332
+ onChange?.(update.state.doc.toString());
333
+ }
334
+ }),
335
+ EditorView.theme({
336
+ '&': { minHeight, maxHeight: '200px' },
337
+ '.cm-scroller': { overflow: 'auto', minHeight },
338
+ '.cm-content': {
339
+ fontFamily: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace',
340
+ fontSize: '12px',
341
+ minHeight
342
+ }
343
+ }),
344
+ placeholderExt(placeholder)
345
+ ]
346
+ }),
347
+ parent: editorContainer
348
+ });
349
+ } catch {
350
+ // Give up — the editor won't render but the app shouldn't crash
351
+ }
352
+ }
353
+ }
354
+
355
+ onMount(() => {
356
+ createView(value);
357
+ return () => {
358
+ view?.destroy();
359
+ view = undefined;
360
+ };
361
+ });
362
+
363
+ // Sync external value changes into editor
364
+ $effect(() => {
365
+ const v = value;
366
+ untrack(() => {
367
+ if (view && v !== view.state.doc.toString()) {
368
+ view.dispatch({
369
+ changes: {
370
+ from: 0,
371
+ to: view.state.doc.length,
372
+ insert: v
373
+ }
374
+ });
375
+ }
376
+ });
377
+ });
378
+
379
+ // Recreate editor when theme changes
380
+ $effect(() => {
381
+ const newTheme = settings.resolved;
382
+ untrack(() => {
383
+ if (view && editorContainer && newTheme !== currentTheme) {
384
+ const currentDoc = view.state.doc.toString();
385
+ createView(currentDoc);
386
+ }
387
+ });
388
+ });
389
+ </script>
390
+
391
+ <div bind:this={editorContainer} dir="ltr" class="codemirror-wrapper resize-y overflow-hidden rounded border border-zinc-200 dark:border-zinc-700"></div>
392
+
393
+ <style>
394
+ .codemirror-wrapper :global(.cm-editor) {
395
+ outline: none;
396
+ }
397
+ .codemirror-wrapper :global(.cm-editor.cm-focused) {
398
+ outline: none;
399
+ }
400
+ /* Autocomplete tooltip */
401
+ .codemirror-wrapper :global(.cm-tooltip-autocomplete) {
402
+ max-width: min(90vw, 300px);
403
+ }
404
+ </style>
@@ -0,0 +1,12 @@
1
+ type $$ComponentProps = {
2
+ value?: string;
3
+ onExecute?: () => void;
4
+ onChange?: (value: string) => void;
5
+ placeholder?: string;
6
+ readonly?: boolean;
7
+ minHeight?: string;
8
+ schemaColumns?: string[];
9
+ };
10
+ declare const CodeMirrorEditor: import("svelte").Component<$$ComponentProps, {}, "">;
11
+ type CodeMirrorEditor = ReturnType<typeof CodeMirrorEditor>;
12
+ export default CodeMirrorEditor;
@@ -0,0 +1,98 @@
1
+ <script lang="ts">
2
+ import { defaultValueCtx, Editor, rootCtx } from '@milkdown/kit/core';
3
+ import { history } from '@milkdown/kit/plugin/history';
4
+ import { listener, listenerCtx } from '@milkdown/kit/plugin/listener';
5
+ import { commonmark } from '@milkdown/kit/preset/commonmark';
6
+ import { gfm } from '@milkdown/kit/preset/gfm';
7
+ import { nord } from '@milkdown/theme-nord';
8
+ import { getDir } from '../../i18n/index.svelte.js';
9
+ import '@milkdown/theme-nord/style.css';
10
+ import { onDestroy } from 'svelte';
11
+
12
+ let {
13
+ initialValue = '',
14
+ onSave,
15
+ onChange
16
+ }: {
17
+ initialValue?: string;
18
+ onSave?: (markdown: string) => void;
19
+ onChange?: (markdown: string) => void;
20
+ } = $props();
21
+
22
+ let editorEl: HTMLDivElement | undefined = $state();
23
+ let editor: Editor | null = null;
24
+ // svelte-ignore state_referenced_locally
25
+ let currentValue = $state(initialValue);
26
+
27
+ $effect(() => {
28
+ if (editorEl) initEditor();
29
+ });
30
+
31
+ async function initEditor() {
32
+ if (!editorEl || editor) return;
33
+
34
+ editor = await Editor.make()
35
+ .config((ctx) => {
36
+ ctx.set(rootCtx, editorEl!);
37
+ ctx.set(defaultValueCtx, initialValue);
38
+
39
+ ctx.get(listenerCtx).markdownUpdated((_, markdown) => {
40
+ currentValue = markdown;
41
+ onChange?.(markdown);
42
+ });
43
+ })
44
+ .config(nord)
45
+ .use(commonmark)
46
+ .use(gfm)
47
+ .use(history)
48
+ .use(listener)
49
+ .create();
50
+ }
51
+
52
+ function handleKeydown(e: KeyboardEvent) {
53
+ if ((e.ctrlKey || e.metaKey) && e.key === 's') {
54
+ e.preventDefault();
55
+ onSave?.(currentValue);
56
+ }
57
+ }
58
+
59
+ onDestroy(() => {
60
+ editor?.destroy();
61
+ editor = null;
62
+ });
63
+ </script>
64
+
65
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
66
+ <div
67
+ dir={getDir()}
68
+ class="milkdown-wrapper h-full overflow-auto"
69
+ bind:this={editorEl}
70
+ onkeydown={handleKeydown}
71
+ ></div>
72
+
73
+ <style>
74
+ .milkdown-wrapper :global(.milkdown) {
75
+ padding: 1.5rem;
76
+ min-height: 100%;
77
+ }
78
+
79
+ .milkdown-wrapper :global(.milkdown .editor) {
80
+ outline: none;
81
+ }
82
+
83
+ .milkdown-wrapper :global(.milkdown p) {
84
+ margin: 0.5em 0;
85
+ }
86
+
87
+ .milkdown-wrapper :global(.milkdown pre) {
88
+ background: #1e1e2e;
89
+ border-radius: 0.375rem;
90
+ padding: 0.75rem;
91
+ font-size: 0.8125rem;
92
+ overflow-x: auto;
93
+ }
94
+
95
+ .milkdown-wrapper :global(.milkdown code) {
96
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
97
+ }
98
+ </style>
@@ -0,0 +1,9 @@
1
+ import '@milkdown/theme-nord/style.css';
2
+ type $$ComponentProps = {
3
+ initialValue?: string;
4
+ onSave?: (markdown: string) => void;
5
+ onChange?: (markdown: string) => void;
6
+ };
7
+ declare const MilkdownEditor: import("svelte").Component<$$ComponentProps, {}, "">;
8
+ type MilkdownEditor = ReturnType<typeof MilkdownEditor>;
9
+ export default MilkdownEditor;