@lobb-js/studio 0.1.31 → 0.1.32

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 (364) hide show
  1. package/{src/lib/components → dist}/LlmButton.svelte +2 -2
  2. package/dist/LlmButton.svelte.d.ts +17 -0
  3. package/{src → dist}/Studio.svelte +15 -15
  4. package/dist/Studio.svelte.d.ts +6 -0
  5. package/{src/lib/components → dist}/alertView.svelte +1 -1
  6. package/dist/alertView.svelte.d.ts +8 -0
  7. package/{src/lib/components → dist}/breadCrumbs.svelte +2 -2
  8. package/dist/breadCrumbs.svelte.d.ts +3 -0
  9. package/{src/lib/components → dist}/combobox.svelte +4 -4
  10. package/dist/combobox.svelte.d.ts +15 -0
  11. package/{src/lib/components → dist}/confirmationDialog/confirmationDialog.svelte +1 -1
  12. package/dist/confirmationDialog/confirmationDialog.svelte.d.ts +8 -0
  13. package/dist/confirmationDialog/store.svelte.d.ts +1 -0
  14. package/dist/confirmationDialog/store.svelte.js +69 -0
  15. package/{src/lib/components → dist}/createManyButton.svelte +2 -2
  16. package/dist/createManyButton.svelte.d.ts +8 -0
  17. package/{src/lib/components → dist}/dataTable/childRecords.svelte +2 -2
  18. package/dist/dataTable/childRecords.svelte.d.ts +9 -0
  19. package/{src/lib/components → dist}/dataTable/dataTable.svelte +3 -3
  20. package/dist/dataTable/dataTable.svelte.d.ts +15 -0
  21. package/{src/lib/components → dist}/dataTable/fieldCell.svelte +1 -1
  22. package/dist/dataTable/fieldCell.svelte.d.ts +10 -0
  23. package/{src/lib/components → dist}/dataTable/filter.svelte +2 -2
  24. package/dist/dataTable/filter.svelte.d.ts +10 -0
  25. package/{src/lib/components → dist}/dataTable/filterButton.svelte +1 -1
  26. package/dist/dataTable/filterButton.svelte.d.ts +8 -0
  27. package/dist/dataTable/footer.svelte.d.ts +8 -0
  28. package/{src/lib/components → dist}/dataTable/header.svelte +2 -2
  29. package/dist/dataTable/header.svelte.d.ts +10 -0
  30. package/{src/lib/components → dist}/dataTable/sort.svelte +2 -2
  31. package/dist/dataTable/sort.svelte.d.ts +8 -0
  32. package/{src/lib/components → dist}/dataTable/sortButton.svelte +2 -2
  33. package/dist/dataTable/sortButton.svelte.d.ts +8 -0
  34. package/dist/dataTable/table.svelte.d.ts +32 -0
  35. package/dist/dataTable/utils.d.ts +7 -0
  36. package/dist/dataTable/utils.js +111 -0
  37. package/{src/lib/components → dist}/detailView/create/children.svelte +3 -3
  38. package/dist/detailView/create/children.svelte.d.ts +8 -0
  39. package/{src/lib/components → dist}/detailView/create/createDetailView.svelte +6 -6
  40. package/dist/detailView/create/createDetailView.svelte.d.ts +18 -0
  41. package/{src/lib/components → dist}/detailView/create/createDetailViewButton.svelte +2 -2
  42. package/dist/detailView/create/createDetailViewButton.svelte.d.ts +11 -0
  43. package/{src/lib/components → dist}/detailView/create/createManyView.svelte +5 -5
  44. package/dist/detailView/create/createManyView.svelte.d.ts +16 -0
  45. package/{src/lib/components → dist}/detailView/create/subRecords.svelte +1 -1
  46. package/dist/detailView/create/subRecords.svelte.d.ts +8 -0
  47. package/dist/detailView/detailViewForm.svelte.d.ts +48 -0
  48. package/dist/detailView/fieldCustomInput.svelte.d.ts +10 -0
  49. package/{src/lib/components → dist}/detailView/fieldInput.svelte +4 -4
  50. package/dist/detailView/fieldInput.svelte.d.ts +10 -0
  51. package/{src/lib/components → dist}/detailView/fieldInputReplacement.svelte +1 -1
  52. package/dist/detailView/fieldInputReplacement.svelte.d.ts +11 -0
  53. package/dist/detailView/store.svelte.d.ts +4 -0
  54. package/dist/detailView/store.svelte.js +125 -0
  55. package/{src/lib/components → dist}/detailView/update/children.svelte +4 -4
  56. package/dist/detailView/update/children.svelte.d.ts +7 -0
  57. package/{src/lib/components → dist}/detailView/update/updateDetailView.svelte +6 -6
  58. package/dist/detailView/update/updateDetailView.svelte.d.ts +19 -0
  59. package/{src/lib/components → dist}/detailView/update/updateDetailViewButton.svelte +2 -2
  60. package/dist/detailView/update/updateDetailViewButton.svelte.d.ts +11 -0
  61. package/dist/detailView/utils.d.ts +8 -0
  62. package/dist/detailView/utils.js +165 -0
  63. package/{src/lib/components → dist}/diffViewer.svelte +1 -1
  64. package/dist/diffViewer.svelte.d.ts +9 -0
  65. package/{src/lib/components → dist}/drawer.svelte +1 -1
  66. package/dist/drawer.svelte.d.ts +8 -0
  67. package/{src/lib/components → dist}/extensionsComponents.svelte +1 -2
  68. package/dist/extensionsComponents.svelte.d.ts +11 -0
  69. package/dist/foreingKeyInput.svelte.d.ts +11 -0
  70. package/{src/lib/components → dist}/header.svelte +1 -1
  71. package/dist/header.svelte.d.ts +6 -0
  72. package/dist/loadingTypesForMonacoEditor.d.ts +7 -0
  73. package/dist/loadingTypesForMonacoEditor.js +72 -0
  74. package/{src/lib/components → dist}/miniSidebar.svelte +7 -7
  75. package/dist/miniSidebar.svelte.d.ts +20 -0
  76. package/{src/lib/components → dist}/monacoEditor.svelte +1 -1
  77. package/dist/monacoEditor.svelte.d.ts +13 -0
  78. package/{src/lib/components → dist}/rangeCalendarButton.svelte +4 -4
  79. package/dist/rangeCalendarButton.svelte.d.ts +7 -0
  80. package/{src/lib/components → dist}/selectRecord.svelte +1 -1
  81. package/dist/selectRecord.svelte.d.ts +15 -0
  82. package/{src/lib/components → dist}/setServerPage.svelte +2 -2
  83. package/dist/setServerPage.svelte.d.ts +18 -0
  84. package/{src/lib/components/sidebar/index.ts → dist/sidebar/index.d.ts} +1 -2
  85. package/dist/sidebar/index.js +3 -0
  86. package/{src/lib/components → dist}/sidebar/sidebar.svelte +1 -1
  87. package/dist/sidebar/sidebar.svelte.d.ts +17 -0
  88. package/dist/sidebar/sidebarElements.svelte.d.ts +19 -0
  89. package/dist/sidebar/sidebarTrigger.svelte.d.ts +7 -0
  90. package/{src/lib/components → dist}/singletone.svelte +1 -1
  91. package/dist/singletone.svelte.d.ts +6 -0
  92. package/{src/lib/components → dist}/ui/accordion/accordion-content.svelte +1 -1
  93. package/dist/ui/accordion/accordion-content.svelte.d.ts +4 -0
  94. package/{src/lib/components → dist}/ui/accordion/accordion-item.svelte +1 -1
  95. package/dist/ui/accordion/accordion-item.svelte.d.ts +4 -0
  96. package/{src/lib/components → dist}/ui/accordion/accordion-trigger.svelte +1 -1
  97. package/dist/ui/accordion/accordion-trigger.svelte.d.ts +7 -0
  98. package/dist/ui/accordion/index.d.ts +6 -0
  99. package/{src/lib/components/ui/accordion/index.ts → dist/ui/accordion/index.js} +4 -13
  100. package/{src/lib/components → dist}/ui/alert/alert-description.svelte +1 -1
  101. package/dist/ui/alert/alert-description.svelte.d.ts +5 -0
  102. package/{src/lib/components → dist}/ui/alert/alert-title.svelte +1 -1
  103. package/dist/ui/alert/alert-title.svelte.d.ts +8 -0
  104. package/{src/lib/components → dist}/ui/alert/alert.svelte +1 -1
  105. package/dist/ui/alert/alert.svelte.d.ts +26 -0
  106. package/{src/lib/components/ui/alert/index.ts → dist/ui/alert/index.d.ts} +1 -10
  107. package/dist/ui/alert/index.js +7 -0
  108. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-action.svelte +2 -2
  109. package/dist/ui/alert-dialog/alert-dialog-action.svelte.d.ts +4 -0
  110. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-cancel.svelte +2 -2
  111. package/dist/ui/alert-dialog/alert-dialog-cancel.svelte.d.ts +4 -0
  112. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-content.svelte +1 -1
  113. package/dist/ui/alert-dialog/alert-dialog-content.svelte.d.ts +7 -0
  114. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-description.svelte +1 -1
  115. package/dist/ui/alert-dialog/alert-dialog-description.svelte.d.ts +4 -0
  116. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-footer.svelte +1 -1
  117. package/dist/ui/alert-dialog/alert-dialog-footer.svelte.d.ts +5 -0
  118. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-header.svelte +1 -1
  119. package/dist/ui/alert-dialog/alert-dialog-header.svelte.d.ts +5 -0
  120. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-overlay.svelte +1 -1
  121. package/dist/ui/alert-dialog/alert-dialog-overlay.svelte.d.ts +4 -0
  122. package/{src/lib/components → dist}/ui/alert-dialog/alert-dialog-title.svelte +1 -1
  123. package/dist/ui/alert-dialog/alert-dialog-title.svelte.d.ts +4 -0
  124. package/dist/ui/alert-dialog/index.d.ts +13 -0
  125. package/dist/ui/alert-dialog/index.js +15 -0
  126. package/{src/lib/components → dist}/ui/breadcrumb/breadcrumb-ellipsis.svelte +1 -1
  127. package/dist/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +5 -0
  128. package/{src/lib/components → dist}/ui/breadcrumb/breadcrumb-item.svelte +1 -1
  129. package/dist/ui/breadcrumb/breadcrumb-item.svelte.d.ts +5 -0
  130. package/{src/lib/components → dist}/ui/breadcrumb/breadcrumb-link.svelte +1 -1
  131. package/dist/ui/breadcrumb/breadcrumb-link.svelte.d.ts +11 -0
  132. package/{src/lib/components → dist}/ui/breadcrumb/breadcrumb-list.svelte +1 -1
  133. package/dist/ui/breadcrumb/breadcrumb-list.svelte.d.ts +5 -0
  134. package/{src/lib/components → dist}/ui/breadcrumb/breadcrumb-page.svelte +1 -1
  135. package/dist/ui/breadcrumb/breadcrumb-page.svelte.d.ts +5 -0
  136. package/{src/lib/components → dist}/ui/breadcrumb/breadcrumb-separator.svelte +1 -1
  137. package/dist/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +5 -0
  138. package/dist/ui/breadcrumb/breadcrumb.svelte.d.ts +5 -0
  139. package/{src/lib/components/ui/breadcrumb/index.ts → dist/ui/breadcrumb/index.d.ts} +1 -18
  140. package/dist/ui/breadcrumb/index.js +10 -0
  141. package/{src/lib/components → dist}/ui/button/button.svelte +1 -1
  142. package/dist/ui/button/button.svelte.d.ts +60 -0
  143. package/dist/ui/button/index.d.ts +2 -0
  144. package/dist/ui/button/index.js +4 -0
  145. package/{src/lib/components → dist}/ui/checkbox/checkbox.svelte +1 -1
  146. package/dist/ui/checkbox/checkbox.svelte.d.ts +4 -0
  147. package/dist/ui/checkbox/index.d.ts +2 -0
  148. package/dist/ui/checkbox/index.js +4 -0
  149. package/{src/lib/components → dist}/ui/command/command-dialog.svelte +1 -1
  150. package/dist/ui/command/command-dialog.svelte.d.ts +9 -0
  151. package/{src/lib/components → dist}/ui/command/command-empty.svelte +1 -1
  152. package/dist/ui/command/command-empty.svelte.d.ts +4 -0
  153. package/{src/lib/components → dist}/ui/command/command-group.svelte +1 -1
  154. package/dist/ui/command/command-group.svelte.d.ts +7 -0
  155. package/{src/lib/components → dist}/ui/command/command-input.svelte +1 -1
  156. package/dist/ui/command/command-input.svelte.d.ts +4 -0
  157. package/{src/lib/components → dist}/ui/command/command-item.svelte +1 -1
  158. package/dist/ui/command/command-item.svelte.d.ts +4 -0
  159. package/{src/lib/components → dist}/ui/command/command-link-item.svelte +1 -1
  160. package/dist/ui/command/command-link-item.svelte.d.ts +4 -0
  161. package/{src/lib/components → dist}/ui/command/command-list.svelte +1 -1
  162. package/dist/ui/command/command-list.svelte.d.ts +4 -0
  163. package/{src/lib/components → dist}/ui/command/command-separator.svelte +1 -1
  164. package/dist/ui/command/command-separator.svelte.d.ts +4 -0
  165. package/{src/lib/components → dist}/ui/command/command-shortcut.svelte +1 -1
  166. package/dist/ui/command/command-shortcut.svelte.d.ts +5 -0
  167. package/{src/lib/components → dist}/ui/command/command.svelte +1 -1
  168. package/dist/ui/command/command.svelte.d.ts +4 -0
  169. package/{src/lib/components/ui/command/index.ts → dist/ui/command/index.d.ts} +2 -29
  170. package/dist/ui/command/index.js +15 -0
  171. package/{src/lib/components → dist}/ui/dialog/dialog-content.svelte +1 -1
  172. package/dist/ui/dialog/dialog-content.svelte.d.ts +9 -0
  173. package/{src/lib/components → dist}/ui/dialog/dialog-description.svelte +1 -1
  174. package/dist/ui/dialog/dialog-description.svelte.d.ts +4 -0
  175. package/{src/lib/components → dist}/ui/dialog/dialog-footer.svelte +1 -1
  176. package/dist/ui/dialog/dialog-footer.svelte.d.ts +5 -0
  177. package/{src/lib/components → dist}/ui/dialog/dialog-header.svelte +1 -1
  178. package/dist/ui/dialog/dialog-header.svelte.d.ts +5 -0
  179. package/{src/lib/components → dist}/ui/dialog/dialog-overlay.svelte +1 -1
  180. package/dist/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
  181. package/{src/lib/components → dist}/ui/dialog/dialog-title.svelte +1 -1
  182. package/dist/ui/dialog/dialog-title.svelte.d.ts +4 -0
  183. package/dist/ui/dialog/index.d.ts +12 -0
  184. package/dist/ui/dialog/index.js +14 -0
  185. package/dist/ui/input/index.d.ts +2 -0
  186. package/dist/ui/input/index.js +4 -0
  187. package/{src/lib/components → dist}/ui/input/input.svelte +1 -1
  188. package/dist/ui/input/input.svelte.d.ts +13 -0
  189. package/dist/ui/label/index.d.ts +2 -0
  190. package/dist/ui/label/index.js +4 -0
  191. package/{src/lib/components → dist}/ui/label/label.svelte +1 -1
  192. package/dist/ui/label/label.svelte.d.ts +4 -0
  193. package/dist/ui/popover/index.d.ts +6 -0
  194. package/dist/ui/popover/index.js +8 -0
  195. package/{src/lib/components → dist}/ui/popover/popover-content.svelte +1 -1
  196. package/dist/ui/popover/popover-content.svelte.d.ts +7 -0
  197. package/{src/lib/components/ui/range-calendar/index.ts → dist/ui/range-calendar/index.d.ts} +1 -17
  198. package/dist/ui/range-calendar/index.js +16 -0
  199. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-cell.svelte +1 -1
  200. package/dist/ui/range-calendar/range-calendar-cell.svelte.d.ts +4 -0
  201. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-day.svelte +2 -2
  202. package/dist/ui/range-calendar/range-calendar-day.svelte.d.ts +6 -0
  203. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-grid-body.svelte +1 -1
  204. package/dist/ui/range-calendar/range-calendar-grid-body.svelte.d.ts +4 -0
  205. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-grid-head.svelte +1 -1
  206. package/dist/ui/range-calendar/range-calendar-grid-head.svelte.d.ts +4 -0
  207. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-grid-row.svelte +1 -1
  208. package/dist/ui/range-calendar/range-calendar-grid-row.svelte.d.ts +4 -0
  209. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-grid.svelte +1 -1
  210. package/dist/ui/range-calendar/range-calendar-grid.svelte.d.ts +4 -0
  211. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-head-cell.svelte +1 -1
  212. package/dist/ui/range-calendar/range-calendar-head-cell.svelte.d.ts +4 -0
  213. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-header.svelte +1 -1
  214. package/dist/ui/range-calendar/range-calendar-header.svelte.d.ts +4 -0
  215. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-heading.svelte +1 -1
  216. package/dist/ui/range-calendar/range-calendar-heading.svelte.d.ts +4 -0
  217. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-months.svelte +1 -1
  218. package/dist/ui/range-calendar/range-calendar-months.svelte.d.ts +5 -0
  219. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-next-button.svelte +2 -2
  220. package/dist/ui/range-calendar/range-calendar-next-button.svelte.d.ts +4 -0
  221. package/{src/lib/components → dist}/ui/range-calendar/range-calendar-prev-button.svelte +2 -2
  222. package/dist/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +4 -0
  223. package/{src/lib/components → dist}/ui/range-calendar/range-calendar.svelte +1 -1
  224. package/dist/ui/range-calendar/range-calendar.svelte.d.ts +5 -0
  225. package/dist/ui/select/index.d.ts +11 -0
  226. package/dist/ui/select/index.js +13 -0
  227. package/{src/lib/components → dist}/ui/select/select-content.svelte +1 -1
  228. package/dist/ui/select/select-content.svelte.d.ts +7 -0
  229. package/{src/lib/components → dist}/ui/select/select-group-heading.svelte +1 -1
  230. package/dist/ui/select/select-group-heading.svelte.d.ts +4 -0
  231. package/{src/lib/components → dist}/ui/select/select-item.svelte +1 -1
  232. package/dist/ui/select/select-item.svelte.d.ts +4 -0
  233. package/{src/lib/components → dist}/ui/select/select-scroll-down-button.svelte +1 -1
  234. package/dist/ui/select/select-scroll-down-button.svelte.d.ts +4 -0
  235. package/{src/lib/components → dist}/ui/select/select-scroll-up-button.svelte +1 -1
  236. package/dist/ui/select/select-scroll-up-button.svelte.d.ts +4 -0
  237. package/{src/lib/components → dist}/ui/select/select-separator.svelte +2 -2
  238. package/dist/ui/select/select-separator.svelte.d.ts +4 -0
  239. package/{src/lib/components → dist}/ui/select/select-trigger.svelte +1 -1
  240. package/dist/ui/select/select-trigger.svelte.d.ts +4 -0
  241. package/dist/ui/separator/index.d.ts +2 -0
  242. package/dist/ui/separator/index.js +4 -0
  243. package/{src/lib/components → dist}/ui/separator/separator.svelte +1 -1
  244. package/dist/ui/separator/separator.svelte.d.ts +4 -0
  245. package/dist/ui/skeleton/index.d.ts +2 -0
  246. package/dist/ui/skeleton/index.js +4 -0
  247. package/{src/lib/components → dist}/ui/skeleton/skeleton.svelte +1 -1
  248. package/dist/ui/skeleton/skeleton.svelte.d.ts +5 -0
  249. package/dist/ui/sonner/index.js +1 -0
  250. package/dist/ui/sonner/sonner.svelte.d.ts +4 -0
  251. package/dist/ui/switch/index.d.ts +2 -0
  252. package/dist/ui/switch/index.js +4 -0
  253. package/{src/lib/components → dist}/ui/switch/switch.svelte +1 -1
  254. package/dist/ui/switch/switch.svelte.d.ts +4 -0
  255. package/dist/ui/textarea/index.d.ts +2 -0
  256. package/dist/ui/textarea/index.js +4 -0
  257. package/{src/lib/components → dist}/ui/textarea/textarea.svelte +1 -1
  258. package/dist/ui/textarea/textarea.svelte.d.ts +5 -0
  259. package/dist/ui/tooltip/index.d.ts +6 -0
  260. package/dist/ui/tooltip/index.js +8 -0
  261. package/{src/lib/components → dist}/ui/tooltip/tooltip-content.svelte +1 -1
  262. package/dist/ui/tooltip/tooltip-content.svelte.d.ts +4 -0
  263. package/{src/lib/components → dist}/workflowEditor.svelte +5 -5
  264. package/dist/workflowEditor.svelte.d.ts +16 -0
  265. package/package.json +24 -14
  266. package/{vite-plugin-contextual-lib.js → vite-plugins/contextual-lib-alias.js} +2 -7
  267. package/vite-plugins/index.js +21 -0
  268. package/vite-plugins/studio-source-resolver.js +41 -0
  269. package/.env.example +0 -1
  270. package/.storybook/main.ts +0 -31
  271. package/.storybook/preview.ts +0 -21
  272. package/.storybook/vitest.setup.ts +0 -7
  273. package/components.json +0 -16
  274. package/docker-entrypoint.sh +0 -7
  275. package/dockerfile +0 -27
  276. package/index.html +0 -13
  277. package/public/lobb.svg +0 -15
  278. package/src/app.css +0 -121
  279. package/src/components-export.ts +0 -21
  280. package/src/extensions/extension.types.ts +0 -93
  281. package/src/extensions/extensionUtils.ts +0 -192
  282. package/src/lib/Lobb.ts +0 -241
  283. package/src/lib/components/confirmationDialog/store.svelte.ts +0 -28
  284. package/src/lib/components/dataTable/utils.ts +0 -127
  285. package/src/lib/components/detailView/store.svelte.ts +0 -61
  286. package/src/lib/components/detailView/utils.ts +0 -177
  287. package/src/lib/components/loadingTypesForMonacoEditor.ts +0 -36
  288. package/src/lib/components/ui/alert-dialog/index.ts +0 -40
  289. package/src/lib/components/ui/button/index.ts +0 -17
  290. package/src/lib/components/ui/checkbox/index.ts +0 -6
  291. package/src/lib/components/ui/dialog/index.ts +0 -37
  292. package/src/lib/components/ui/input/index.ts +0 -7
  293. package/src/lib/components/ui/label/index.ts +0 -7
  294. package/src/lib/components/ui/popover/index.ts +0 -17
  295. package/src/lib/components/ui/select/index.ts +0 -34
  296. package/src/lib/components/ui/separator/index.ts +0 -7
  297. package/src/lib/components/ui/skeleton/index.ts +0 -7
  298. package/src/lib/components/ui/switch/index.ts +0 -7
  299. package/src/lib/components/ui/textarea/index.ts +0 -7
  300. package/src/lib/components/ui/tooltip/index.ts +0 -18
  301. package/src/lib/eventSystem.ts +0 -38
  302. package/src/lib/index.ts +0 -40
  303. package/src/lib/store.svelte.ts +0 -21
  304. package/src/lib/store.types.ts +0 -28
  305. package/src/lib/utils.ts +0 -84
  306. package/src/main.ts +0 -18
  307. package/src/routes/collections/collection.svelte +0 -46
  308. package/src/routes/collections/collections.svelte +0 -43
  309. package/src/routes/data_model/dataModel.svelte +0 -40
  310. package/src/routes/data_model/flow.css +0 -22
  311. package/src/routes/data_model/flow.svelte +0 -82
  312. package/src/routes/data_model/syncManager.svelte +0 -93
  313. package/src/routes/data_model/utils.ts +0 -35
  314. package/src/routes/extensions/extension.svelte +0 -16
  315. package/src/routes/home.svelte +0 -36
  316. package/src/routes/workflows/workflows.svelte +0 -135
  317. package/src/stories/Configure.mdx +0 -364
  318. package/src/stories/assets/accessibility.png +0 -0
  319. package/src/stories/assets/accessibility.svg +0 -1
  320. package/src/stories/assets/addon-library.png +0 -0
  321. package/src/stories/assets/assets.png +0 -0
  322. package/src/stories/assets/avif-test-image.avif +0 -0
  323. package/src/stories/assets/context.png +0 -0
  324. package/src/stories/assets/discord.svg +0 -1
  325. package/src/stories/assets/docs.png +0 -0
  326. package/src/stories/assets/figma-plugin.png +0 -0
  327. package/src/stories/assets/github.svg +0 -1
  328. package/src/stories/assets/share.png +0 -0
  329. package/src/stories/assets/styling.png +0 -0
  330. package/src/stories/assets/testing.png +0 -0
  331. package/src/stories/assets/theming.png +0 -0
  332. package/src/stories/assets/tutorials.svg +0 -1
  333. package/src/stories/assets/youtube.svg +0 -1
  334. package/src/stories/detailView/detailViewForm.stories.svelte +0 -79
  335. package/src/stories/examples/Button.stories.svelte +0 -31
  336. package/src/stories/examples/Button.svelte +0 -30
  337. package/src/stories/examples/Header.stories.svelte +0 -26
  338. package/src/stories/examples/Header.svelte +0 -45
  339. package/src/stories/examples/Page.stories.svelte +0 -29
  340. package/src/stories/examples/Page.svelte +0 -70
  341. package/src/stories/examples/button.css +0 -30
  342. package/src/stories/examples/header.css +0 -32
  343. package/src/stories/examples/page.css +0 -68
  344. package/src/vite-env.d.ts +0 -2
  345. package/svelte.config.js +0 -7
  346. package/todo.md +0 -24
  347. package/tsconfig.app.json +0 -25
  348. package/tsconfig.json +0 -14
  349. package/tsconfig.node.json +0 -24
  350. package/vite.build.svelte.config.ts +0 -18
  351. package/vite.config.ts +0 -84
  352. package/vite.extension.config.ts +0 -81
  353. package/vite_utils.ts +0 -28
  354. package/vitest.shims.d.ts +0 -1
  355. /package/{src/lib/components → dist}/dataTable/footer.svelte +0 -0
  356. /package/{src/lib/components → dist}/dataTable/table.svelte +0 -0
  357. /package/{src/lib/components → dist}/detailView/detailViewForm.svelte +0 -0
  358. /package/{src/lib/components → dist}/detailView/fieldCustomInput.svelte +0 -0
  359. /package/{src/lib/components → dist}/foreingKeyInput.svelte +0 -0
  360. /package/{src/lib/components → dist}/sidebar/sidebarElements.svelte +0 -0
  361. /package/{src/lib/components → dist}/sidebar/sidebarTrigger.svelte +0 -0
  362. /package/{src/lib/components → dist}/ui/breadcrumb/breadcrumb.svelte +0 -0
  363. /package/{src/lib/components/ui/sonner/index.ts → dist/ui/sonner/index.d.ts} +0 -0
  364. /package/{src/lib/components → dist}/ui/sonner/sonner.svelte +0 -0
