@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,382 @@
1
+ <script lang="ts">
2
+ import CheckIcon from '@lucide/svelte/icons/check';
3
+ import ChevronFirstIcon from '@lucide/svelte/icons/chevron-first';
4
+ import ChevronLastIcon from '@lucide/svelte/icons/chevron-last';
5
+ import ChevronLeftIcon from '@lucide/svelte/icons/chevron-left';
6
+ import ChevronRightIcon from '@lucide/svelte/icons/chevron-right';
7
+ import ClockIcon from '@lucide/svelte/icons/clock';
8
+ import EllipsisVerticalIcon from '@lucide/svelte/icons/ellipsis-vertical';
9
+ import InfoIcon from '@lucide/svelte/icons/info';
10
+ import LinkIcon from '@lucide/svelte/icons/link';
11
+ import MapIcon from '@lucide/svelte/icons/map';
12
+ import TableIcon from '@lucide/svelte/icons/table';
13
+ import { Button } from '../ui/button/index.js';
14
+ import * as DropdownMenu from '../ui/dropdown-menu/index.js';
15
+ import { Separator } from '../ui/separator/index.js';
16
+ import { t } from '../../i18n/index.svelte.js';
17
+ import { connections } from '../../stores/connections.svelte.js';
18
+ import type { Tab } from '../../types';
19
+ import { buildHttpsUrl, buildStorageUrl } from '../../utils/url.js';
20
+
21
+ const PROVIDER_LABELS: Record<string, string> = {
22
+ s3: 'S3',
23
+ gcs: 'GCS',
24
+ r2: 'R2',
25
+ minio: 'MinIO',
26
+ azure: 'Azure',
27
+ storj: 'Storj'
28
+ };
29
+
30
+ let {
31
+ tab,
32
+ fileName,
33
+ columnCount = 0,
34
+ rowCount = 0,
35
+ currentPage = 1,
36
+ totalPages = 1,
37
+ pageSize = 1000,
38
+ historyVisible = false,
39
+ hasGeo = false,
40
+ isStac = false,
41
+ viewMode = 'table' as 'table' | 'map' | 'stac' | 'info',
42
+ onPrevPage,
43
+ onNextPage,
44
+ onGoToPage,
45
+ onToggleInfo,
46
+ onToggleHistory,
47
+ onToggleView,
48
+ onToggleStac,
49
+ onPageSizeChange
50
+ }: {
51
+ tab: Tab;
52
+ fileName: string;
53
+ columnCount?: number;
54
+ rowCount?: number;
55
+ currentPage?: number;
56
+ totalPages?: number;
57
+ pageSize?: number;
58
+ historyVisible?: boolean;
59
+ hasGeo?: boolean;
60
+ isStac?: boolean;
61
+ viewMode?: 'table' | 'map' | 'stac' | 'info';
62
+ onPrevPage: () => void;
63
+ onNextPage: () => void;
64
+ onGoToPage?: (page: number) => void;
65
+ onToggleInfo?: () => void;
66
+ onToggleHistory?: () => void;
67
+ onToggleView?: () => void;
68
+ onToggleStac?: () => void;
69
+ onPageSizeChange?: (size: number) => void;
70
+ } = $props();
71
+
72
+ let jumpPageEditing = $state(false);
73
+ let jumpPageValue = $state('');
74
+ let copiedType = $state<string | null>(null);
75
+
76
+ const PAGE_SIZES = [1000, 5000, 10_000, 100_000];
77
+
78
+ const providerLabel = $derived.by(() => {
79
+ if (!tab.connectionId) return null;
80
+ const conn = connections.getById(tab.connectionId);
81
+ return conn ? (PROVIDER_LABELS[conn.provider] ?? conn.provider) : null;
82
+ });
83
+
84
+ const hasProviderLink = $derived(tab.source === 'remote' && !!providerLabel);
85
+
86
+ async function handleCopy(type: 'https' | 'provider') {
87
+ const url = type === 'https' ? buildHttpsUrl(tab) : buildStorageUrl(tab);
88
+ if (!url) return;
89
+ try {
90
+ await navigator.clipboard.writeText(url);
91
+ copiedType = type;
92
+ setTimeout(() => (copiedType = null), 2000);
93
+ } catch {
94
+ // clipboard API may fail in some contexts
95
+ }
96
+ }
97
+
98
+ function handleJumpSubmit() {
99
+ const page = parseInt(jumpPageValue, 10);
100
+ if (page >= 1 && page <= totalPages && onGoToPage) {
101
+ onGoToPage(page);
102
+ }
103
+ jumpPageEditing = false;
104
+ jumpPageValue = '';
105
+ }
106
+
107
+ function handleJumpKeydown(e: KeyboardEvent) {
108
+ if (e.key === 'Enter') {
109
+ e.preventDefault();
110
+ handleJumpSubmit();
111
+ }
112
+ if (e.key === 'Escape') {
113
+ jumpPageEditing = false;
114
+ jumpPageValue = '';
115
+ }
116
+ }
117
+ </script>
118
+
119
+ <div
120
+ class="flex items-center gap-1 border-b border-zinc-200 px-2 py-1.5 sm:gap-2 sm:px-4 dark:border-zinc-800"
121
+ >
122
+ <!-- File name — truncated on mobile -->
123
+ <span class="truncate max-w-[120px] text-sm font-medium text-zinc-700 sm:max-w-none dark:text-zinc-300">{fileName}</span>
124
+
125
+ <!-- Row/col count — hidden on mobile -->
126
+ <span class="hidden text-xs text-zinc-400 sm:inline dark:text-zinc-500">
127
+ {#if rowCount > 0}
128
+ {rowCount.toLocaleString()} {t('toolbar.rows')} &times; {columnCount} cols
129
+ {:else if columnCount > 0}
130
+ {columnCount} cols
131
+ {/if}
132
+ </span>
133
+
134
+ <div class="ms-auto flex items-center gap-1 sm:gap-2">
135
+ <!-- ===== View mode buttons (all screen sizes) ===== -->
136
+ {#if onToggleInfo}
137
+ <Button
138
+ variant={viewMode === 'info' ? 'default' : 'outline'}
139
+ size="sm"
140
+ class="h-7 gap-1 px-2 text-xs {viewMode !== 'info' ? 'border-zinc-300 text-zinc-600 hover:bg-zinc-50 hover:text-zinc-700 dark:border-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-900' : ''}"
141
+ onclick={onToggleInfo}
142
+ >
143
+ <InfoIcon class="size-3" />
144
+ <span class="hidden sm:inline">{t('toolbar.info')}</span>
145
+ </Button>
146
+ {/if}
147
+
148
+ {#if hasGeo && onToggleView}
149
+ <Button
150
+ variant={viewMode === 'map' ? 'default' : 'outline'}
151
+ size="sm"
152
+ class="h-7 gap-1 px-2 text-xs {viewMode !== 'map' ? 'border-blue-300 text-blue-600 hover:bg-blue-50 hover:text-blue-700 dark:border-blue-700 dark:text-blue-400 dark:hover:bg-blue-950' : ''}"
153
+ onclick={onToggleView}
154
+ >
155
+ {#if viewMode !== 'map'}
156
+ <MapIcon class="size-3" />
157
+ {t('toolbar.map')}
158
+ {:else}
159
+ <TableIcon class="size-3" />
160
+ {t('toolbar.table')}
161
+ {/if}
162
+ </Button>
163
+ {/if}
164
+
165
+ {#if isStac && onToggleStac}
166
+ <Button
167
+ variant={viewMode === 'stac' ? 'default' : 'outline'}
168
+ size="sm"
169
+ class="h-7 gap-1 px-2 text-xs {viewMode !== 'stac' ? 'border-blue-300 text-blue-600 hover:bg-blue-50 hover:text-blue-700 dark:border-blue-700 dark:text-blue-400 dark:hover:bg-blue-950' : ''}"
170
+ onclick={onToggleStac}
171
+ >
172
+ <MapIcon class="size-3" />
173
+ {t('toolbar.stacMap')}
174
+ </Button>
175
+ {/if}
176
+
177
+ <!-- ===== Desktop-only controls (hidden on mobile) ===== -->
178
+ <div class="hidden items-center gap-1 sm:flex">
179
+ <!-- Copy URL dropdown -->
180
+ <DropdownMenu.Root>
181
+ <DropdownMenu.Trigger>
182
+ {#snippet child({ props })}
183
+ <Button variant="ghost" size="sm" class="h-7 gap-1 px-2 text-xs" {...props}>
184
+ <LinkIcon class="size-3" />
185
+ {t('toolbar.copyUrl')}
186
+ </Button>
187
+ {/snippet}
188
+ </DropdownMenu.Trigger>
189
+ <DropdownMenu.Content align="start" class="w-48">
190
+ <DropdownMenu.Item onclick={() => handleCopy('https')}>
191
+ {#if copiedType === 'https'}
192
+ <CheckIcon class="mr-2 size-3 text-green-500" />
193
+ {t('toolbar.copied')}
194
+ {:else}
195
+ {t('toolbar.copyHttpsLink')}
196
+ {/if}
197
+ </DropdownMenu.Item>
198
+ {#if hasProviderLink}
199
+ <DropdownMenu.Item onclick={() => handleCopy('provider')}>
200
+ {#if copiedType === 'provider'}
201
+ <CheckIcon class="mr-2 size-3 text-green-500" />
202
+ {t('toolbar.copied')}
203
+ {:else}
204
+ {t('toolbar.copyProviderLink').replace('{provider}', providerLabel!)}
205
+ {/if}
206
+ </DropdownMenu.Item>
207
+ {/if}
208
+ </DropdownMenu.Content>
209
+ </DropdownMenu.Root>
210
+
211
+ <Separator orientation="vertical" class="!h-4" />
212
+
213
+ <!-- History toggle — hidden in map mode -->
214
+ {#if onToggleHistory && viewMode === 'table'}
215
+ <Button
216
+ variant="ghost"
217
+ size="sm"
218
+ class="h-7 px-2 text-xs {historyVisible ? 'text-blue-500' : ''}"
219
+ onclick={onToggleHistory}
220
+ >
221
+ <ClockIcon class="size-3" />
222
+ {t('toolbar.history')}
223
+ </Button>
224
+ {/if}
225
+
226
+ <!-- Page size selector — hidden in map mode -->
227
+ {#if onPageSizeChange && viewMode === 'table'}
228
+ <Separator orientation="vertical" class="!h-4" />
229
+ <select
230
+ class="rounded border border-zinc-200 bg-transparent px-1.5 py-0.5 text-xs text-zinc-500 outline-none dark:border-zinc-700 dark:text-zinc-400"
231
+ value={pageSize}
232
+ onchange={(e) => onPageSizeChange?.(parseInt(e.currentTarget.value, 10))}
233
+ >
234
+ {#each PAGE_SIZES as size}
235
+ <option value={size}>{size.toLocaleString()} {t('toolbar.rows')}</option>
236
+ {/each}
237
+ </select>
238
+ {/if}
239
+ </div>
240
+
241
+ <!-- ===== Pagination (all screen sizes) ===== -->
242
+ {#if totalPages > 1}
243
+ <Separator orientation="vertical" class="!h-4 hidden sm:block" />
244
+
245
+ <div class="inline-flex -space-x-px">
246
+ <!-- First page — desktop only -->
247
+ <Button
248
+ variant="outline"
249
+ size="sm"
250
+ class="hidden h-7 rounded-e-none px-1.5 shadow-none sm:inline-flex"
251
+ onclick={() => onGoToPage?.(1)}
252
+ disabled={currentPage <= 1}
253
+ title={t('toolbar.firstPage')}
254
+ >
255
+ <ChevronFirstIcon class="size-3.5" />
256
+ </Button>
257
+
258
+ <!-- Prev -->
259
+ <Button
260
+ variant="outline"
261
+ size="sm"
262
+ class="h-7 rounded-none px-1.5 shadow-none sm:first:rounded-none"
263
+ onclick={onPrevPage}
264
+ disabled={currentPage <= 1}
265
+ >
266
+ <ChevronLeftIcon class="size-3.5" />
267
+ </Button>
268
+
269
+ <!-- Page indicator / jump -->
270
+ {#if jumpPageEditing}
271
+ <!-- svelte-ignore a11y_autofocus -->
272
+ <input
273
+ type="number"
274
+ class="h-7 w-14 border border-zinc-200 bg-transparent px-1 text-center text-xs outline-none dark:border-zinc-700 dark:bg-zinc-900"
275
+ bind:value={jumpPageValue}
276
+ onkeydown={handleJumpKeydown}
277
+ onblur={handleJumpSubmit}
278
+ min="1"
279
+ max={totalPages}
280
+ autofocus
281
+ />
282
+ {:else}
283
+ <Button
284
+ variant="outline"
285
+ size="sm"
286
+ class="h-7 rounded-none px-2.5 font-normal tabular-nums shadow-none"
287
+ onclick={() => { jumpPageEditing = true; jumpPageValue = String(currentPage); }}
288
+ title={t('toolbar.jumpToPage')}
289
+ >
290
+ {currentPage} / {totalPages}
291
+ </Button>
292
+ {/if}
293
+
294
+ <!-- Next -->
295
+ <Button
296
+ variant="outline"
297
+ size="sm"
298
+ class="h-7 rounded-none px-1.5 shadow-none"
299
+ onclick={onNextPage}
300
+ disabled={currentPage >= totalPages}
301
+ >
302
+ <ChevronRightIcon class="size-3.5" />
303
+ </Button>
304
+
305
+ <!-- Last page — desktop only -->
306
+ <Button
307
+ variant="outline"
308
+ size="sm"
309
+ class="hidden h-7 rounded-s-none px-1.5 shadow-none sm:inline-flex"
310
+ onclick={() => onGoToPage?.(totalPages)}
311
+ disabled={currentPage >= totalPages}
312
+ title={t('toolbar.lastPage')}
313
+ >
314
+ <ChevronLastIcon class="size-3.5" />
315
+ </Button>
316
+ </div>
317
+ {/if}
318
+
319
+ <!-- ===== Mobile overflow menu (visible below sm) ===== -->
320
+ <div class="flex sm:hidden">
321
+ <DropdownMenu.Root>
322
+ <DropdownMenu.Trigger
323
+ class="rounded p-1 text-zinc-400 hover:bg-zinc-100 dark:hover:bg-zinc-800"
324
+ >
325
+ <EllipsisVerticalIcon class="size-4" />
326
+ </DropdownMenu.Trigger>
327
+ <DropdownMenu.Content align="end" class="w-48">
328
+ <!-- Copy URL options -->
329
+ <DropdownMenu.Item onclick={() => handleCopy('https')}>
330
+ {#if copiedType === 'https'}
331
+ <CheckIcon class="mr-2 size-3 text-green-500" />
332
+ {t('toolbar.copied')}
333
+ {:else}
334
+ <LinkIcon class="mr-2 size-3" />
335
+ {t('toolbar.copyHttpsLink')}
336
+ {/if}
337
+ </DropdownMenu.Item>
338
+ {#if hasProviderLink}
339
+ <DropdownMenu.Item onclick={() => handleCopy('provider')}>
340
+ {#if copiedType === 'provider'}
341
+ <CheckIcon class="mr-2 size-3 text-green-500" />
342
+ {t('toolbar.copied')}
343
+ {:else}
344
+ <LinkIcon class="mr-2 size-3" />
345
+ {t('toolbar.copyProviderLink').replace('{provider}', providerLabel!)}
346
+ {/if}
347
+ </DropdownMenu.Item>
348
+ {/if}
349
+
350
+ <DropdownMenu.Separator />
351
+
352
+ <!-- History toggle — table mode only -->
353
+ {#if onToggleHistory && viewMode === 'table'}
354
+ <DropdownMenu.Item onclick={onToggleHistory}>
355
+ {historyVisible ? t('toolbar.hideHistory') : t('toolbar.showHistory')}
356
+ </DropdownMenu.Item>
357
+ {/if}
358
+
359
+ <!-- Page size sub-menu — table mode only -->
360
+ {#if onPageSizeChange && viewMode === 'table'}
361
+ <DropdownMenu.Separator />
362
+ <DropdownMenu.Sub>
363
+ <DropdownMenu.SubTrigger>
364
+ {t('toolbar.pageSize')}: {pageSize.toLocaleString()}
365
+ </DropdownMenu.SubTrigger>
366
+ <DropdownMenu.SubContent>
367
+ {#each PAGE_SIZES as size}
368
+ <DropdownMenu.Item onclick={() => onPageSizeChange?.(size)}>
369
+ {size.toLocaleString()} {t('toolbar.rows')}
370
+ {#if size === pageSize}
371
+ <span class="ms-auto text-blue-500">&#10003;</span>
372
+ {/if}
373
+ </DropdownMenu.Item>
374
+ {/each}
375
+ </DropdownMenu.SubContent>
376
+ </DropdownMenu.Sub>
377
+ {/if}
378
+ </DropdownMenu.Content>
379
+ </DropdownMenu.Root>
380
+ </div>
381
+ </div>
382
+ </div>
@@ -0,0 +1,25 @@
1
+ import type { Tab } from '../../types';
2
+ type $$ComponentProps = {
3
+ tab: Tab;
4
+ fileName: string;
5
+ columnCount?: number;
6
+ rowCount?: number;
7
+ currentPage?: number;
8
+ totalPages?: number;
9
+ pageSize?: number;
10
+ historyVisible?: boolean;
11
+ hasGeo?: boolean;
12
+ isStac?: boolean;
13
+ viewMode?: 'table' | 'map' | 'stac' | 'info';
14
+ onPrevPage: () => void;
15
+ onNextPage: () => void;
16
+ onGoToPage?: (page: number) => void;
17
+ onToggleInfo?: () => void;
18
+ onToggleHistory?: () => void;
19
+ onToggleView?: () => void;
20
+ onToggleStac?: () => void;
21
+ onPageSizeChange?: (size: number) => void;
22
+ };
23
+ declare const TableToolbar: import("svelte").Component<$$ComponentProps, {}, "">;
24
+ type TableToolbar = ReturnType<typeof TableToolbar>;
25
+ export default TableToolbar;