@tulip-systems/core 0.5.2 → 0.5.4

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 (423) hide show
  1. package/dist/auth/client.d.mts +3 -3
  2. package/dist/auth/client.mjs +2 -2
  3. package/dist/components/client.d.mts +2 -2
  4. package/dist/components/common/icons.d.mts +2 -2
  5. package/dist/components/common/icons.d.mts.map +1 -1
  6. package/dist/components/common/status.d.mts +3 -3
  7. package/dist/components/common/status.d.mts.map +1 -1
  8. package/dist/components/editor/components/content.client.d.mts +2 -2
  9. package/dist/components/editor/components/content.client.d.mts.map +1 -1
  10. package/dist/components/editor/components/editor.client.d.mts +6 -6
  11. package/dist/components/editor/components/editor.client.d.mts.map +1 -1
  12. package/dist/components/editor/components/editor.client.mjs +2 -2
  13. package/dist/components/editor/components/editor.client.mjs.map +1 -1
  14. package/dist/components/editor/components/menu.client.d.mts +3 -3
  15. package/dist/components/editor/components/menu.client.d.mts.map +1 -1
  16. package/dist/components/editor/components/menu.client.mjs +3 -0
  17. package/dist/components/editor/components/menu.client.mjs.map +1 -1
  18. package/dist/components/editor/extensions/file-handler/extension.d.mts +21 -0
  19. package/dist/components/editor/extensions/file-handler/extension.d.mts.map +1 -0
  20. package/dist/components/editor/extensions/file-handler/extension.mjs +40 -0
  21. package/dist/components/editor/extensions/file-handler/extension.mjs.map +1 -0
  22. package/dist/components/editor/extensions/file-handler/strategy.d.mts +29 -0
  23. package/dist/components/editor/extensions/file-handler/strategy.d.mts.map +1 -0
  24. package/dist/components/editor/extensions/file-handler/strategy.mjs +111 -0
  25. package/dist/components/editor/extensions/file-handler/strategy.mjs.map +1 -0
  26. package/dist/components/editor/extensions/file-handler/utils.mjs +50 -0
  27. package/dist/components/editor/extensions/file-handler/utils.mjs.map +1 -0
  28. package/dist/components/editor/extensions/image/extension.d.mts +8 -0
  29. package/dist/components/editor/extensions/image/extension.d.mts.map +1 -0
  30. package/dist/components/editor/extensions/image/extension.mjs +51 -0
  31. package/dist/components/editor/extensions/image/extension.mjs.map +1 -0
  32. package/dist/components/editor/extensions/skeleton/extension.mjs +41 -0
  33. package/dist/components/editor/extensions/skeleton/extension.mjs.map +1 -0
  34. package/dist/components/editor/extensions/skeleton/renderer.mjs +25 -0
  35. package/dist/components/editor/extensions/skeleton/renderer.mjs.map +1 -0
  36. package/dist/components/editor/lib/constants.d.mts +31 -28
  37. package/dist/components/editor/lib/constants.d.mts.map +1 -1
  38. package/dist/components/editor/lib/constants.mjs +17 -5
  39. package/dist/components/editor/lib/constants.mjs.map +1 -1
  40. package/dist/components/editor/lib/extensions.d.mts +7 -3
  41. package/dist/components/editor/lib/extensions.d.mts.map +1 -1
  42. package/dist/components/editor/lib/extensions.mjs.map +1 -1
  43. package/dist/components/editor/lib/helpers.d.mts.map +1 -1
  44. package/dist/components/editor/lib/helpers.mjs +38 -3
  45. package/dist/components/editor/lib/helpers.mjs.map +1 -1
  46. package/dist/components/editor/lib/variants.mjs +10 -2
  47. package/dist/components/editor/lib/variants.mjs.map +1 -1
  48. package/dist/components/header/back-button.client.d.mts +2 -2
  49. package/dist/components/header/back-button.client.d.mts.map +1 -1
  50. package/dist/components/header/bottom-bar.client.d.mts +3 -3
  51. package/dist/components/header/bottom-bar.client.d.mts.map +1 -1
  52. package/dist/components/header/breadcrumbs.client.d.mts +7 -7
  53. package/dist/components/header/breadcrumbs.client.d.mts.map +1 -1
  54. package/dist/components/header/header.client.d.mts +2 -2
  55. package/dist/components/header/header.client.d.mts.map +1 -1
  56. package/dist/components/header/mobile-nav-switcher.client.d.mts +2 -2
  57. package/dist/components/header/mobile-nav-switcher.client.d.mts.map +1 -1
  58. package/dist/components/header/top-bar.client.d.mts +4 -4
  59. package/dist/components/header/top-bar.client.d.mts.map +1 -1
  60. package/dist/components/layouts/admin-content.client.d.mts +2 -2
  61. package/dist/components/layouts/admin-content.client.d.mts.map +1 -1
  62. package/dist/components/layouts/admin-layout.d.mts +2 -2
  63. package/dist/components/layouts/admin-layout.d.mts.map +1 -1
  64. package/dist/components/layouts/admin-loading.d.mts +2 -2
  65. package/dist/components/layouts/admin-loading.d.mts.map +1 -1
  66. package/dist/components/layouts/empty-page.d.mts +4 -4
  67. package/dist/components/layouts/empty-page.d.mts.map +1 -1
  68. package/dist/components/layouts/error-page.d.mts +23 -0
  69. package/dist/components/layouts/error-page.d.mts.map +1 -0
  70. package/dist/components/layouts/error-page.mjs +58 -0
  71. package/dist/components/layouts/error-page.mjs.map +1 -0
  72. package/dist/components/layouts/list-layout.d.mts +2 -2
  73. package/dist/components/layouts/list-layout.d.mts.map +1 -1
  74. package/dist/components/layouts/not-allowed-page.d.mts +22 -0
  75. package/dist/components/layouts/not-allowed-page.d.mts.map +1 -0
  76. package/dist/components/layouts/not-allowed-page.mjs +25 -0
  77. package/dist/components/layouts/not-allowed-page.mjs.map +1 -0
  78. package/dist/components/layouts/not-found-page.d.mts +3 -3
  79. package/dist/components/layouts/not-found-page.d.mts.map +1 -1
  80. package/dist/components/layouts/providers.client.d.mts +2 -2
  81. package/dist/components/layouts/providers.client.d.mts.map +1 -1
  82. package/dist/components/layouts/root-layout.server.d.mts +2 -2
  83. package/dist/components/layouts/root-layout.server.d.mts.map +1 -1
  84. package/dist/components/layouts/root-loading.d.mts +2 -2
  85. package/dist/components/layouts/root-loading.d.mts.map +1 -1
  86. package/dist/components/layouts/tab-layout.d.mts +2 -2
  87. package/dist/components/layouts/tab-layout.d.mts.map +1 -1
  88. package/dist/components/lists/data-list.d.mts +5 -5
  89. package/dist/components/lists/data-list.d.mts.map +1 -1
  90. package/dist/components/lists/data-stack.d.mts +8 -8
  91. package/dist/components/lists/data-stack.d.mts.map +1 -1
  92. package/dist/components/navigation/admin-sidebar-paths.client.d.mts +21 -11
  93. package/dist/components/navigation/admin-sidebar-paths.client.d.mts.map +1 -1
  94. package/dist/components/navigation/admin-sidebar-paths.client.mjs +7 -5
  95. package/dist/components/navigation/admin-sidebar-paths.client.mjs.map +1 -1
  96. package/dist/components/ui/accordion.d.mts +5 -5
  97. package/dist/components/ui/accordion.d.mts.map +1 -1
  98. package/dist/components/ui/alert-dialog.d.mts +12 -12
  99. package/dist/components/ui/alert-dialog.d.mts.map +1 -1
  100. package/dist/components/ui/alert.d.mts +6 -6
  101. package/dist/components/ui/alert.d.mts.map +1 -1
  102. package/dist/components/ui/aspect-ratio.d.mts +2 -2
  103. package/dist/components/ui/aspect-ratio.d.mts.map +1 -1
  104. package/dist/components/ui/avatar.client.d.mts +4 -4
  105. package/dist/components/ui/avatar.client.d.mts.map +1 -1
  106. package/dist/components/ui/badge.d.mts +4 -4
  107. package/dist/components/ui/badge.d.mts.map +1 -1
  108. package/dist/components/ui/breadcrumb.d.mts +8 -8
  109. package/dist/components/ui/breadcrumb.d.mts.map +1 -1
  110. package/dist/components/ui/button.d.mts +5 -5
  111. package/dist/components/ui/button.d.mts.map +1 -1
  112. package/dist/components/ui/calendar.d.mts +3 -3
  113. package/dist/components/ui/calendar.d.mts.map +1 -1
  114. package/dist/components/ui/card.d.mts +7 -7
  115. package/dist/components/ui/card.d.mts.map +1 -1
  116. package/dist/components/ui/carousel.d.mts +6 -6
  117. package/dist/components/ui/carousel.d.mts.map +1 -1
  118. package/dist/components/ui/chart.client.d.mts +5 -5
  119. package/dist/components/ui/chart.client.d.mts.map +1 -1
  120. package/dist/components/ui/checkbox.d.mts +2 -2
  121. package/dist/components/ui/checkbox.d.mts.map +1 -1
  122. package/dist/components/ui/collapsible.client.d.mts +4 -4
  123. package/dist/components/ui/collapsible.client.d.mts.map +1 -1
  124. package/dist/components/ui/color-picker.client.d.mts +2 -2
  125. package/dist/components/ui/color-picker.client.d.mts.map +1 -1
  126. package/dist/components/ui/combobox-dropdown.client.d.mts +2 -2
  127. package/dist/components/ui/combobox-dropdown.client.d.mts.map +1 -1
  128. package/dist/components/ui/combobox.client.d.mts +2 -2
  129. package/dist/components/ui/combobox.client.d.mts.map +1 -1
  130. package/dist/components/ui/command.d.mts +10 -10
  131. package/dist/components/ui/command.d.mts.map +1 -1
  132. package/dist/components/ui/context-menu.d.mts +16 -16
  133. package/dist/components/ui/context-menu.d.mts.map +1 -1
  134. package/dist/components/ui/date-picker.client.d.mts +2 -2
  135. package/dist/components/ui/date-picker.client.d.mts.map +1 -1
  136. package/dist/components/ui/dialog.client.d.mts +11 -11
  137. package/dist/components/ui/dialog.client.d.mts.map +1 -1
  138. package/dist/components/ui/drawer.client.d.mts +11 -11
  139. package/dist/components/ui/drawer.client.d.mts.map +1 -1
  140. package/dist/components/ui/dropdown-menu.d.mts +16 -16
  141. package/dist/components/ui/form.client.d.mts +7 -7
  142. package/dist/components/ui/form.client.d.mts.map +1 -1
  143. package/dist/components/ui/hover-card.client.d.mts +4 -4
  144. package/dist/components/ui/hover-card.client.d.mts.map +1 -1
  145. package/dist/components/ui/input-recipient.d.mts +2 -2
  146. package/dist/components/ui/input.d.mts +2 -2
  147. package/dist/components/ui/label.d.mts +2 -2
  148. package/dist/components/ui/navigation-menu.d.mts +11 -11
  149. package/dist/components/ui/pagination.d.mts +8 -8
  150. package/dist/components/ui/popover.d.mts +5 -5
  151. package/dist/components/ui/progress.client.d.mts +2 -2
  152. package/dist/components/ui/progress.client.d.mts.map +1 -1
  153. package/dist/components/ui/radio-group.d.mts +3 -3
  154. package/dist/components/ui/resizable.client.d.mts +4 -4
  155. package/dist/components/ui/resizable.client.d.mts.map +1 -1
  156. package/dist/components/ui/scroll-area.d.mts +3 -3
  157. package/dist/components/ui/select.client.d.mts +11 -11
  158. package/dist/components/ui/select.client.d.mts.map +1 -1
  159. package/dist/components/ui/separator.d.mts +2 -2
  160. package/dist/components/ui/sheet.client.d.mts +9 -9
  161. package/dist/components/ui/sheet.client.d.mts.map +1 -1
  162. package/dist/components/ui/sidebar.client.d.mts +26 -26
  163. package/dist/components/ui/sidebar.client.d.mts.map +1 -1
  164. package/dist/components/ui/skeleton.d.mts +2 -2
  165. package/dist/components/ui/slider.d.mts +2 -2
  166. package/dist/components/ui/sonner.client.d.mts +2 -2
  167. package/dist/components/ui/switch.d.mts +2 -2
  168. package/dist/components/ui/tabs.d.mts +5 -5
  169. package/dist/components/ui/textarea.d.mts +2 -2
  170. package/dist/components/ui/time-input.client.d.mts +2 -2
  171. package/dist/components/ui/toggle-group.client.d.mts +3 -3
  172. package/dist/components/ui/toggle.d.mts +2 -2
  173. package/dist/components/ui/toggle.d.mts.map +1 -1
  174. package/dist/components/ui/tooltip.client.d.mts +5 -5
  175. package/dist/components/ui/tooltip.client.d.mts.map +1 -1
  176. package/dist/components/ui/tooltip.client.mjs +1 -1
  177. package/dist/components/ui/tooltip.client.mjs.map +1 -1
  178. package/dist/components.d.mts +4 -1
  179. package/dist/components.mjs +5 -2
  180. package/dist/data-tables.d.mts +2 -2
  181. package/dist/data-tables.mjs +2 -2
  182. package/dist/inline-edit/client.d.mts +2 -3
  183. package/dist/inline-edit/client.mjs +1 -2
  184. package/dist/lib/client.d.mts +2 -2
  185. package/dist/lib/client.mjs +2 -2
  186. package/dist/lib/hooks/use-action.d.mts +2 -2
  187. package/dist/lib/hooks/use-indicator.d.mts +11 -3
  188. package/dist/lib/hooks/use-indicator.d.mts.map +1 -1
  189. package/dist/lib/hooks/use-indicator.mjs +19 -8
  190. package/dist/lib/hooks/use-indicator.mjs.map +1 -1
  191. package/dist/modules/auth/components/allowed.client.d.mts +21 -7
  192. package/dist/modules/auth/components/allowed.client.d.mts.map +1 -1
  193. package/dist/modules/auth/components/allowed.client.mjs +8 -2
  194. package/dist/modules/auth/components/allowed.client.mjs.map +1 -1
  195. package/dist/modules/auth/components/auth-layout.server.d.mts +2 -2
  196. package/dist/modules/auth/components/auth-layout.server.d.mts.map +1 -1
  197. package/dist/modules/auth/components/auth-loading.d.mts +2 -2
  198. package/dist/modules/auth/components/auth-loading.d.mts.map +1 -1
  199. package/dist/modules/auth/components/create-first-user-page.client.d.mts +2 -2
  200. package/dist/modules/auth/components/create-first-user-page.client.d.mts.map +1 -1
  201. package/dist/modules/auth/components/forget-password-page.client.d.mts +2 -2
  202. package/dist/modules/auth/components/forget-password-page.client.d.mts.map +1 -1
  203. package/dist/modules/auth/components/guard-first-user.server.d.mts +2 -2
  204. package/dist/modules/auth/components/guard-first-user.server.d.mts.map +1 -1
  205. package/dist/modules/auth/components/guard.server.d.mts +2 -2
  206. package/dist/modules/auth/components/guard.server.d.mts.map +1 -1
  207. package/dist/modules/auth/components/login-page.client.d.mts +2 -2
  208. package/dist/modules/auth/components/login-page.client.d.mts.map +1 -1
  209. package/dist/modules/auth/components/reset-password-page.client.d.mts +2 -2
  210. package/dist/modules/auth/components/reset-password-page.client.d.mts.map +1 -1
  211. package/dist/modules/auth/components/update-password-command.d.mts +2 -2
  212. package/dist/modules/auth/components/update-password-command.d.mts.map +1 -1
  213. package/dist/modules/auth/db/schema.d.mts +73 -73
  214. package/dist/modules/auth/db/schema.d.mts.map +1 -1
  215. package/dist/modules/auth/handler/client.client.d.mts +143 -143
  216. package/dist/modules/auth/handler/client.client.d.mts.map +1 -1
  217. package/dist/modules/auth/handler/init.d.mts +131 -131
  218. package/dist/modules/auth/handler/init.d.mts.map +1 -1
  219. package/dist/modules/auth/hooks/use-permission.d.mts +48 -4
  220. package/dist/modules/auth/hooks/use-permission.d.mts.map +1 -1
  221. package/dist/modules/auth/hooks/use-permission.mjs +51 -4
  222. package/dist/modules/auth/hooks/use-permission.mjs.map +1 -1
  223. package/dist/modules/auth/lib/helpers.server.mjs +1 -1
  224. package/dist/modules/auth/lib/validators.d.mts +2 -2
  225. package/dist/modules/auth/lib/validators.d.mts.map +1 -1
  226. package/dist/modules/commands/components/alert-dialog-command.client.d.mts +10 -10
  227. package/dist/modules/commands/components/click-command.client.d.mts +2 -2
  228. package/dist/modules/commands/components/command-trigger.client.d.mts +6 -6
  229. package/dist/modules/commands/components/dialog-command.client.d.mts +8 -8
  230. package/dist/modules/commands/components/dropdown-command.client.d.mts +5 -5
  231. package/dist/modules/commands/components/empty-command.client.d.mts +2 -2
  232. package/dist/modules/commands/components/form-dialog-command.client.d.mts +11 -11
  233. package/dist/modules/commands/hooks/use-command-menu.client.d.mts.map +1 -1
  234. package/dist/modules/commands/hooks/use-command-menu.client.mjs +0 -5
  235. package/dist/modules/commands/hooks/use-command-menu.client.mjs.map +1 -1
  236. package/dist/modules/commands/hooks/use-command-mutation.client.d.mts +2 -2
  237. package/dist/modules/commands/menus/context-menu.client.d.mts +2 -2
  238. package/dist/modules/commands/menus/dropdown-menu.client.d.mts +3 -3
  239. package/dist/modules/commands/menus/inline-menu.client.d.mts +3 -3
  240. package/dist/modules/commands/menus/responsive-menu.client.d.mts +3 -3
  241. package/dist/modules/commands/utils/archive-command.client.d.mts +3 -3
  242. package/dist/modules/commands/utils/delete-command.client.d.mts +3 -3
  243. package/dist/modules/config/db/helpers.d.mts +5 -5
  244. package/dist/modules/config/db/helpers.d.mts.map +1 -1
  245. package/dist/modules/data-tables/components/cell/common.client.d.mts +5 -5
  246. package/dist/modules/data-tables/components/column-header.d.mts +2 -2
  247. package/dist/modules/data-tables/components/filters/combobox.client.d.mts +2 -2
  248. package/dist/modules/data-tables/components/filters/slider.client.d.mts +2 -2
  249. package/dist/modules/data-tables/components/header.d.mts +4 -4
  250. package/dist/modules/data-tables/components/layout.d.mts +2 -2
  251. package/dist/modules/data-tables/components/search-input.client.d.mts +2 -2
  252. package/dist/modules/data-tables/components/skeleton.d.mts +2 -2
  253. package/dist/modules/data-tables/components/table.d.mts +7 -7
  254. package/dist/modules/data-tables/components/toolbar.d.mts +3 -3
  255. package/dist/modules/data-tables/hooks/use-context.client.d.mts +2 -2
  256. package/dist/modules/data-tables/lib/filters/parsers.d.mts +6 -1
  257. package/dist/modules/data-tables/lib/filters/parsers.d.mts.map +1 -1
  258. package/dist/modules/data-tables/lib/filters/parsers.mjs +6 -1
  259. package/dist/modules/data-tables/lib/filters/parsers.mjs.map +1 -1
  260. package/dist/modules/data-tables/tables/data-table/components/table.d.mts +2 -2
  261. package/dist/modules/data-tables/tables/inline-table/components/cells/common.d.mts +2 -2
  262. package/dist/modules/data-tables/tables/inline-table/components/cells/drag-handle.client.d.mts +2 -2
  263. package/dist/modules/data-tables/tables/inline-table/components/inputs/advanced-select.client.d.mts +2 -2
  264. package/dist/modules/data-tables/tables/inline-table/components/inputs/combobox.client.d.mts +2 -2
  265. package/dist/modules/data-tables/tables/inline-table/components/inputs/input.client.d.mts +3 -3
  266. package/dist/modules/data-tables/tables/inline-table/components/inputs/read-only.d.mts +2 -2
  267. package/dist/modules/data-tables/tables/inline-table/components/inputs/select.client.d.mts +2 -2
  268. package/dist/modules/data-tables/tables/inline-table/components/table.d.mts +2 -2
  269. package/dist/modules/data-tables/tables/inline-table/hooks/context.client.d.mts +2 -2
  270. package/dist/modules/inline-edit/components/combobox-dropdown.client.d.mts +6 -4
  271. package/dist/modules/inline-edit/components/combobox-dropdown.client.d.mts.map +1 -1
  272. package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs +11 -6
  273. package/dist/modules/inline-edit/components/combobox-dropdown.client.mjs.map +1 -1
  274. package/dist/modules/inline-edit/components/combobox.client.d.mts +6 -4
  275. package/dist/modules/inline-edit/components/combobox.client.d.mts.map +1 -1
  276. package/dist/modules/inline-edit/components/combobox.client.mjs +7 -5
  277. package/dist/modules/inline-edit/components/combobox.client.mjs.map +1 -1
  278. package/dist/modules/inline-edit/components/date-input.client.d.mts +5 -3
  279. package/dist/modules/inline-edit/components/date-input.client.d.mts.map +1 -1
  280. package/dist/modules/inline-edit/components/date-input.client.mjs +26 -13
  281. package/dist/modules/inline-edit/components/date-input.client.mjs.map +1 -1
  282. package/dist/modules/inline-edit/components/date-picker.client.d.mts +6 -4
  283. package/dist/modules/inline-edit/components/date-picker.client.d.mts.map +1 -1
  284. package/dist/modules/inline-edit/components/date-picker.client.mjs +12 -7
  285. package/dist/modules/inline-edit/components/date-picker.client.mjs.map +1 -1
  286. package/dist/modules/inline-edit/components/editor.client.d.mts +6 -4
  287. package/dist/modules/inline-edit/components/editor.client.d.mts.map +1 -1
  288. package/dist/modules/inline-edit/components/editor.client.mjs +11 -6
  289. package/dist/modules/inline-edit/components/editor.client.mjs.map +1 -1
  290. package/dist/modules/inline-edit/components/input-recipient.client.d.mts +6 -4
  291. package/dist/modules/inline-edit/components/input-recipient.client.d.mts.map +1 -1
  292. package/dist/modules/inline-edit/components/input-recipient.client.mjs +11 -6
  293. package/dist/modules/inline-edit/components/input-recipient.client.mjs.map +1 -1
  294. package/dist/modules/inline-edit/components/input-toggle.client.d.mts +6 -4
  295. package/dist/modules/inline-edit/components/input-toggle.client.d.mts.map +1 -1
  296. package/dist/modules/inline-edit/components/input-toggle.client.mjs +9 -7
  297. package/dist/modules/inline-edit/components/input-toggle.client.mjs.map +1 -1
  298. package/dist/modules/inline-edit/components/input.client.d.mts +13 -10
  299. package/dist/modules/inline-edit/components/input.client.d.mts.map +1 -1
  300. package/dist/modules/inline-edit/components/input.client.mjs +35 -19
  301. package/dist/modules/inline-edit/components/input.client.mjs.map +1 -1
  302. package/dist/modules/inline-edit/components/select.client.d.mts +10 -9
  303. package/dist/modules/inline-edit/components/select.client.d.mts.map +1 -1
  304. package/dist/modules/inline-edit/components/select.client.mjs +14 -7
  305. package/dist/modules/inline-edit/components/select.client.mjs.map +1 -1
  306. package/dist/modules/inline-edit/components/switch.client.d.mts +5 -3
  307. package/dist/modules/inline-edit/components/switch.client.d.mts.map +1 -1
  308. package/dist/modules/inline-edit/components/switch.client.mjs +8 -6
  309. package/dist/modules/inline-edit/components/switch.client.mjs.map +1 -1
  310. package/dist/modules/inline-edit/components/toggle.client.d.mts +6 -4
  311. package/dist/modules/inline-edit/components/toggle.client.d.mts.map +1 -1
  312. package/dist/modules/inline-edit/components/toggle.client.mjs +9 -7
  313. package/dist/modules/inline-edit/components/toggle.client.mjs.map +1 -1
  314. package/dist/modules/inline-edit/hooks/context.client.d.mts +2 -2
  315. package/dist/modules/inline-edit/hooks/use-inline.client.d.mts +35 -3
  316. package/dist/modules/inline-edit/hooks/use-inline.client.d.mts.map +1 -1
  317. package/dist/modules/inline-edit/hooks/use-inline.client.mjs +71 -9
  318. package/dist/modules/inline-edit/hooks/use-inline.client.mjs.map +1 -1
  319. package/dist/modules/inline-edit/lib/variants.d.mts +1 -0
  320. package/dist/modules/inline-edit/lib/variants.d.mts.map +1 -1
  321. package/dist/modules/inline-edit/lib/variants.mjs +12 -4
  322. package/dist/modules/inline-edit/lib/variants.mjs.map +1 -1
  323. package/dist/modules/router/handler/init.server.d.mts +4 -4
  324. package/dist/modules/router/handler/init.server.mjs +1 -1
  325. package/dist/modules/router/lib/query-client.server.d.mts +2 -2
  326. package/dist/modules/storage/components/dropzone-context.client.d.mts +2 -2
  327. package/dist/modules/storage/components/dropzone.client.d.mts +5 -5
  328. package/dist/modules/storage/components/image-grid.client.d.mts +3 -3
  329. package/dist/modules/storage/components/image-grid.client.mjs +2 -2
  330. package/dist/modules/storage/components/image-grid.client.mjs.map +1 -1
  331. package/dist/modules/storage/components/upload-zone-context.client.d.mts +3 -11
  332. package/dist/modules/storage/components/upload-zone-context.client.d.mts.map +1 -1
  333. package/dist/modules/storage/components/upload-zone-context.client.mjs.map +1 -1
  334. package/dist/modules/storage/components/upload-zone.client.d.mts +10 -33
  335. package/dist/modules/storage/components/upload-zone.client.d.mts.map +1 -1
  336. package/dist/modules/storage/components/upload-zone.client.mjs +19 -93
  337. package/dist/modules/storage/components/upload-zone.client.mjs.map +1 -1
  338. package/dist/modules/storage/config/filters.d.mts +1 -0
  339. package/dist/modules/storage/config/filters.d.mts.map +1 -1
  340. package/dist/modules/storage/config/filters.mjs +1 -0
  341. package/dist/modules/storage/config/filters.mjs.map +1 -1
  342. package/dist/modules/storage/lib/create-upload.client.d.mts +56 -0
  343. package/dist/modules/storage/lib/create-upload.client.d.mts.map +1 -0
  344. package/dist/modules/storage/lib/create-upload.client.mjs +98 -0
  345. package/dist/modules/storage/lib/create-upload.client.mjs.map +1 -0
  346. package/dist/modules/storage/lib/helpers.d.mts +1 -1
  347. package/dist/modules/storage/lib/router.server.d.mts +3239 -2319
  348. package/dist/modules/storage/lib/router.server.d.mts.map +1 -1
  349. package/dist/modules/storage/lib/router.server.mjs +5 -2
  350. package/dist/modules/storage/lib/router.server.mjs.map +1 -1
  351. package/dist/modules/storage/lib/schema.d.mts +124 -90
  352. package/dist/modules/storage/lib/schema.d.mts.map +1 -1
  353. package/dist/modules/storage/lib/schema.mjs +2 -1
  354. package/dist/modules/storage/lib/schema.mjs.map +1 -1
  355. package/dist/modules/storage/lib/service.server.d.mts +28 -39
  356. package/dist/modules/storage/lib/service.server.d.mts.map +1 -1
  357. package/dist/modules/storage/lib/service.server.mjs +6 -6
  358. package/dist/modules/storage/lib/service.server.mjs.map +1 -1
  359. package/dist/modules/storage/lib/validators.d.mts +166 -86
  360. package/dist/modules/storage/lib/validators.d.mts.map +1 -1
  361. package/dist/modules/storage/lib/validators.mjs +2 -1
  362. package/dist/modules/storage/lib/validators.mjs.map +1 -1
  363. package/dist/router/server.mjs +1 -1
  364. package/dist/storage/client.d.mts +2 -1
  365. package/dist/storage/client.mjs +2 -8
  366. package/dist/storage.d.mts +2 -2
  367. package/dist/storage.mjs +1 -1
  368. package/package.json +4 -3
  369. package/src/components/editor/components/editor.client.tsx +7 -2
  370. package/src/components/editor/components/menu.client.tsx +26 -0
  371. package/src/components/editor/extensions/file-handler/extension.ts +69 -0
  372. package/src/components/editor/extensions/file-handler/strategy.ts +167 -0
  373. package/src/components/editor/extensions/file-handler/utils.ts +51 -0
  374. package/src/components/editor/extensions/image/extension.ts +55 -0
  375. package/src/components/editor/extensions/skeleton/extension.ts +35 -0
  376. package/src/components/editor/extensions/skeleton/renderer.tsx +14 -0
  377. package/src/components/editor/lib/constants.ts +16 -2
  378. package/src/components/editor/lib/extensions.ts +4 -1
  379. package/src/components/editor/lib/helpers.ts +39 -3
  380. package/src/components/editor/lib/utils.ts +32 -0
  381. package/src/components/editor/lib/variants.ts +72 -1
  382. package/src/components/entry.ts +4 -1
  383. package/src/components/layouts/error-page.tsx +61 -0
  384. package/src/components/layouts/not-allowed-page.tsx +1 -1
  385. package/src/components/navigation/admin-sidebar-paths.client.tsx +18 -2
  386. package/src/components/ui/tooltip.client.tsx +1 -1
  387. package/src/lib/hooks/use-indicator.tsx +27 -18
  388. package/src/modules/auth/components/allowed.client.tsx +35 -7
  389. package/src/modules/auth/hooks/use-permission.ts +88 -2
  390. package/src/modules/commands/hooks/use-command-menu.client.tsx +4 -7
  391. package/src/modules/data-tables/lib/filters/parsers.ts +14 -0
  392. package/src/modules/inline-edit/components/combobox-dropdown.client.tsx +21 -12
  393. package/src/modules/inline-edit/components/combobox.client.tsx +13 -6
  394. package/src/modules/inline-edit/components/date-input.client.tsx +29 -13
  395. package/src/modules/inline-edit/components/date-picker.client.tsx +13 -9
  396. package/src/modules/inline-edit/components/editor.client.tsx +14 -14
  397. package/src/modules/inline-edit/components/input-recipient.client.tsx +15 -8
  398. package/src/modules/inline-edit/components/input-toggle.client.tsx +16 -9
  399. package/src/modules/inline-edit/components/input.client.tsx +38 -24
  400. package/src/modules/inline-edit/components/select.client.tsx +16 -9
  401. package/src/modules/inline-edit/components/switch.client.tsx +10 -6
  402. package/src/modules/inline-edit/components/toggle.client.tsx +13 -9
  403. package/src/modules/inline-edit/entry.client.ts +0 -1
  404. package/src/modules/inline-edit/hooks/use-inline.client.tsx +139 -20
  405. package/src/modules/inline-edit/lib/variants.ts +7 -0
  406. package/src/modules/storage/components/image-grid.client.tsx +2 -2
  407. package/src/modules/storage/components/upload-zone-context.client.tsx +3 -4
  408. package/src/modules/storage/components/upload-zone.client.tsx +17 -116
  409. package/src/modules/storage/config/filters.ts +1 -0
  410. package/src/modules/storage/entry.client.ts +2 -1
  411. package/src/modules/storage/lib/create-upload.client.ts +134 -0
  412. package/src/modules/storage/lib/router.server.ts +1 -0
  413. package/src/modules/storage/lib/schema.ts +1 -0
  414. package/src/modules/storage/lib/service.server.ts +10 -4
  415. package/src/modules/storage/lib/validators.ts +1 -0
  416. package/dist/modules/auth/lib/utils.mjs +0 -21
  417. package/dist/modules/auth/lib/utils.mjs.map +0 -1
  418. package/dist/modules/inline-edit/components/deprecated-editor.client.d.mts +0 -21
  419. package/dist/modules/inline-edit/components/deprecated-editor.client.d.mts.map +0 -1
  420. package/dist/modules/inline-edit/components/deprecated-editor.client.mjs +0 -37
  421. package/dist/modules/inline-edit/components/deprecated-editor.client.mjs.map +0 -1
  422. package/dist/storage/client.mjs.map +0 -1
  423. package/src/modules/inline-edit/components/deprecated-editor.client.tsx +0 -48