package/dockerfile DELETED
@@ -1,27 +0,0 @@
1
- # Stage 1: Build
2
- FROM node:22-alpine AS builder
3
-
4
- WORKDIR /app
5
-
6
- COPY package*.json ./
7
- RUN npm install
8
-
9
- COPY . .
10
- RUN npm run build
11
-
12
- # Stage 2: Runtime
13
- FROM node:22-alpine
14
-
15
- WORKDIR /app
16
-
17
- RUN npm install -g sirv-cli
18
-
19
- # Copy only built output
20
- COPY --from=builder /app/dist ./dist
21
-
22
- COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
23
- RUN chmod +x /usr/local/bin/docker-entrypoint.sh
24
-
25
- EXPOSE 3000
26
-
27
- ENTRYPOINT ["sh", "/usr/local/bin/docker-entrypoint.sh"]
package/index.html DELETED
@@ -1,13 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/lobb.svg" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>Lobb Studio</title>
8
- </head>
9
- <body>
10
- <div id="app"></div>
11
- <script type="module" src="/src/main.ts"></script>
12
- </body>
13
- </html>
package/public/lobb.svg DELETED
@@ -1,15 +0,0 @@
1
- <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_2801_3)">
3
- <mask id="path-1-outside-1_2801_3" maskUnits="userSpaceOnUse" x="7" y="1" width="20" height="28" fill="black">
4
- <rect fill="white" x="7" y="1" width="20" height="28"/>
5
- <path d="M25.1389 23.874L24.416 28H11.8439L12.5669 23.874H25.1389ZM17.9977 2.32685L13.5367 28H8.37029L12.8137 2.32685H17.9977Z"/>
6
- </mask>
7
- <path d="M25.1389 23.874L24.416 28H11.8439L12.5669 23.874H25.1389ZM17.9977 2.32685L13.5367 28H8.37029L12.8137 2.32685H17.9977Z" fill="black"/>
8
- <path d="M25.1389 23.874L26.1239 24.0465L26.3294 22.874H25.1389V23.874ZM24.416 28V29H25.256L25.401 28.1726L24.416 28ZM11.8439 28L10.8589 27.8274L10.6535 29H11.8439V28ZM12.5669 23.874V22.874H11.7268L11.5819 23.7014L12.5669 23.874ZM17.9977 2.32685L18.983 2.49805L19.1865 1.32685H17.9977V2.32685ZM13.5367 28V29H14.3779L14.5219 28.1712L13.5367 28ZM8.37029 28L7.38494 27.8295L7.18234 29H8.37029V28ZM12.8137 2.32685V1.32685H11.9719L11.8284 2.15631L12.8137 2.32685ZM24.1539 23.7014L23.431 27.8274L25.401 28.1726L26.1239 24.0465L24.1539 23.7014ZM24.416 27H11.8439V29H24.416V27ZM12.8289 28.1726L13.5519 24.0465L11.5819 23.7014L10.8589 27.8274L12.8289 28.1726ZM12.5669 24.874H25.1389V22.874H12.5669V24.874ZM17.0125 2.15565L12.5514 27.8288L14.5219 28.1712L18.983 2.49805L17.0125 2.15565ZM13.5367 27H8.37029V29H13.5367V27ZM9.35564 28.1705L13.7991 2.49739L11.8284 2.15631L7.38494 27.8295L9.35564 28.1705ZM12.8137 3.32685H17.9977V1.32685H12.8137V3.32685Z" fill="white" mask="url(#path-1-outside-1_2801_3)"/>
9
- </g>
10
- <defs>
11
- <clipPath id="clip0_2801_3">
12
- <rect width="32" height="32" fill="white"/>
13
- </clipPath>
14
- </defs>
15
- </svg>
package/src/app.css DELETED
@@ -1,121 +0,0 @@
1
- @import "tailwindcss";
2
-
3
- @import "tw-animate-css";
4
-
5
- @custom-variant dark (&:is(.dark *));
6
-
7
- :root {
8
- --radius: 0.625rem;
9
- --background: oklch(1 0 0);
10
- --foreground: oklch(0.129 0.042 264.695);
11
- --card: oklch(1 0 0);
12
- --card-foreground: oklch(0.129 0.042 264.695);
13
- --popover: oklch(1 0 0);
14
- --popover-foreground: oklch(0.129 0.042 264.695);
15
- --primary: oklch(0.208 0.042 265.755);
16
- --primary-foreground: oklch(0.984 0.003 247.858);
17
- --secondary: oklch(0.968 0.007 247.896);
18
- --secondary-foreground: oklch(0.208 0.042 265.755);
19
- --muted: oklch(0.968 0.007 247.896);
20
- --muted-foreground: oklch(0.554 0.046 257.417);
21
- --accent: oklch(0.968 0.007 247.896);
22
- --accent-foreground: oklch(0.208 0.042 265.755);
23
- --destructive: oklch(0.577 0.245 27.325);
24
- --border: oklch(0.929 0.013 255.508);
25
- --input: oklch(0.929 0.013 255.508);
26
- --ring: oklch(0.704 0.04 256.788);
27
- --chart-1: oklch(0.646 0.222 41.116);
28
- --chart-2: oklch(0.6 0.118 184.704);
29
- --chart-3: oklch(0.398 0.07 227.392);
30
- --chart-4: oklch(0.828 0.189 84.429);
31
- --chart-5: oklch(0.769 0.188 70.08);
32
- --sidebar: oklch(0.984 0.003 247.858);
33
- --sidebar-foreground: oklch(0.129 0.042 264.695);
34
- --sidebar-primary: oklch(0.208 0.042 265.755);
35
- --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
36
- --sidebar-accent: oklch(0.968 0.007 247.896);
37
- --sidebar-accent-foreground: oklch(0.208 0.042 265.755);
38
- --sidebar-border: oklch(0.929 0.013 255.508);
39
- --sidebar-ring: oklch(0.704 0.04 256.788);
40
- }
41
-
42
- .dark {
43
- --background: oklch(0.129 0.042 264.695);
44
- --foreground: oklch(0.984 0.003 247.858);
45
- --card: oklch(0.208 0.042 265.755);
46
- --card-foreground: oklch(0.984 0.003 247.858);
47
- --popover: oklch(0.208 0.042 265.755);
48
- --popover-foreground: oklch(0.984 0.003 247.858);
49
- --primary: oklch(0.929 0.013 255.508);
50
- --primary-foreground: oklch(0.208 0.042 265.755);
51
- --secondary: oklch(0.279 0.041 260.031);
52
- --secondary-foreground: oklch(0.984 0.003 247.858);
53
- --muted: oklch(0.279 0.041 260.031);
54
- --muted-foreground: oklch(0.704 0.04 256.788);
55
- --accent: oklch(0.279 0.041 260.031);
56
- --accent-foreground: oklch(0.984 0.003 247.858);
57
- --destructive: oklch(0.704 0.191 22.216);
58
- --border: oklch(1 0 0 / 10%);
59
- --input: oklch(1 0 0 / 15%);
60
- --ring: oklch(0.551 0.027 264.364);
61
- --chart-1: oklch(0.488 0.243 264.376);
62
- --chart-2: oklch(0.696 0.17 162.48);
63
- --chart-3: oklch(0.769 0.188 70.08);
64
- --chart-4: oklch(0.627 0.265 303.9);
65
- --chart-5: oklch(0.645 0.246 16.439);
66
- --sidebar: oklch(0.208 0.042 265.755);
67
- --sidebar-foreground: oklch(0.984 0.003 247.858);
68
- --sidebar-primary: oklch(0.488 0.243 264.376);
69
- --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
70
- --sidebar-accent: oklch(0.279 0.041 260.031);
71
- --sidebar-accent-foreground: oklch(0.984 0.003 247.858);
72
- --sidebar-border: oklch(1 0 0 / 10%);
73
- --sidebar-ring: oklch(0.551 0.027 264.364);
74
- }
75
-
76
- @theme inline {
77
- --radius-sm: calc(var(--radius) - 4px);
78
- --radius-md: calc(var(--radius) - 2px);
79
- --radius-lg: var(--radius);
80
- --radius-xl: calc(var(--radius) + 4px);
81
- --color-background: var(--background);
82
- --color-foreground: var(--foreground);
83
- --color-card: var(--card);
84
- --color-card-foreground: var(--card-foreground);
85
- --color-popover: var(--popover);
86
- --color-popover-foreground: var(--popover-foreground);
87
- --color-primary: var(--primary);
88
- --color-primary-foreground: var(--primary-foreground);
89
- --color-secondary: var(--secondary);
90
- --color-secondary-foreground: var(--secondary-foreground);
91
- --color-muted: var(--muted);
92
- --color-muted-foreground: var(--muted-foreground);
93
- --color-accent: var(--accent);
94
- --color-accent-foreground: var(--accent-foreground);
95
- --color-destructive: var(--destructive);
96
- --color-border: var(--border);
97
- --color-input: var(--input);
98
- --color-ring: var(--ring);
99
- --color-chart-1: var(--chart-1);
100
- --color-chart-2: var(--chart-2);
101
- --color-chart-3: var(--chart-3);
102
- --color-chart-4: var(--chart-4);
103
- --color-chart-5: var(--chart-5);
104
- --color-sidebar: var(--sidebar);
105
- --color-sidebar-foreground: var(--sidebar-foreground);
106
- --color-sidebar-primary: var(--sidebar-primary);
107
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
108
- --color-sidebar-accent: var(--sidebar-accent);
109
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
110
- --color-sidebar-border: var(--sidebar-border);
111
- --color-sidebar-ring: var(--sidebar-ring);
112
- }
113
-
114
- @layer base {
115
- * {
116
- @apply border-border outline-ring/50;
117
- }
118
- body {
119
- @apply bg-background text-foreground;
120
- }
121
- }
@@ -1,21 +0,0 @@
1
- // Re-export all Studio components for use in extensions and consuming apps
2
- export { Button } from "$lib/components/ui/button";
3
- export { Input } from "$lib/components/ui/input";
4
- export { Separator } from "$lib/components/ui/separator";
5
- export { Skeleton } from "$lib/components/ui/skeleton";
6
- export { default as LlmButton } from "$lib/components/LlmButton.svelte";
7
- export { default as Sidebar } from "$lib/components/sidebar/sidebar.svelte";
8
- export { default as SidebarTrigger } from "$lib/components/sidebar/sidebarTrigger.svelte";
9
- export { default as CreateDetailViewButton } from "$lib/components/detailView/create/createDetailViewButton.svelte";
10
- export { default as UpdateDetailViewButton } from "$lib/components/detailView/update/updateDetailViewButton.svelte";
11
- export * as Tooltip from "$lib/components/ui/tooltip";
12
- export * as Breadcrumb from "$lib/components/ui/breadcrumb";
13
- export { ContextMenu } from "bits-ui";
14
- export * as Popover from "$lib/components/ui/popover";
15
- export * as Icons from "lucide-svelte";
16
- export { default as Table } from "$lib/components/dataTable/table.svelte";
17
- export { default as RangeCalendarButton } from "$lib/components/rangeCalendarButton.svelte";
18
- export { default as DataTable } from "$lib/components/dataTable/dataTable.svelte";
19
- export { default as Drawer } from "$lib/components/drawer.svelte";
20
- export { default as SelectRecord } from "$lib/components/selectRecord.svelte";
21
- export { Switch } from "$lib/components/ui/switch";
@@ -1,93 +0,0 @@
1
- import type { Lobb } from "$lib/Lobb";
2
- import type { CTX } from "../lib/store.types";
3
- import type { Button } from "$lib/components/ui/button";
4
- import type { Input } from "$lib/components/ui/input";
5
- import type { Separator } from "$lib/components/ui/separator";
6
- import type { Skeleton } from "$lib/components/ui/skeleton";
7
- import type LlmButton from "$lib/components/LlmButton.svelte";
8
- import type Sidebar from "$lib/components/sidebar/sidebar.svelte";
9
- import type SidebarTrigger from "$lib/components/sidebar/sidebarTrigger.svelte";
10
- import type CreateDetailViewButton from "$lib/components/detailView/create/createDetailViewButton.svelte";
11
- import type UpdateDetailViewButton from "$lib/components/detailView/update/updateDetailViewButton.svelte";
12
- import type { getFileFromUser, mediaQueries } from "$lib/utils";
13
- import type Table from "$lib/components/dataTable/table.svelte";
14
- import type { Location } from "@wjfe/n-savant";
15
- import type RangeCalendarButton from "$lib/components/rangeCalendarButton.svelte";
16
- import type DataTable from "$lib/components/dataTable/dataTable.svelte";
17
- import type Drawer from "$lib/components/drawer.svelte";
18
- import type SelectRecord from "$lib/components/selectRecord.svelte";
19
- import * as Popover from "$lib/components/ui/popover";
20
- import * as intlDate from "@internationalized/date";
21
- import * as Icons from "lucide-svelte"
22
- import { ContextMenu } from "bits-ui";
23
- import * as Tooltip from "$lib/components/ui/tooltip";
24
- import * as Breadcrumb from "$lib/components/ui/breadcrumb";
25
- import { showDialog } from "$lib/components/confirmationDialog/store.svelte";
26
- import { toast } from "svelte-sonner";
27
- import type Drawer from "$lib/components/drawer.svelte";
28
- import { Switch } from "$lib/components/ui/switch";
29
-
30
- // extensions utils
31
- export interface Components {
32
- Button: typeof Button;
33
- Input: typeof Input;
34
- Separator: typeof Separator;
35
- Skeleton: typeof Skeleton;
36
- LlmButton: typeof LlmButton;
37
- Sidebar: typeof Sidebar;
38
- SidebarTrigger: typeof SidebarTrigger;
39
- CreateDetailViewButton: typeof CreateDetailViewButton;
40
- UpdateDetailViewButton: typeof UpdateDetailViewButton;
41
- Tooltip: typeof Tooltip;
42
- Breadcrumb: typeof Breadcrumb;
43
- ContextMenu: typeof ContextMenu;
44
- Popover: typeof Popover;
45
- Icons: typeof Icons;
46
- Table: typeof Table;
47
- RangeCalendarButton: typeof RangeCalendarButton;
48
- DataTable: typeof DataTable;
49
- Drawer: typeof Drawer;
50
- SelectRecord: typeof SelectRecord,
51
- Switch: typeof Switch,
52
- }
53
-
54
- export interface ExtensionUtils {
55
- ctx: CTX;
56
- lobb: Lobb;
57
- location: Location;
58
- toast: typeof toast;
59
- showDialog: typeof showDialog;
60
- getFileFromUser: typeof getFileFromUser;
61
- components: Components;
62
- mediaQueries: typeof mediaQueries;
63
- intlDate: typeof intlDate;
64
- }
65
-
66
- // dashboard nav
67
- interface DashboardNav {
68
- label: string;
69
- icon: any;
70
- href?: string;
71
- onclick?: () => void;
72
- navs?: DashboardNav[];
73
- }
74
-
75
- export interface DashboardNavs {
76
- top?: DashboardNav[];
77
- middle?: DashboardNav[];
78
- bottom?: DashboardNav[];
79
- }
80
-
81
- // extension components base Props
82
- export interface ExtensionProps {
83
- utils: ExtensionUtils;
84
- [key: string]: any;
85
- }
86
-
87
- // extension exported object
88
- export interface Extension {
89
- name: string;
90
- onStartup?: (utils: ExtensionUtils) => Promise<void>;
91
- components?: Record<string, any>;
92
- dashboardNavs?: DashboardNavs;
93
- }
@@ -1,192 +0,0 @@
1
- import type {
2
- Components,
3
- DashboardNavs,
4
- Extension,
5
- ExtensionUtils,
6
- } from "./extension.types";
7
- import { lobb } from "$lib";
8
- import { ctx } from "$lib/store.svelte";
9
- import { toast } from "svelte-sonner";
10
- import { showDialog } from "$lib/components/confirmationDialog/store.svelte";
11
- import { Button } from "$lib/components/ui/button";
12
- import { Input } from "$lib/components/ui/input";
13
- import { Separator } from "$lib/components/ui/separator";
14
- import { Skeleton } from "$lib/components/ui/skeleton";
15
- import Table from "$lib/components/dataTable/table.svelte";
16
- import { getFileFromUser, mediaQueries } from "$lib/utils";
17
- import LlmButton from "$lib/components/LlmButton.svelte";
18
- import Sidebar from "$lib/components/sidebar/sidebar.svelte";
19
- import SidebarTrigger from "$lib/components/sidebar/sidebarTrigger.svelte";
20
- import CreateDetailViewButton from "$lib/components/detailView/create/createDetailViewButton.svelte";
21
- import UpdateDetailViewButton from "$lib/components/detailView/update/updateDetailViewButton.svelte";
22
- import * as intlDate from "@internationalized/date";
23
- import * as Tooltip from "$lib/components/ui/tooltip";
24
- import * as Breadcrumb from "$lib/components/ui/breadcrumb";
25
- import { ContextMenu } from "bits-ui";
26
- import * as Popover from "$lib/components/ui/popover";
27
- import * as Icons from "lucide-svelte";
28
- import { location } from "@wjfe/n-savant";
29
- import RangeCalendarButton from "$lib/components/rangeCalendarButton.svelte";
30
- import DataTable from "$lib/components/dataTable/dataTable.svelte";
31
- import Drawer from "$lib/components/drawer.svelte";
32
- import SelectRecord from "$lib/components/selectRecord.svelte";
33
- import { Switch } from "$lib/components/ui/switch";
34
-
35
- export function getComponents(): Components {
36
- return {
37
- Button: Button,
38
- Input: Input,
39
- Separator: Separator,
40
- Skeleton: Skeleton,
41
- LlmButton: LlmButton,
42
- Sidebar: Sidebar,
43
- SidebarTrigger: SidebarTrigger,
44
- CreateDetailViewButton: CreateDetailViewButton,
45
- UpdateDetailViewButton: UpdateDetailViewButton,
46
- Tooltip: Tooltip,
47
- Breadcrumb: Breadcrumb,
48
- ContextMenu: ContextMenu,
49
- Popover: Popover,
50
- Icons: Icons,
51
- Table: Table,
52
- RangeCalendarButton: RangeCalendarButton,
53
- DataTable: DataTable,
54
- Drawer: Drawer,
55
- SelectRecord: SelectRecord,
56
- Switch: Switch,
57
- };
58
- }
59
-
60
- export function getExtensionUtils(): ExtensionUtils {
61
- return {
62
- ctx: ctx,
63
- lobb: lobb,
64
- location: location,
65
- toast: toast,
66
- showDialog: showDialog,
67
- getFileFromUser: getFileFromUser,
68
- components: getComponents(),
69
- mediaQueries: mediaQueries,
70
- intlDate: intlDate,
71
- };
72
- }
73
-
74
- export function getExtensionsThatHasDash(): string[] {
75
- const extensionNames = Object.keys(ctx.meta.extensions);
76
-
77
- const extensionsWithDashExt = [];
78
- for (let index = 0; index < extensionNames.length; index++) {
79
- const extensionName = extensionNames[index];
80
- const extensionMeta = ctx.meta.extensions[extensionName];
81
- if (extensionMeta.hasDashboardExtension) {
82
- extensionsWithDashExt.push(extensionName);
83
- }
84
- }
85
-
86
- return extensionsWithDashExt;
87
- }
88
-
89
- export async function loadExtensions(studioExtensions?: any[]): Promise<Record<string, Extension>> {
90
- const extensions: Record<string, Extension> = {};
91
-
92
-
93
- if (studioExtensions) {
94
- for (let index = 0; index < studioExtensions.length; index++) {
95
- const studioExtension = studioExtensions[index](getExtensionUtils());
96
- extensions[studioExtension.name] = studioExtension;
97
- }
98
- }
99
-
100
- const extensionsThatHasDash = getExtensionsThatHasDash();
101
- for (let index = 0; index < extensionsThatHasDash.length; index++) {
102
- const extensionName = extensionsThatHasDash[index];
103
-
104
- // Try to import locally-installed extension by name first
105
- if (extensionName && extensions[extensionName]) {
106
- continue;
107
- }
108
-
109
- // Fall back to remote import
110
- try {
111
- extensions[extensionName] = (
112
- await import(
113
- /* @vite-ignore */ `${ctx.lobbUrl}/api/extensions/${extensionName}/dashboard?v=${ctx.meta.extensions[extensionName]?.version}`
114
- )
115
- ).extension(getExtensionUtils());
116
- } catch (error) {
117
- console.warn(`Failed to load remote extension ${extensionName}`, error);
118
- }
119
- }
120
-
121
- return extensions;
122
- }
123
-
124
- export function loadExtensionComponents(
125
- name: string,
126
- filterByExtensions?: string[],
127
- ): any[] {
128
- const components = [];
129
- for (const [extensionName, extensionValue] of Object.entries(
130
- ctx.extensions,
131
- )) {
132
- if (filterByExtensions && !filterByExtensions.includes(extensionName)) {
133
- continue;
134
- }
135
- if (extensionValue.components) {
136
- for (const [componentName, componentValue] of Object.entries(
137
- extensionValue.components,
138
- )) {
139
- if (name.startsWith(componentName)) {
140
- components.push(componentValue);
141
- }
142
- }
143
- }
144
- }
145
- return components;
146
- }
147
-
148
- export async function executeExtensionsOnStartup() {
149
- const extensionNames: string[] = Object.keys(ctx.extensions);
150
- for (let index = 0; index < extensionNames.length; index++) {
151
- const extensionName = extensionNames[index];
152
- const extension = ctx.extensions[extensionName];
153
- if (extension) {
154
- if (extension.onStartup) {
155
- await extension.onStartup(getExtensionUtils());
156
- }
157
- }
158
- }
159
- }
160
-
161
- export function getDashboardNavs(): DashboardNavs {
162
- let navs: DashboardNavs = {
163
- top: [],
164
- middle: [],
165
- bottom: [],
166
- };
167
- const extensionNames: string[] = Object.keys(ctx.extensions);
168
- for (let index = 0; index < extensionNames.length; index++) {
169
- const extensionName = extensionNames[index];
170
- const extension = ctx.extensions[extensionName];
171
- if (extension) {
172
- if (extension.dashboardNavs && extension.dashboardNavs.top && navs.top) {
173
- navs.top = [...navs.top, ...extension.dashboardNavs.top];
174
- }
175
- if (
176
- extension.dashboardNavs &&
177
- extension.dashboardNavs.middle &&
178
- navs.middle
179
- ) {
180
- navs.middle = [...navs.middle, ...extension.dashboardNavs.middle];
181
- }
182
- if (
183
- extension.dashboardNavs &&
184
- extension.dashboardNavs.bottom &&
185
- navs.bottom
186
- ) {
187
- navs.bottom = [...navs.bottom, ...extension.dashboardNavs.bottom];
188
- }
189
- }
190
- }
191
- return navs;
192
- }