@@ -1 +1 @@
1
- {"version":3,"file":"router.server.d.mts","names":[],"sources":["../../../../src/modules/storage/lib/router.server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;iBAoBgB,yBAAA,CAAA;;;;;;MAAA,IAAA,EAAA,OAAA;MAAyB,MAAA,EAAA,SAAA;;cAAA,qBAAA,CAAA"}
1
+ {"version":3,"file":"router.server.d.mts","names":[],"sources":["../../../../src/modules/storage/lib/router.server.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;iBAoBgB,yBAAA,CAAA;;;;;;MAAA,IAAA,EAAA,OAAA;MAAyB,MAAA,EAAA,SAAA;;cAAA,sBAAA,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { ServerError } from "../../router/lib/error.server.mjs";
2
+ import { isFolder } from "./helpers.mjs";
2
3
  import { bulkActionSchema } from "../../router/lib/validators.mjs";
3
4
  import { initRPC } from "../../router/handler/init.server.mjs";
4
- import { isFolder } from "./helpers.mjs";
5
5
  import { nodes } from "./schema.mjs";
6
6
  import { createFolderNodeSchema, getFileURLSchema, getNodesByParentIdSchema, presignFileSchema, selectNodeSchema, selectNodeWithChildrenSchema, updateNodeSchema } from "./validators.mjs";
7
7
  import { z as z$1 } from "zod";
@@ -50,7 +50,10 @@ function createDriveBaseProcedures() {
50
50
  if (!node) return null;
51
51
  return await context.storage.getSignedURL(node, options);
52
52
  }),
53
- presign: protectedProcedure.input(presignFileSchema).handler(async ({ context, input }) => context.storage.presignUpload(input)),
53
+ presign: protectedProcedure.input(presignFileSchema).output(z$1.object({
54
+ id: z$1.string(),
55
+ presignedUrl: z$1.string()
56
+ })).handler(async ({ context, input }) => context.storage.presignUpload(input)),
54
57
  confirm: protectedProcedure.input(z$1.object({ id: z$1.string() })).output(selectNodeSchema).handler(async ({ context, input }) => context.storage.confirmUpload(input)),
55
58
  createFolder: protectedProcedure.input(createFolderNodeSchema).output(selectNodeSchema).handler(async ({ context, input }) => context.storage.createFolder(input)),
56
59
  updateNode: protectedProcedure.input(z$1.object({
@@ -1 +1 @@
1
- {"version":3,"file":"router.server.mjs","names":["z"],"sources":["../../../../src/modules/storage/lib/router.server.ts"],"sourcesContent":["import { bulkActionSchema } from \"@/modules/router/entry\";\nimport { ServerError } from \"@/modules/router/entry.server\";\nimport { initRPC } from \"@/modules/router/handler/init.server\";\nimport { and, eq, sql } from \"drizzle-orm\";\nimport { z } from \"zod\";\nimport { isFolder } from \"./helpers\";\nimport { DriveSchema, nodes } from \"./schema\";\nimport {\n createFolderNodeSchema,\n getFileURLSchema,\n getNodesByParentIdSchema,\n presignFileSchema,\n selectNodeSchema,\n selectNodeWithChildrenSchema,\n updateNodeSchema,\n} from \"./validators\";\n\n/**\n * Create Drive base procedures\n */\nexport function createDriveBaseProcedures() {\n const { protectedProcedure } = initRPC<DriveSchema>();\n\n return {\n /**\n * Get node and its children\n */\n getNodeById: protectedProcedure\n .input(z.object({ id: z.string(), namespace: z.string() }))\n .output(selectNodeWithChildrenSchema.optional())\n .handler(async ({ context, input }) =>\n context.db.query.nodes.findFirst({\n where: and(eq(nodes.id, input.id), eq(nodes.namespace, input.namespace)),\n with: { children: true },\n }),\n ),\n /**\n * Get folders by parent id\n */\n getNodesByParentId: protectedProcedure\n .input(getNodesByParentIdSchema)\n .output(z.array(selectNodeSchema))\n .handler(async ({ context, input }) => context.storage.getNodesByParentId(input)),\n /**\n * Get parents of a folder\n */\n getFolderParents: protectedProcedure\n .input(z.object({ id: z.string().nullable(), namespace: z.string() }))\n .handler(async ({ context, input }) => {\n if (!input.id) return [];\n\n const startNodeQuery = context.db\n .select({\n id: nodes.id,\n name: nodes.name,\n parentId: nodes.parentId,\n depth: sql<number>`0`.as(\"depth\"),\n })\n .from(nodes)\n .where(and(eq(nodes.id, input.id), eq(nodes.namespace, input.namespace)));\n\n const alias = \"parent_nodes\";\n const parentNodesQueryAlias = startNodeQuery.as(alias);\n const recursiveQueryName = sql.raw(`\"${alias}\"`);\n\n const recursiveQuery = startNodeQuery.unionAll(\n context.db\n .select({\n id: nodes.id,\n name: nodes.name,\n parentId: nodes.parentId,\n depth: sql<number>`${parentNodesQueryAlias.depth} + 1`,\n })\n .from(nodes)\n .innerJoin(recursiveQueryName, eq(nodes.id, parentNodesQueryAlias.parentId)),\n );\n\n const result = (await context.db.execute(\n sql`WITH RECURSIVE ${recursiveQueryName} AS ${recursiveQuery}\n SELECT * FROM ${recursiveQueryName}`,\n )) as Awaited<ReturnType<(typeof recursiveQuery)[\"execute\"]>>;\n\n return result.toSorted((a, b) => Number(b.depth) - Number(a.depth));\n }),\n /**\n * Get presigned url for opening a file\n */\n getSignedURL: protectedProcedure\n .input(getFileURLSchema.extend({ id: z.string() }))\n .output(z.string().nullable())\n .handler(async ({ context, input: { id, ...options } }) => {\n const [node] = await context.db.select().from(nodes).where(eq(nodes.id, id));\n if (!node) return null;\n\n return await context.storage.getSignedURL(node, options);\n }),\n\n /**\n * Get presigned url for uploading a file\n */\n presign: protectedProcedure\n .input(presignFileSchema)\n .handler(async ({ context, input }) => context.storage.presignUpload(input)),\n /**\n * Confirm the upload\n */\n confirm: protectedProcedure\n .input(z.object({ id: z.string() }))\n .output(selectNodeSchema)\n .handler(async ({ context, input }) => context.storage.confirmUpload(input)),\n /**\n * Create a folder\n */\n createFolder: protectedProcedure\n .input(createFolderNodeSchema)\n .output(selectNodeSchema)\n .handler(async ({ context, input }) => context.storage.createFolder(input)),\n /**\n * Update node\n */\n updateNode: protectedProcedure\n .input(z.object({ id: z.string(), data: updateNodeSchema }))\n .output(selectNodeSchema)\n .handler(async ({ context, input }) => context.storage.updateNode(input)),\n /**\n * Change node parent\n */\n changeParent: protectedProcedure\n .input(z.object({ id: z.string(), parentId: z.string().nullish() }))\n .handler(async ({ context, input }) => {\n const [parent, node] = await Promise.all([\n input.parentId &&\n (await context.db.query.nodes.findFirst({\n where: eq(nodes.id, input.parentId),\n })),\n context.db.query.nodes.findFirst({\n where: eq(nodes.id, input.id),\n }),\n ]);\n\n /**\n * Validate\n */\n if (node?.readonly) {\n throw new ServerError(\"BAD_REQUEST\", {\n message: \"Deze node is alleen leesbaar en kan niet worden gewijzigd\",\n });\n }\n\n if (input.parentId && !parent)\n throw new ServerError(\"BAD_REQUEST\", { message: \"Parent not found\" });\n if (!node) throw new ServerError(\"BAD_REQUEST\", { message: \"Node not found\" });\n\n if (parent && !isFolder(parent)) {\n throw new ServerError(\"BAD_REQUEST\", { message: \"Parent is not a folder\" });\n }\n\n if (parent && parent.namespace !== node.namespace) {\n throw new ServerError(\"BAD_REQUEST\", {\n message: \"Parent is not in the same namespace\",\n });\n }\n\n /**\n * Update the parent\n */\n await context.db\n .update(nodes)\n .set({ parentId: input.parentId })\n .where(eq(nodes.id, input.id));\n }),\n /**\n * Delete nodes\n */\n deleteNodes: protectedProcedure\n .input(bulkActionSchema)\n .output(z.void())\n .handler(async ({ context, input }) => context.storage.deleteNodes(input)),\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"router.server.mjs","names":["z"],"sources":["../../../../src/modules/storage/lib/router.server.ts"],"sourcesContent":["import { bulkActionSchema } from \"@/modules/router/entry\";\nimport { ServerError } from \"@/modules/router/entry.server\";\nimport { initRPC } from \"@/modules/router/handler/init.server\";\nimport { and, eq, sql } from \"drizzle-orm\";\nimport { z } from \"zod\";\nimport { isFolder } from \"./helpers\";\nimport { DriveSchema, nodes } from \"./schema\";\nimport {\n createFolderNodeSchema,\n getFileURLSchema,\n getNodesByParentIdSchema,\n presignFileSchema,\n selectNodeSchema,\n selectNodeWithChildrenSchema,\n updateNodeSchema,\n} from \"./validators\";\n\n/**\n * Create Drive base procedures\n */\nexport function createDriveBaseProcedures() {\n const { protectedProcedure } = initRPC<DriveSchema>();\n\n return {\n /**\n * Get node and its children\n */\n getNodeById: protectedProcedure\n .input(z.object({ id: z.string(), namespace: z.string() }))\n .output(selectNodeWithChildrenSchema.optional())\n .handler(async ({ context, input }) =>\n context.db.query.nodes.findFirst({\n where: and(eq(nodes.id, input.id), eq(nodes.namespace, input.namespace)),\n with: { children: true },\n }),\n ),\n /**\n * Get folders by parent id\n */\n getNodesByParentId: protectedProcedure\n .input(getNodesByParentIdSchema)\n .output(z.array(selectNodeSchema))\n .handler(async ({ context, input }) => context.storage.getNodesByParentId(input)),\n /**\n * Get parents of a folder\n */\n getFolderParents: protectedProcedure\n .input(z.object({ id: z.string().nullable(), namespace: z.string() }))\n .handler(async ({ context, input }) => {\n if (!input.id) return [];\n\n const startNodeQuery = context.db\n .select({\n id: nodes.id,\n name: nodes.name,\n parentId: nodes.parentId,\n depth: sql<number>`0`.as(\"depth\"),\n })\n .from(nodes)\n .where(and(eq(nodes.id, input.id), eq(nodes.namespace, input.namespace)));\n\n const alias = \"parent_nodes\";\n const parentNodesQueryAlias = startNodeQuery.as(alias);\n const recursiveQueryName = sql.raw(`\"${alias}\"`);\n\n const recursiveQuery = startNodeQuery.unionAll(\n context.db\n .select({\n id: nodes.id,\n name: nodes.name,\n parentId: nodes.parentId,\n depth: sql<number>`${parentNodesQueryAlias.depth} + 1`,\n })\n .from(nodes)\n .innerJoin(recursiveQueryName, eq(nodes.id, parentNodesQueryAlias.parentId)),\n );\n\n const result = (await context.db.execute(\n sql`WITH RECURSIVE ${recursiveQueryName} AS ${recursiveQuery}\n SELECT * FROM ${recursiveQueryName}`,\n )) as Awaited<ReturnType<(typeof recursiveQuery)[\"execute\"]>>;\n\n return result.toSorted((a, b) => Number(b.depth) - Number(a.depth));\n }),\n /**\n * Get presigned url for opening a file\n */\n getSignedURL: protectedProcedure\n .input(getFileURLSchema.extend({ id: z.string() }))\n .output(z.string().nullable())\n .handler(async ({ context, input: { id, ...options } }) => {\n const [node] = await context.db.select().from(nodes).where(eq(nodes.id, id));\n if (!node) return null;\n\n return await context.storage.getSignedURL(node, options);\n }),\n\n /**\n * Get presigned url for uploading a file\n */\n presign: protectedProcedure\n .input(presignFileSchema)\n .output(z.object({ id: z.string(), presignedUrl: z.string() }))\n .handler(async ({ context, input }) => context.storage.presignUpload(input)),\n /**\n * Confirm the upload\n */\n confirm: protectedProcedure\n .input(z.object({ id: z.string() }))\n .output(selectNodeSchema)\n .handler(async ({ context, input }) => context.storage.confirmUpload(input)),\n /**\n * Create a folder\n */\n createFolder: protectedProcedure\n .input(createFolderNodeSchema)\n .output(selectNodeSchema)\n .handler(async ({ context, input }) => context.storage.createFolder(input)),\n /**\n * Update node\n */\n updateNode: protectedProcedure\n .input(z.object({ id: z.string(), data: updateNodeSchema }))\n .output(selectNodeSchema)\n .handler(async ({ context, input }) => context.storage.updateNode(input)),\n /**\n * Change node parent\n */\n changeParent: protectedProcedure\n .input(z.object({ id: z.string(), parentId: z.string().nullish() }))\n .handler(async ({ context, input }) => {\n const [parent, node] = await Promise.all([\n input.parentId &&\n (await context.db.query.nodes.findFirst({\n where: eq(nodes.id, input.parentId),\n })),\n context.db.query.nodes.findFirst({\n where: eq(nodes.id, input.id),\n }),\n ]);\n\n /**\n * Validate\n */\n if (node?.readonly) {\n throw new ServerError(\"BAD_REQUEST\", {\n message: \"Deze node is alleen leesbaar en kan niet worden gewijzigd\",\n });\n }\n\n if (input.parentId && !parent)\n throw new ServerError(\"BAD_REQUEST\", { message: \"Parent not found\" });\n if (!node) throw new ServerError(\"BAD_REQUEST\", { message: \"Node not found\" });\n\n if (parent && !isFolder(parent)) {\n throw new ServerError(\"BAD_REQUEST\", { message: \"Parent is not a folder\" });\n }\n\n if (parent && parent.namespace !== node.namespace) {\n throw new ServerError(\"BAD_REQUEST\", {\n message: \"Parent is not in the same namespace\",\n });\n }\n\n /**\n * Update the parent\n */\n await context.db\n .update(nodes)\n .set({ parentId: input.parentId })\n .where(eq(nodes.id, input.id));\n }),\n /**\n * Delete nodes\n */\n deleteNodes: protectedProcedure\n .input(bulkActionSchema)\n .output(z.void())\n .handler(async ({ context, input }) => context.storage.deleteNodes(input)),\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAoBA,SAAgB,4BAA4B;CAC1C,MAAM,EAAE,uBAAuB,SAAsB;AAErD,QAAO;EAIL,aAAa,mBACV,MAAMA,IAAE,OAAO;GAAE,IAAIA,IAAE,QAAQ;GAAE,WAAWA,IAAE,QAAQ;GAAE,CAAC,CAAC,CAC1D,OAAO,6BAA6B,UAAU,CAAC,CAC/C,QAAQ,OAAO,EAAE,SAAS,YACzB,QAAQ,GAAG,MAAM,MAAM,UAAU;GAC/B,OAAO,IAAI,GAAG,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,MAAM,WAAW,MAAM,UAAU,CAAC;GACxE,MAAM,EAAE,UAAU,MAAM;GACzB,CAAC,CACH;EAIH,oBAAoB,mBACjB,MAAM,yBAAyB,CAC/B,OAAOA,IAAE,MAAM,iBAAiB,CAAC,CACjC,QAAQ,OAAO,EAAE,SAAS,YAAY,QAAQ,QAAQ,mBAAmB,MAAM,CAAC;EAInF,kBAAkB,mBACf,MAAMA,IAAE,OAAO;GAAE,IAAIA,IAAE,QAAQ,CAAC,UAAU;GAAE,WAAWA,IAAE,QAAQ;GAAE,CAAC,CAAC,CACrE,QAAQ,OAAO,EAAE,SAAS,YAAY;AACrC,OAAI,CAAC,MAAM,GAAI,QAAO,EAAE;GAExB,MAAM,iBAAiB,QAAQ,GAC5B,OAAO;IACN,IAAI,MAAM;IACV,MAAM,MAAM;IACZ,UAAU,MAAM;IAChB,OAAO,GAAW,IAAI,GAAG,QAAQ;IAClC,CAAC,CACD,KAAK,MAAM,CACX,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,MAAM,WAAW,MAAM,UAAU,CAAC,CAAC;GAE3E,MAAM,QAAQ;GACd,MAAM,wBAAwB,eAAe,GAAG,MAAM;GACtD,MAAM,qBAAqB,IAAI,IAAI,IAAI,MAAM,GAAG;GAEhD,MAAM,iBAAiB,eAAe,SACpC,QAAQ,GACL,OAAO;IACN,IAAI,MAAM;IACV,MAAM,MAAM;IACZ,UAAU,MAAM;IAChB,OAAO,GAAW,GAAG,sBAAsB,MAAM;IAClD,CAAC,CACD,KAAK,MAAM,CACX,UAAU,oBAAoB,GAAG,MAAM,IAAI,sBAAsB,SAAS,CAAC,CAC/E;AAOD,WALgB,MAAM,QAAQ,GAAG,QAC/B,GAAG,kBAAkB,mBAAmB,MAAM,eAAe;gCACvC,qBACvB,EAEa,UAAU,GAAG,MAAM,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IACnE;EAIJ,cAAc,mBACX,MAAM,iBAAiB,OAAO,EAAE,IAAIA,IAAE,QAAQ,EAAE,CAAC,CAAC,CAClD,OAAOA,IAAE,QAAQ,CAAC,UAAU,CAAC,CAC7B,QAAQ,OAAO,EAAE,SAAS,OAAO,EAAE,IAAI,GAAG,gBAAgB;GACzD,MAAM,CAAC,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,GAAG,CAAC;AAC5E,OAAI,CAAC,KAAM,QAAO;AAElB,UAAO,MAAM,QAAQ,QAAQ,aAAa,MAAM,QAAQ;IACxD;EAKJ,SAAS,mBACN,MAAM,kBAAkB,CACxB,OAAOA,IAAE,OAAO;GAAE,IAAIA,IAAE,QAAQ;GAAE,cAAcA,IAAE,QAAQ;GAAE,CAAC,CAAC,CAC9D,QAAQ,OAAO,EAAE,SAAS,YAAY,QAAQ,QAAQ,cAAc,MAAM,CAAC;EAI9E,SAAS,mBACN,MAAMA,IAAE,OAAO,EAAE,IAAIA,IAAE,QAAQ,EAAE,CAAC,CAAC,CACnC,OAAO,iBAAiB,CACxB,QAAQ,OAAO,EAAE,SAAS,YAAY,QAAQ,QAAQ,cAAc,MAAM,CAAC;EAI9E,cAAc,mBACX,MAAM,uBAAuB,CAC7B,OAAO,iBAAiB,CACxB,QAAQ,OAAO,EAAE,SAAS,YAAY,QAAQ,QAAQ,aAAa,MAAM,CAAC;EAI7E,YAAY,mBACT,MAAMA,IAAE,OAAO;GAAE,IAAIA,IAAE,QAAQ;GAAE,MAAM;GAAkB,CAAC,CAAC,CAC3D,OAAO,iBAAiB,CACxB,QAAQ,OAAO,EAAE,SAAS,YAAY,QAAQ,QAAQ,WAAW,MAAM,CAAC;EAI3E,cAAc,mBACX,MAAMA,IAAE,OAAO;GAAE,IAAIA,IAAE,QAAQ;GAAE,UAAUA,IAAE,QAAQ,CAAC,SAAS;GAAE,CAAC,CAAC,CACnE,QAAQ,OAAO,EAAE,SAAS,YAAY;GACrC,MAAM,CAAC,QAAQ,QAAQ,MAAM,QAAQ,IAAI,CACvC,MAAM,YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,UAAU,EACtC,OAAO,GAAG,MAAM,IAAI,MAAM,SAAS,EACpC,CAAC,EACJ,QAAQ,GAAG,MAAM,MAAM,UAAU,EAC/B,OAAO,GAAG,MAAM,IAAI,MAAM,GAAG,EAC9B,CAAC,CACH,CAAC;;;;AAKF,OAAI,MAAM,SACR,OAAM,IAAI,YAAY,eAAe,EACnC,SAAS,6DACV,CAAC;AAGJ,OAAI,MAAM,YAAY,CAAC,OACrB,OAAM,IAAI,YAAY,eAAe,EAAE,SAAS,oBAAoB,CAAC;AACvE,OAAI,CAAC,KAAM,OAAM,IAAI,YAAY,eAAe,EAAE,SAAS,kBAAkB,CAAC;AAE9E,OAAI,UAAU,CAAC,SAAS,OAAO,CAC7B,OAAM,IAAI,YAAY,eAAe,EAAE,SAAS,0BAA0B,CAAC;AAG7E,OAAI,UAAU,OAAO,cAAc,KAAK,UACtC,OAAM,IAAI,YAAY,eAAe,EACnC,SAAS,uCACV,CAAC;;;;AAMJ,SAAM,QAAQ,GACX,OAAO,MAAM,CACb,IAAI,EAAE,UAAU,MAAM,UAAU,CAAC,CACjC,MAAM,GAAG,MAAM,IAAI,MAAM,GAAG,CAAC;IAChC;EAIJ,aAAa,mBACV,MAAM,iBAAiB,CACvB,OAAOA,IAAE,MAAM,CAAC,CAChB,QAAQ,OAAO,EAAE,SAAS,YAAY,QAAQ,QAAQ,YAAY,MAAM,CAAC;EAC7E"}