@svadmin/ui 0.29.3 → 0.30.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 (444) hide show
  1. package/dist/README.md +18 -0
  2. package/dist/actions.d.ts +35 -0
  3. package/dist/actions.js +84 -0
  4. package/dist/app.css +673 -0
  5. package/dist/component-registry.svelte.d.ts +36 -0
  6. package/dist/component-registry.svelte.js +20 -0
  7. package/dist/components/AICommandBar.svelte +180 -0
  8. package/dist/components/AICommandBar.svelte.d.ts +6 -0
  9. package/dist/components/AboutSettings.svelte +106 -0
  10. package/dist/components/AboutSettings.svelte.d.ts +18 -0
  11. package/dist/components/AdminApp.svelte +205 -0
  12. package/dist/components/AdminApp.svelte.d.ts +28 -0
  13. package/dist/components/AnimatedCounter.svelte +46 -0
  14. package/dist/components/AnimatedCounter.svelte.d.ts +11 -0
  15. package/dist/components/AnomalyBadge.svelte +65 -0
  16. package/dist/components/AnomalyBadge.svelte.d.ts +16 -0
  17. package/dist/components/AppearanceSettings.svelte +183 -0
  18. package/dist/components/AppearanceSettings.svelte.d.ts +3 -0
  19. package/dist/components/AuditLogDrawer.svelte +93 -0
  20. package/dist/components/AuditLogDrawer.svelte.d.ts +8 -0
  21. package/dist/components/AuditLogViewer.svelte +226 -0
  22. package/dist/components/AuditLogViewer.svelte.d.ts +3 -0
  23. package/dist/components/Authenticated.svelte +51 -0
  24. package/dist/components/Authenticated.svelte.d.ts +11 -0
  25. package/dist/components/AutoForm.svelte +244 -0
  26. package/dist/components/AutoForm.svelte.d.ts +20 -0
  27. package/dist/components/AutoSaveIndicator.svelte +35 -0
  28. package/dist/components/AutoSaveIndicator.svelte.d.ts +9 -0
  29. package/dist/components/AutoTable.svelte +839 -0
  30. package/dist/components/AutoTable.svelte.d.ts +44 -0
  31. package/dist/components/Breadcrumbs.svelte +58 -0
  32. package/dist/components/Breadcrumbs.svelte.d.ts +3 -0
  33. package/dist/components/CanAccess.svelte +23 -0
  34. package/dist/components/CanAccess.svelte.d.ts +12 -0
  35. package/dist/components/CatchAllNavigate.svelte +21 -0
  36. package/dist/components/CatchAllNavigate.svelte.d.ts +3 -0
  37. package/dist/components/ChatDialog.svelte +535 -0
  38. package/dist/components/ChatDialog.svelte.d.ts +14 -0
  39. package/dist/components/ComboboxField.svelte +129 -0
  40. package/dist/components/ComboboxField.svelte.d.ts +17 -0
  41. package/dist/components/CommandPalette.svelte +135 -0
  42. package/dist/components/CommandPalette.svelte.d.ts +8 -0
  43. package/dist/components/ConfigErrorScreen.svelte +126 -0
  44. package/dist/components/ConfigErrorScreen.svelte.d.ts +11 -0
  45. package/dist/components/ConfirmDialog.svelte +53 -0
  46. package/dist/components/ConfirmDialog.svelte.d.ts +13 -0
  47. package/dist/components/CopilotPanel.svelte +163 -0
  48. package/dist/components/CopilotPanel.svelte.d.ts +6 -0
  49. package/dist/components/CreatePage.svelte +39 -0
  50. package/dist/components/CreatePage.svelte.d.ts +10 -0
  51. package/dist/components/DevTools.svelte +149 -0
  52. package/dist/components/DevTools.svelte.d.ts +3 -0
  53. package/dist/components/DraggableGrid.svelte +86 -0
  54. package/dist/components/DraggableGrid.svelte.d.ts +17 -0
  55. package/dist/components/DraggableHeader.svelte +112 -0
  56. package/dist/components/DraggableHeader.svelte.d.ts +25 -0
  57. package/dist/components/DrawerForm.svelte +35 -0
  58. package/dist/components/DrawerForm.svelte.d.ts +11 -0
  59. package/dist/components/EditPage.svelte +52 -0
  60. package/dist/components/EditPage.svelte.d.ts +12 -0
  61. package/dist/components/EmptyState.svelte +31 -0
  62. package/dist/components/EmptyState.svelte.d.ts +8 -0
  63. package/dist/components/ErrorBoundary.svelte +49 -0
  64. package/dist/components/ErrorBoundary.svelte.d.ts +12 -0
  65. package/dist/components/ErrorComponent.svelte +36 -0
  66. package/dist/components/ErrorComponent.svelte.d.ts +9 -0
  67. package/dist/components/FieldRenderer.svelte +357 -0
  68. package/dist/components/FieldRenderer.svelte.d.ts +13 -0
  69. package/dist/components/ForgotPasswordPage.svelte +112 -0
  70. package/dist/components/ForgotPasswordPage.svelte.d.ts +6 -0
  71. package/dist/components/Header.svelte +94 -0
  72. package/dist/components/Header.svelte.d.ts +12 -0
  73. package/dist/components/InferencerPanel.svelte +192 -0
  74. package/dist/components/InferencerPanel.svelte.d.ts +3 -0
  75. package/dist/components/InfiniteList.svelte +93 -0
  76. package/dist/components/InfiniteList.svelte.d.ts +20 -0
  77. package/dist/components/InlineEdit.svelte +88 -0
  78. package/dist/components/InlineEdit.svelte.d.ts +12 -0
  79. package/dist/components/InsightCard.svelte +98 -0
  80. package/dist/components/InsightCard.svelte.d.ts +11 -0
  81. package/dist/components/KeyboardShortcuts.svelte +61 -0
  82. package/dist/components/KeyboardShortcuts.svelte.d.ts +6 -0
  83. package/dist/components/Layout.svelte +167 -0
  84. package/dist/components/Layout.svelte.d.ts +12 -0
  85. package/dist/components/ListPage.svelte +71 -0
  86. package/dist/components/ListPage.svelte.d.ts +32 -0
  87. package/dist/components/LiveIndicator.svelte +58 -0
  88. package/dist/components/LiveIndicator.svelte.d.ts +12 -0
  89. package/dist/components/LoginPage.svelte +163 -0
  90. package/dist/components/LoginPage.svelte.d.ts +28 -0
  91. package/dist/components/MarkdownRenderer.svelte +127 -0
  92. package/dist/components/MarkdownRenderer.svelte.d.ts +11 -0
  93. package/dist/components/ModalForm.svelte +38 -0
  94. package/dist/components/ModalForm.svelte.d.ts +10 -0
  95. package/dist/components/NavigateToResource.svelte +20 -0
  96. package/dist/components/NavigateToResource.svelte.d.ts +3 -0
  97. package/dist/components/PageHeader.svelte +39 -0
  98. package/dist/components/PageHeader.svelte.d.ts +11 -0
  99. package/dist/components/PageSkeleton.svelte +71 -0
  100. package/dist/components/PageSkeleton.svelte.d.ts +7 -0
  101. package/dist/components/PasswordInput.svelte +96 -0
  102. package/dist/components/PasswordInput.svelte.d.ts +12 -0
  103. package/dist/components/PermissionMatrix.svelte +185 -0
  104. package/dist/components/PermissionMatrix.svelte.d.ts +19 -0
  105. package/dist/components/ProfilePage.svelte +284 -0
  106. package/dist/components/ProfilePage.svelte.d.ts +3 -0
  107. package/dist/components/RegisterPage.svelte +112 -0
  108. package/dist/components/RegisterPage.svelte.d.ts +7 -0
  109. package/dist/components/RolesSettings.svelte +146 -0
  110. package/dist/components/RolesSettings.svelte.d.ts +3 -0
  111. package/dist/components/SettingsPage.svelte +113 -0
  112. package/dist/components/SettingsPage.svelte.d.ts +3 -0
  113. package/dist/components/ShowPage.svelte +73 -0
  114. package/dist/components/ShowPage.svelte.d.ts +7 -0
  115. package/dist/components/Sidebar.svelte +417 -0
  116. package/dist/components/Sidebar.svelte.d.ts +14 -0
  117. package/dist/components/SidebarItem.svelte +129 -0
  118. package/dist/components/SidebarItem.svelte.d.ts +11 -0
  119. package/dist/components/SmartSuggest.svelte +158 -0
  120. package/dist/components/SmartSuggest.svelte.d.ts +19 -0
  121. package/dist/components/StatsCard.svelte +79 -0
  122. package/dist/components/StatsCard.svelte.d.ts +23 -0
  123. package/dist/components/StepsForm.svelte +194 -0
  124. package/dist/components/StepsForm.svelte.d.ts +13 -0
  125. package/dist/components/TaskQueueDrawer.svelte +158 -0
  126. package/dist/components/TaskQueueDrawer.svelte.d.ts +11 -0
  127. package/dist/components/TenantSwitcher.svelte +84 -0
  128. package/dist/components/TenantSwitcher.svelte.d.ts +12 -0
  129. package/dist/components/ThemedTitle.svelte +32 -0
  130. package/dist/components/ThemedTitle.svelte.d.ts +9 -0
  131. package/dist/components/Toast.svelte +46 -0
  132. package/dist/components/Toast.svelte.d.ts +3 -0
  133. package/dist/components/TooltipButton.svelte +42 -0
  134. package/dist/components/TooltipButton.svelte.d.ts +14 -0
  135. package/dist/components/UndoableNotification.svelte +69 -0
  136. package/dist/components/UndoableNotification.svelte.d.ts +9 -0
  137. package/dist/components/UpdatePasswordPage.svelte +89 -0
  138. package/dist/components/UpdatePasswordPage.svelte.d.ts +6 -0
  139. package/dist/components/VirtualTable.svelte +76 -0
  140. package/dist/components/VirtualTable.svelte.d.ts +27 -0
  141. package/dist/components/VoiceInput.svelte +120 -0
  142. package/dist/components/VoiceInput.svelte.d.ts +15 -0
  143. package/dist/components/buttons/CloneButton.svelte +30 -0
  144. package/dist/components/buttons/CloneButton.svelte.d.ts +13 -0
  145. package/dist/components/buttons/CreateButton.svelte +29 -0
  146. package/dist/components/buttons/CreateButton.svelte.d.ts +12 -0
  147. package/dist/components/buttons/DeleteButton.svelte +59 -0
  148. package/dist/components/buttons/DeleteButton.svelte.d.ts +15 -0
  149. package/dist/components/buttons/EditButton.svelte +30 -0
  150. package/dist/components/buttons/EditButton.svelte.d.ts +13 -0
  151. package/dist/components/buttons/ExportButton.svelte +30 -0
  152. package/dist/components/buttons/ExportButton.svelte.d.ts +12 -0
  153. package/dist/components/buttons/ImportButton.svelte +56 -0
  154. package/dist/components/buttons/ImportButton.svelte.d.ts +19 -0
  155. package/dist/components/buttons/ListButton.svelte +23 -0
  156. package/dist/components/buttons/ListButton.svelte.d.ts +8 -0
  157. package/dist/components/buttons/RefreshButton.svelte +36 -0
  158. package/dist/components/buttons/RefreshButton.svelte.d.ts +8 -0
  159. package/dist/components/buttons/SaveButton.svelte +27 -0
  160. package/dist/components/buttons/SaveButton.svelte.d.ts +9 -0
  161. package/dist/components/buttons/ShowButton.svelte +31 -0
  162. package/dist/components/buttons/ShowButton.svelte.d.ts +13 -0
  163. package/dist/components/buttons/index.d.ts +10 -0
  164. package/dist/components/buttons/index.js +10 -0
  165. package/dist/components/charts/BarChart.svelte +69 -0
  166. package/dist/components/charts/BarChart.svelte.d.ts +15 -0
  167. package/dist/components/charts/LineChart.svelte +115 -0
  168. package/dist/components/charts/LineChart.svelte.d.ts +17 -0
  169. package/dist/components/charts/PieChart.svelte +95 -0
  170. package/dist/components/charts/PieChart.svelte.d.ts +15 -0
  171. package/dist/components/charts/index.d.ts +3 -0
  172. package/dist/components/charts/index.js +3 -0
  173. package/dist/components/fieldComponentMap.d.ts +24 -0
  174. package/dist/components/fieldComponentMap.js +65 -0
  175. package/dist/components/fields/ArrayField.svelte +86 -0
  176. package/dist/components/fields/ArrayField.svelte.d.ts +9 -0
  177. package/dist/components/fields/BooleanField.svelte +13 -0
  178. package/dist/components/fields/BooleanField.svelte.d.ts +8 -0
  179. package/dist/components/fields/DateField.svelte +6 -0
  180. package/dist/components/fields/DateField.svelte.d.ts +8 -0
  181. package/dist/components/fields/EmailField.svelte +9 -0
  182. package/dist/components/fields/EmailField.svelte.d.ts +6 -0
  183. package/dist/components/fields/FileField.svelte +14 -0
  184. package/dist/components/fields/FileField.svelte.d.ts +7 -0
  185. package/dist/components/fields/ImageField.svelte +9 -0
  186. package/dist/components/fields/ImageField.svelte.d.ts +9 -0
  187. package/dist/components/fields/JsonField.svelte +72 -0
  188. package/dist/components/fields/JsonField.svelte.d.ts +6 -0
  189. package/dist/components/fields/MarkdownField.svelte +9 -0
  190. package/dist/components/fields/MarkdownField.svelte.d.ts +6 -0
  191. package/dist/components/fields/MultiSelectField.svelte +21 -0
  192. package/dist/components/fields/MultiSelectField.svelte.d.ts +10 -0
  193. package/dist/components/fields/NumberField.svelte +6 -0
  194. package/dist/components/fields/NumberField.svelte.d.ts +8 -0
  195. package/dist/components/fields/RelationField.svelte +24 -0
  196. package/dist/components/fields/RelationField.svelte.d.ts +8 -0
  197. package/dist/components/fields/RichTextField.svelte +35 -0
  198. package/dist/components/fields/RichTextField.svelte.d.ts +7 -0
  199. package/dist/components/fields/SelectField.svelte +14 -0
  200. package/dist/components/fields/SelectField.svelte.d.ts +10 -0
  201. package/dist/components/fields/TagField.svelte +12 -0
  202. package/dist/components/fields/TagField.svelte.d.ts +6 -0
  203. package/dist/components/fields/TextField.svelte +11 -0
  204. package/dist/components/fields/TextField.svelte.d.ts +7 -0
  205. package/dist/components/fields/UrlField.svelte +14 -0
  206. package/dist/components/fields/UrlField.svelte.d.ts +7 -0
  207. package/dist/components/ui/alert/alert-description.svelte +17 -0
  208. package/dist/components/ui/alert/alert-description.svelte.d.ts +6 -0
  209. package/dist/components/ui/alert/alert-title.svelte +17 -0
  210. package/dist/components/ui/alert/alert-title.svelte.d.ts +6 -0
  211. package/dist/components/ui/alert/alert.svelte +44 -0
  212. package/dist/components/ui/alert/alert.svelte.d.ts +32 -0
  213. package/dist/components/ui/alert/index.d.ts +4 -0
  214. package/dist/components/ui/alert/index.js +5 -0
  215. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +29 -0
  216. package/dist/components/ui/alert-dialog/alert-dialog-content.svelte.d.ts +10 -0
  217. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +16 -0
  218. package/dist/components/ui/alert-dialog/alert-dialog-description.svelte.d.ts +7 -0
  219. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +11 -0
  220. package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte.d.ts +8 -0
  221. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +11 -0
  222. package/dist/components/ui/alert-dialog/alert-dialog-header.svelte.d.ts +8 -0
  223. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +16 -0
  224. package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte.d.ts +7 -0
  225. package/dist/components/ui/alert-dialog/alert-dialog-portal.svelte +6 -0
  226. package/dist/components/ui/alert-dialog/alert-dialog-portal.svelte.d.ts +3 -0
  227. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +16 -0
  228. package/dist/components/ui/alert-dialog/alert-dialog-title.svelte.d.ts +7 -0
  229. package/dist/components/ui/alert-dialog/index.d.ts +13 -0
  230. package/dist/components/ui/alert-dialog/index.js +13 -0
  231. package/dist/components/ui/avatar/avatar.svelte +63 -0
  232. package/dist/components/ui/avatar/avatar.svelte.d.ts +32 -0
  233. package/dist/components/ui/avatar/index.d.ts +2 -0
  234. package/dist/components/ui/avatar/index.js +2 -0
  235. package/dist/components/ui/badge/badge.svelte +49 -0
  236. package/dist/components/ui/badge/badge.svelte.d.ts +38 -0
  237. package/dist/components/ui/badge/index.d.ts +2 -0
  238. package/dist/components/ui/badge/index.js +3 -0
  239. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +18 -0
  240. package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +4 -0
  241. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +15 -0
  242. package/dist/components/ui/breadcrumb/breadcrumb-item.svelte.d.ts +8 -0
  243. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +15 -0
  244. package/dist/components/ui/breadcrumb/breadcrumb-link.svelte.d.ts +8 -0
  245. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +15 -0
  246. package/dist/components/ui/breadcrumb/breadcrumb-list.svelte.d.ts +8 -0
  247. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +18 -0
  248. package/dist/components/ui/breadcrumb/breadcrumb-page.svelte.d.ts +8 -0
  249. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +22 -0
  250. package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte.d.ts +8 -0
  251. package/dist/components/ui/breadcrumb/breadcrumb.svelte +11 -0
  252. package/dist/components/ui/breadcrumb/breadcrumb.svelte.d.ts +8 -0
  253. package/dist/components/ui/breadcrumb/index.d.ts +7 -0
  254. package/dist/components/ui/breadcrumb/index.js +7 -0
  255. package/dist/components/ui/button/button.svelte +90 -0
  256. package/dist/components/ui/button/button.svelte.d.ts +70 -0
  257. package/dist/components/ui/button/index.d.ts +2 -0
  258. package/dist/components/ui/button/index.js +5 -0
  259. package/dist/components/ui/card/card-action.svelte +23 -0
  260. package/dist/components/ui/card/card-action.svelte.d.ts +5 -0
  261. package/dist/components/ui/card/card-content.svelte +20 -0
  262. package/dist/components/ui/card/card-content.svelte.d.ts +5 -0
  263. package/dist/components/ui/card/card-description.svelte +20 -0
  264. package/dist/components/ui/card/card-description.svelte.d.ts +5 -0
  265. package/dist/components/ui/card/card-footer.svelte +20 -0
  266. package/dist/components/ui/card/card-footer.svelte.d.ts +5 -0
  267. package/dist/components/ui/card/card-header.svelte +23 -0
  268. package/dist/components/ui/card/card-header.svelte.d.ts +5 -0
  269. package/dist/components/ui/card/card-title.svelte +15 -0
  270. package/dist/components/ui/card/card-title.svelte.d.ts +5 -0
  271. package/dist/components/ui/card/card.svelte +22 -0
  272. package/dist/components/ui/card/card.svelte.d.ts +8 -0
  273. package/dist/components/ui/card/index.d.ts +8 -0
  274. package/dist/components/ui/card/index.js +10 -0
  275. package/dist/components/ui/checkbox/checkbox.svelte +39 -0
  276. package/dist/components/ui/checkbox/checkbox.svelte.d.ts +4 -0
  277. package/dist/components/ui/checkbox/index.d.ts +2 -0
  278. package/dist/components/ui/checkbox/index.js +4 -0
  279. package/dist/components/ui/collapsible/index.d.ts +5 -0
  280. package/dist/components/ui/collapsible/index.js +5 -0
  281. package/dist/components/ui/command/command-dialog.svelte +31 -0
  282. package/dist/components/ui/command/command-dialog.svelte.d.ts +10 -0
  283. package/dist/components/ui/command/index.d.ts +2 -0
  284. package/dist/components/ui/command/index.js +2 -0
  285. package/dist/components/ui/context-menu/index.d.ts +9 -0
  286. package/dist/components/ui/context-menu/index.js +9 -0
  287. package/dist/components/ui/dialog/dialog-close.svelte +11 -0
  288. package/dist/components/ui/dialog/dialog-close.svelte.d.ts +4 -0
  289. package/dist/components/ui/dialog/dialog-content.svelte +48 -0
  290. package/dist/components/ui/dialog/dialog-content.svelte.d.ts +13 -0
  291. package/dist/components/ui/dialog/dialog-description.svelte +17 -0
  292. package/dist/components/ui/dialog/dialog-description.svelte.d.ts +4 -0
  293. package/dist/components/ui/dialog/dialog-footer.svelte +32 -0
  294. package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +8 -0
  295. package/dist/components/ui/dialog/dialog-header.svelte +20 -0
  296. package/dist/components/ui/dialog/dialog-header.svelte.d.ts +5 -0
  297. package/dist/components/ui/dialog/dialog-overlay.svelte +17 -0
  298. package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
  299. package/dist/components/ui/dialog/dialog-portal.svelte +7 -0
  300. package/dist/components/ui/dialog/dialog-portal.svelte.d.ts +3 -0
  301. package/dist/components/ui/dialog/dialog-title.svelte +17 -0
  302. package/dist/components/ui/dialog/dialog-title.svelte.d.ts +4 -0
  303. package/dist/components/ui/dialog/dialog-trigger.svelte +11 -0
  304. package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +4 -0
  305. package/dist/components/ui/dialog/dialog.svelte +7 -0
  306. package/dist/components/ui/dialog/dialog.svelte.d.ts +3 -0
  307. package/dist/components/ui/dialog/index.d.ts +11 -0
  308. package/dist/components/ui/dialog/index.js +13 -0
  309. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +43 -0
  310. package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
  311. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +35 -0
  312. package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +8 -0
  313. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +36 -0
  314. package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +9 -0
  315. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +10 -0
  316. package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +6 -0
  317. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +27 -0
  318. package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +11 -0
  319. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +45 -0
  320. package/dist/components/ui/dropdown-menu/dropdown-menu.svelte.d.ts +9 -0
  321. package/dist/components/ui/dropdown-menu/index.d.ts +7 -0
  322. package/dist/components/ui/dropdown-menu/index.js +7 -0
  323. package/dist/components/ui/input/index.d.ts +2 -0
  324. package/dist/components/ui/input/index.js +4 -0
  325. package/dist/components/ui/input/input.svelte +48 -0
  326. package/dist/components/ui/input/input.svelte.d.ts +13 -0
  327. package/dist/components/ui/label/index.d.ts +1 -0
  328. package/dist/components/ui/label/index.js +1 -0
  329. package/dist/components/ui/label/label.svelte +18 -0
  330. package/dist/components/ui/label/label.svelte.d.ts +5 -0
  331. package/dist/components/ui/pagination/index.d.ts +7 -0
  332. package/dist/components/ui/pagination/index.js +7 -0
  333. package/dist/components/ui/pagination/pagination-content.svelte +11 -0
  334. package/dist/components/ui/pagination/pagination-content.svelte.d.ts +8 -0
  335. package/dist/components/ui/pagination/pagination-ellipsis.svelte +12 -0
  336. package/dist/components/ui/pagination/pagination-ellipsis.svelte.d.ts +4 -0
  337. package/dist/components/ui/pagination/pagination-item.svelte +11 -0
  338. package/dist/components/ui/pagination/pagination-item.svelte.d.ts +8 -0
  339. package/dist/components/ui/pagination/pagination-link.svelte +26 -0
  340. package/dist/components/ui/pagination/pagination-link.svelte.d.ts +9 -0
  341. package/dist/components/ui/pagination/pagination-next.svelte +22 -0
  342. package/dist/components/ui/pagination/pagination-next.svelte.d.ts +8 -0
  343. package/dist/components/ui/pagination/pagination-previous.svelte +22 -0
  344. package/dist/components/ui/pagination/pagination-previous.svelte.d.ts +8 -0
  345. package/dist/components/ui/pagination/pagination.svelte +11 -0
  346. package/dist/components/ui/pagination/pagination.svelte.d.ts +8 -0
  347. package/dist/components/ui/popover/index.d.ts +6 -0
  348. package/dist/components/ui/popover/index.js +6 -0
  349. package/dist/components/ui/popover/popover-content.svelte +25 -0
  350. package/dist/components/ui/popover/popover-content.svelte.d.ts +7 -0
  351. package/dist/components/ui/progress/index.d.ts +1 -0
  352. package/dist/components/ui/progress/index.js +1 -0
  353. package/dist/components/ui/progress/progress.svelte +22 -0
  354. package/dist/components/ui/progress/progress.svelte.d.ts +8 -0
  355. package/dist/components/ui/scroll-area/index.d.ts +1 -0
  356. package/dist/components/ui/scroll-area/index.js +1 -0
  357. package/dist/components/ui/scroll-area/scroll-area.svelte +20 -0
  358. package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +9 -0
  359. package/dist/components/ui/select/index.d.ts +2 -0
  360. package/dist/components/ui/select/index.js +2 -0
  361. package/dist/components/ui/select/select.svelte +36 -0
  362. package/dist/components/ui/select/select.svelte.d.ts +8 -0
  363. package/dist/components/ui/separator/index.d.ts +2 -0
  364. package/dist/components/ui/separator/index.js +4 -0
  365. package/dist/components/ui/separator/separator.svelte +23 -0
  366. package/dist/components/ui/separator/separator.svelte.d.ts +4 -0
  367. package/dist/components/ui/sheet/index.d.ts +7 -0
  368. package/dist/components/ui/sheet/index.js +7 -0
  369. package/dist/components/ui/sheet/sheet-content.svelte +28 -0
  370. package/dist/components/ui/sheet/sheet-content.svelte.d.ts +8 -0
  371. package/dist/components/ui/sheet/sheet-description.svelte +22 -0
  372. package/dist/components/ui/sheet/sheet-description.svelte.d.ts +6 -0
  373. package/dist/components/ui/sheet/sheet-footer.svelte +22 -0
  374. package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +6 -0
  375. package/dist/components/ui/sheet/sheet-header.svelte +22 -0
  376. package/dist/components/ui/sheet/sheet-header.svelte.d.ts +6 -0
  377. package/dist/components/ui/sheet/sheet-title.svelte +22 -0
  378. package/dist/components/ui/sheet/sheet-title.svelte.d.ts +6 -0
  379. package/dist/components/ui/sheet/sheet.svelte +78 -0
  380. package/dist/components/ui/sheet/sheet.svelte.d.ts +10 -0
  381. package/dist/components/ui/skeleton/index.d.ts +2 -0
  382. package/dist/components/ui/skeleton/index.js +2 -0
  383. package/dist/components/ui/skeleton/skeleton.svelte +21 -0
  384. package/dist/components/ui/skeleton/skeleton.svelte.d.ts +8 -0
  385. package/dist/components/ui/switch/index.d.ts +2 -0
  386. package/dist/components/ui/switch/index.js +2 -0
  387. package/dist/components/ui/switch/switch.svelte +49 -0
  388. package/dist/components/ui/switch/switch.svelte.d.ts +10 -0
  389. package/dist/components/ui/table/index.d.ts +9 -0
  390. package/dist/components/ui/table/index.js +11 -0
  391. package/dist/components/ui/table/table-body.svelte +15 -0
  392. package/dist/components/ui/table/table-body.svelte.d.ts +5 -0
  393. package/dist/components/ui/table/table-caption.svelte +20 -0
  394. package/dist/components/ui/table/table-caption.svelte.d.ts +5 -0
  395. package/dist/components/ui/table/table-cell.svelte +15 -0
  396. package/dist/components/ui/table/table-cell.svelte.d.ts +5 -0
  397. package/dist/components/ui/table/table-footer.svelte +20 -0
  398. package/dist/components/ui/table/table-footer.svelte.d.ts +5 -0
  399. package/dist/components/ui/table/table-head.svelte +15 -0
  400. package/dist/components/ui/table/table-head.svelte.d.ts +5 -0
  401. package/dist/components/ui/table/table-header.svelte +20 -0
  402. package/dist/components/ui/table/table-header.svelte.d.ts +5 -0
  403. package/dist/components/ui/table/table-row.svelte +15 -0
  404. package/dist/components/ui/table/table-row.svelte.d.ts +5 -0
  405. package/dist/components/ui/table/table.svelte +17 -0
  406. package/dist/components/ui/table/table.svelte.d.ts +5 -0
  407. package/dist/components/ui/tabs/index.d.ts +5 -0
  408. package/dist/components/ui/tabs/index.js +5 -0
  409. package/dist/components/ui/tabs/tabs-content.svelte +30 -0
  410. package/dist/components/ui/tabs/tabs-content.svelte.d.ts +9 -0
  411. package/dist/components/ui/tabs/tabs-list.svelte +26 -0
  412. package/dist/components/ui/tabs/tabs-list.svelte.d.ts +6 -0
  413. package/dist/components/ui/tabs/tabs-trigger.svelte +37 -0
  414. package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +9 -0
  415. package/dist/components/ui/tabs/tabs.svelte +27 -0
  416. package/dist/components/ui/tabs/tabs.svelte.d.ts +9 -0
  417. package/dist/components/ui/textarea/index.d.ts +2 -0
  418. package/dist/components/ui/textarea/index.js +2 -0
  419. package/dist/components/ui/textarea/textarea.svelte +24 -0
  420. package/dist/components/ui/textarea/textarea.svelte.d.ts +6 -0
  421. package/dist/components/ui/tooltip/index.d.ts +6 -0
  422. package/dist/components/ui/tooltip/index.js +8 -0
  423. package/dist/components/ui/tooltip/tooltip-content.svelte +52 -0
  424. package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +11 -0
  425. package/dist/components/ui/tooltip/tooltip-portal.svelte +7 -0
  426. package/dist/components/ui/tooltip/tooltip-portal.svelte.d.ts +4 -0
  427. package/dist/components/ui/tooltip/tooltip-provider.svelte +7 -0
  428. package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +4 -0
  429. package/dist/components/ui/tooltip/tooltip-trigger.svelte +7 -0
  430. package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +4 -0
  431. package/dist/components/ui/tooltip/tooltip.svelte +10 -0
  432. package/dist/components/ui/tooltip/tooltip.svelte.d.ts +4 -0
  433. package/dist/editor-config.svelte.d.ts +15 -0
  434. package/dist/editor-config.svelte.js +19 -0
  435. package/dist/index.d.ts +117 -0
  436. package/dist/index.js +127 -0
  437. package/dist/markdown-deps.d.ts +21 -0
  438. package/dist/router-state.svelte.d.ts +5 -0
  439. package/dist/router-state.svelte.js +58 -0
  440. package/dist/types.d.ts +42 -0
  441. package/dist/types.js +1 -0
  442. package/dist/utils.d.ts +16 -0
  443. package/dist/utils.js +5 -0
  444. package/package.json +2 -2
package/dist/app.css ADDED
@@ -0,0 +1,673 @@
1
+ /* Typography — Inter font for clean, modern look */
2
+
3
+ /* @svadmin/ui — Design Tokens (Elygate-inspired)
4
+ * Auto-imported by AdminApp. Can be overridden by consumer's CSS.
5
+ *
6
+ * Based on Elygate dashboard style: Indigo primary, light glassmorphism,
7
+ * professional admin aesthetic with subtle depth.
8
+ */
9
+
10
+ @layer base {
11
+ /* Global border-color reset — ensures Tailwind border utilities
12
+ * (border-r, border-t, etc.) use the theme color instead of currentColor */
13
+ *,
14
+ ::after,
15
+ ::before {
16
+ border-color: var(--border);
17
+ }
18
+
19
+ :root {
20
+ --radius: 0.5rem;
21
+ --background: oklch(0.98 0.002 264);
22
+ --foreground: oklch(0.13 0.02 265);
23
+ --card: oklch(1 0 0);
24
+ --card-foreground: oklch(0.13 0.02 265);
25
+ --popover: oklch(1 0 0);
26
+ --popover-foreground: oklch(0.13 0.02 265);
27
+ --primary: oklch(0.488 0.243 264.376);
28
+ --primary-foreground: oklch(0.985 0 0);
29
+ --secondary: oklch(0.955 0.008 264);
30
+ --secondary-foreground: oklch(0.2 0.04 265);
31
+ --muted: oklch(0.955 0.005 264);
32
+ --muted-foreground: oklch(0.45 0.03 260);
33
+ --accent: oklch(0.955 0.008 264);
34
+ --accent-foreground: oklch(0.2 0.04 265);
35
+ --destructive: oklch(0.577 0.245 27.325);
36
+ --destructive-foreground: oklch(0.985 0 0);
37
+ --border: oklch(0.935 0.005 264);
38
+ --input: oklch(0.935 0.005 264);
39
+ --ring: oklch(0.488 0.243 264.376);
40
+ --chart-1: oklch(0.488 0.243 264.376);
41
+ --chart-2: oklch(0.6 0.118 184.704);
42
+ --chart-3: oklch(0.398 0.07 227.392);
43
+ --chart-4: oklch(0.828 0.189 84.429);
44
+ --chart-5: oklch(0.769 0.188 70.08);
45
+ --success: oklch(0.6 0.2 145);
46
+ --success-foreground: oklch(0.985 0 0);
47
+ --warning: oklch(0.75 0.18 85);
48
+ --warning-foreground: oklch(0.3 0.08 60);
49
+ --info: oklch(0.6 0.15 250);
50
+ --info-foreground: oklch(0.985 0 0);
51
+ --sidebar: oklch(1 0 0 / 80%);
52
+ --sidebar-foreground: oklch(0.13 0.02 265);
53
+ --sidebar-primary: oklch(0.488 0.243 264.376);
54
+ --sidebar-primary-foreground: oklch(0.985 0 0);
55
+ --sidebar-accent: oklch(0.94 0.025 264);
56
+ --sidebar-accent-foreground: oklch(0.33 0.17 264);
57
+ --sidebar-border: oklch(0.935 0.005 264);
58
+ --sidebar-ring: oklch(0.488 0.243 264.376);
59
+ }
60
+
61
+ .dark {
62
+ --background: oklch(0.13 0.015 265);
63
+ --foreground: oklch(0.985 0 0);
64
+ --card: oklch(0.16 0.015 265);
65
+ --card-foreground: oklch(0.985 0 0);
66
+ --popover: oklch(0.16 0.015 265);
67
+ --popover-foreground: oklch(0.985 0 0);
68
+ --primary: oklch(0.585 0.233 264);
69
+ --primary-foreground: oklch(0.15 0.04 265);
70
+ --secondary: oklch(0.23 0.025 265);
71
+ --secondary-foreground: oklch(0.985 0 0);
72
+ --muted: oklch(0.23 0.025 265);
73
+ --muted-foreground: oklch(0.7 0.02 260);
74
+ --accent: oklch(0.23 0.025 265);
75
+ --accent-foreground: oklch(0.985 0 0);
76
+ --destructive: oklch(0.704 0.191 22.216);
77
+ --destructive-foreground: oklch(0.985 0 0);
78
+ --border: oklch(0.27 0.02 265);
79
+ --input: oklch(0.27 0.02 265);
80
+ --ring: oklch(0.55 0.18 264);
81
+ --chart-1: oklch(0.585 0.233 264);
82
+ --chart-2: oklch(0.696 0.17 162.48);
83
+ --chart-3: oklch(0.769 0.188 70.08);
84
+ --chart-4: oklch(0.627 0.265 303.9);
85
+ --chart-5: oklch(0.645 0.246 16.439);
86
+ --success: oklch(0.65 0.2 150);
87
+ --success-foreground: oklch(0.985 0 0);
88
+ --warning: oklch(0.8 0.15 85);
89
+ --warning-foreground: oklch(0.25 0.05 60);
90
+ --info: oklch(0.65 0.15 250);
91
+ --info-foreground: oklch(0.985 0 0);
92
+ --sidebar: oklch(0.16 0.015 265 / 80%);
93
+ --sidebar-foreground: oklch(0.985 0 0);
94
+ --sidebar-primary: oklch(0.585 0.233 264);
95
+ --sidebar-primary-foreground: oklch(0.985 0 0);
96
+ --sidebar-accent: oklch(0.488 0.243 264.376 / 10%);
97
+ --sidebar-accent-foreground: oklch(0.7 0.15 264);
98
+ --sidebar-border: oklch(0.27 0.02 265);
99
+ --sidebar-ring: oklch(0.55 0.18 264);
100
+ }
101
+
102
+ /* ── Color Theme Overrides ──────────────────────────────
103
+ * Each [data-theme] selector overrides the primary-related
104
+ * CSS variables for both light and dark mode.
105
+ * Values match builtinPresets in @svadmin/core/theme.
106
+ * This CSS-level fallback prevents FOUC before JS inits.
107
+ */
108
+
109
+ /* Neutral */
110
+ [data-theme="neutral"] {
111
+ --primary: oklch(0.205 0.006 286);
112
+ --primary-foreground: oklch(0.985 0 0);
113
+ --ring: oklch(0.205 0.006 286);
114
+ --sidebar-primary: oklch(0.205 0.006 286);
115
+ --sidebar-primary-foreground: oklch(0.985 0 0);
116
+ --sidebar-ring: oklch(0.205 0.006 286);
117
+ --chart-1: oklch(0.488 0.243 264.376);
118
+ }
119
+ .dark[data-theme="neutral"],
120
+ .dark [data-theme="neutral"] {
121
+ --primary: oklch(0.922 0.004 286);
122
+ --primary-foreground: oklch(0.205 0.006 286);
123
+ --ring: oklch(0.556 0.004 286);
124
+ --sidebar-primary: oklch(0.922 0.004 286);
125
+ --sidebar-primary-foreground: oklch(0.205 0.006 286);
126
+ --sidebar-ring: oklch(0.556 0.004 286);
127
+ --chart-1: oklch(0.585 0.233 264);
128
+ }
129
+
130
+ /* Indigo (default) */
131
+ [data-theme="indigo"] {
132
+ --primary: oklch(0.488 0.243 264.376);
133
+ --primary-foreground: oklch(0.985 0 0);
134
+ --ring: oklch(0.488 0.243 264.376);
135
+ --sidebar-primary: oklch(0.488 0.243 264.376);
136
+ --sidebar-primary-foreground: oklch(0.985 0 0);
137
+ --sidebar-ring: oklch(0.488 0.243 264.376);
138
+ --chart-1: oklch(0.488 0.243 264.376);
139
+ }
140
+ .dark[data-theme="indigo"],
141
+ .dark [data-theme="indigo"] {
142
+ --primary: oklch(0.585 0.233 264);
143
+ --primary-foreground: oklch(0.15 0.04 265);
144
+ --ring: oklch(0.55 0.18 264);
145
+ --sidebar-primary: oklch(0.585 0.233 264);
146
+ --sidebar-primary-foreground: oklch(0.985 0 0);
147
+ --sidebar-ring: oklch(0.55 0.18 264);
148
+ --chart-1: oklch(0.585 0.233 264);
149
+ }
150
+
151
+ /* Blue */
152
+ [data-theme="blue"] {
153
+ --primary: oklch(0.546 0.245 262.881);
154
+ --primary-foreground: oklch(0.985 0 0);
155
+ --ring: oklch(0.546 0.245 262.881);
156
+ --sidebar-primary: oklch(0.546 0.245 262.881);
157
+ --sidebar-primary-foreground: oklch(0.985 0 0);
158
+ --sidebar-ring: oklch(0.546 0.245 262.881);
159
+ --chart-1: oklch(0.546 0.245 262.881);
160
+ }
161
+ .dark[data-theme="blue"],
162
+ .dark [data-theme="blue"] {
163
+ --primary: oklch(0.623 0.214 259.815);
164
+ --primary-foreground: oklch(0.15 0.04 265);
165
+ --ring: oklch(0.546 0.245 262.881);
166
+ --sidebar-primary: oklch(0.623 0.214 259.815);
167
+ --sidebar-primary-foreground: oklch(0.985 0 0);
168
+ --sidebar-ring: oklch(0.546 0.245 262.881);
169
+ --chart-1: oklch(0.623 0.214 259.815);
170
+ }
171
+
172
+ /* Green */
173
+ [data-theme="green"] {
174
+ --primary: oklch(0.527 0.185 150.069);
175
+ --primary-foreground: oklch(0.985 0 0);
176
+ --ring: oklch(0.527 0.185 150.069);
177
+ --sidebar-primary: oklch(0.527 0.185 150.069);
178
+ --sidebar-primary-foreground: oklch(0.985 0 0);
179
+ --sidebar-ring: oklch(0.527 0.185 150.069);
180
+ --chart-1: oklch(0.527 0.185 150.069);
181
+ }
182
+ .dark[data-theme="green"],
183
+ .dark [data-theme="green"] {
184
+ --primary: oklch(0.627 0.194 149.214);
185
+ --primary-foreground: oklch(0.15 0.05 150);
186
+ --ring: oklch(0.527 0.185 150.069);
187
+ --sidebar-primary: oklch(0.627 0.194 149.214);
188
+ --sidebar-primary-foreground: oklch(0.985 0 0);
189
+ --sidebar-ring: oklch(0.527 0.185 150.069);
190
+ --chart-1: oklch(0.627 0.194 149.214);
191
+ }
192
+
193
+ /* Rose */
194
+ [data-theme="rose"] {
195
+ --primary: oklch(0.577 0.245 27.325);
196
+ --primary-foreground: oklch(0.985 0 0);
197
+ --ring: oklch(0.577 0.245 27.325);
198
+ --sidebar-primary: oklch(0.577 0.245 27.325);
199
+ --sidebar-primary-foreground: oklch(0.985 0 0);
200
+ --sidebar-ring: oklch(0.577 0.245 27.325);
201
+ --chart-1: oklch(0.577 0.245 27.325);
202
+ }
203
+ .dark[data-theme="rose"],
204
+ .dark [data-theme="rose"] {
205
+ --primary: oklch(0.577 0.245 27.325);
206
+ --primary-foreground: oklch(0.985 0 0);
207
+ --ring: oklch(0.577 0.245 27.325);
208
+ --sidebar-primary: oklch(0.577 0.245 27.325);
209
+ --sidebar-primary-foreground: oklch(0.985 0 0);
210
+ --sidebar-ring: oklch(0.577 0.245 27.325);
211
+ --chart-1: oklch(0.577 0.245 27.325);
212
+ }
213
+
214
+ /* Orange */
215
+ [data-theme="orange"] {
216
+ --primary: oklch(0.646 0.222 41.116);
217
+ --primary-foreground: oklch(0.985 0 0);
218
+ --ring: oklch(0.646 0.222 41.116);
219
+ --sidebar-primary: oklch(0.646 0.222 41.116);
220
+ --sidebar-primary-foreground: oklch(0.985 0 0);
221
+ --sidebar-ring: oklch(0.646 0.222 41.116);
222
+ --chart-1: oklch(0.646 0.222 41.116);
223
+ }
224
+ .dark[data-theme="orange"],
225
+ .dark [data-theme="orange"] {
226
+ --primary: oklch(0.646 0.222 41.116);
227
+ --primary-foreground: oklch(0.985 0 0);
228
+ --ring: oklch(0.646 0.222 41.116);
229
+ --sidebar-primary: oklch(0.646 0.222 41.116);
230
+ --sidebar-primary-foreground: oklch(0.985 0 0);
231
+ --sidebar-ring: oklch(0.646 0.222 41.116);
232
+ --chart-1: oklch(0.646 0.222 41.116);
233
+ }
234
+
235
+ /* Violet */
236
+ [data-theme="violet"] {
237
+ --primary: oklch(0.541 0.281 293.009);
238
+ --primary-foreground: oklch(0.985 0 0);
239
+ --ring: oklch(0.541 0.281 293.009);
240
+ --sidebar-primary: oklch(0.541 0.281 293.009);
241
+ --sidebar-primary-foreground: oklch(0.985 0 0);
242
+ --sidebar-ring: oklch(0.541 0.281 293.009);
243
+ --chart-1: oklch(0.541 0.281 293.009);
244
+ }
245
+ .dark[data-theme="violet"],
246
+ .dark [data-theme="violet"] {
247
+ --primary: oklch(0.541 0.281 293.009);
248
+ --primary-foreground: oklch(0.985 0 0);
249
+ --ring: oklch(0.541 0.281 293.009);
250
+ --sidebar-primary: oklch(0.541 0.281 293.009);
251
+ --sidebar-primary-foreground: oklch(0.985 0 0);
252
+ --sidebar-ring: oklch(0.541 0.281 293.009);
253
+ --chart-1: oklch(0.541 0.281 293.009);
254
+ }
255
+
256
+ /* Stripe-inspired Soft Shadows — premium, multi-layered depth */
257
+ [data-slot="button"],
258
+ [data-slot="input"],
259
+ [data-slot="select-trigger"],
260
+ [data-slot="select"],
261
+ [data-slot="textarea"] {
262
+ /* Subtle interaction shadow */
263
+ box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.04), 0 0 0 1px rgb(0 0 0 / 0.02);
264
+ }
265
+
266
+ /* Stripe-style: form inputs use card background instead of transparent */
267
+ [data-slot="input"],
268
+ [data-slot="textarea"],
269
+ [data-slot="select"] {
270
+ background-color: var(--card);
271
+ }
272
+
273
+ [data-slot="card"] {
274
+ /* Classic Stripe soft shadow: faint ambient + directional drop */
275
+ box-shadow: 0 2px 8px -2px rgb(0 0 0 / 0.05), 0 4px 16px -4px rgb(0 0 0 / 0.02);
276
+ }
277
+
278
+ [data-slot="dialog-content"],
279
+ [data-slot="sheet-content"] {
280
+ /* Deep floating layer for modals */
281
+ box-shadow: 0 10px 30px -5px rgb(0 0 0 / 0.08), 0 20px 40px -10px rgb(0 0 0 / 0.04);
282
+ }
283
+ }
284
+
285
+ body {
286
+ font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
287
+ -webkit-font-smoothing: antialiased;
288
+ -moz-osx-font-smoothing: grayscale;
289
+ }
290
+
291
+ /* Premium Typography Refinements */
292
+ h1, h2, h3 {
293
+ letter-spacing: -0.025em;
294
+ font-weight: 600;
295
+ }
296
+ h4, h5, h6 {
297
+ letter-spacing: -0.01em;
298
+ }
299
+
300
+ /* Micro-interactions: Linear/Apple ecosystem click scales */
301
+ [data-slot="button"],
302
+ button {
303
+ transition: transform 0.1s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.15s ease, box-shadow 0.15s ease;
304
+ }
305
+ [data-slot="button"]:active:not(:disabled),
306
+ button:active:not(:disabled) {
307
+ transform: scale(0.97);
308
+ }
309
+
310
+ /* Subtle glowing focus ring for inputs */
311
+ [data-slot="input"]:focus-visible,
312
+ [data-slot="textarea"]:focus-visible,
313
+ [data-slot="select-trigger"]:focus-visible {
314
+ box-shadow: 0 0 0 1px var(--color-background), 0 0 0 3px color-mix(in oklch, var(--color-primary) 30%, transparent) !important;
315
+ border-color: var(--color-primary);
316
+ }
317
+
318
+ /* Base scrollbar styling (Firefox + Standard) */
319
+ * {
320
+ scrollbar-width: thin;
321
+ scrollbar-color: oklch(0.8 0 0) transparent;
322
+ }
323
+ .dark * {
324
+ scrollbar-color: oklch(0.35 0 0) transparent;
325
+ }
326
+
327
+ /* Scrollbar styling (Webkit) */
328
+ ::-webkit-scrollbar { width: 6px; height: 6px; }
329
+ ::-webkit-scrollbar-track { background: transparent; }
330
+ ::-webkit-scrollbar-thumb { background: oklch(0.8 0 0); border-radius: 3px; }
331
+ ::-webkit-scrollbar-thumb:hover { background: oklch(0.65 0 0); }
332
+ .dark ::-webkit-scrollbar-thumb { background: oklch(0.35 0 0); }
333
+ .dark ::-webkit-scrollbar-thumb:hover { background: oklch(0.45 0 0); }
334
+
335
+ /* ① Card Hover Elevation Lift — Stripe-style float on hover */
336
+ [data-slot="card"] {
337
+ transition: box-shadow 0.2s ease, transform 0.2s ease;
338
+ }
339
+ @media (hover: hover) {
340
+ [data-slot="card"]:hover {
341
+ box-shadow: 0 4px 12px -2px rgb(0 0 0 / 0.08), 0 8px 24px -6px rgb(0 0 0 / 0.04);
342
+ transform: translateY(-1px);
343
+ }
344
+ }
345
+
346
+ /* ② Table Row Hover — primary color tint instead of plain gray */
347
+ [data-slot="table-row"]:hover {
348
+ background-color: color-mix(in oklch, var(--primary) 4%, var(--background)) !important;
349
+ }
350
+ [data-slot="table-row"] {
351
+ transition: background-color 0.15s ease;
352
+ }
353
+
354
+ /* ③ Sidebar Active Indicator — Linear-style left accent bar */
355
+ .sidebar-nav-active {
356
+ position: relative;
357
+ }
358
+ .sidebar-nav-active::before {
359
+ content: '';
360
+ position: absolute;
361
+ left: 0;
362
+ top: 50%;
363
+ transform: translateY(-50%);
364
+ width: 3px;
365
+ height: 60%;
366
+ border-radius: 0 3px 3px 0;
367
+ background: var(--primary);
368
+ opacity: 1;
369
+ transition: opacity 0.2s ease;
370
+ }
371
+
372
+ /* ④ Skeleton Shimmer — metallic light sweep instead of static pulse */
373
+ @keyframes svadmin-shimmer {
374
+ 0% { background-position: -200% 0; }
375
+ 100% { background-position: 200% 0; }
376
+ }
377
+ [data-slot="skeleton"] {
378
+ animation: svadmin-shimmer 1.5s ease-in-out infinite !important;
379
+ background: linear-gradient(90deg, var(--muted) 25%, color-mix(in oklch, var(--muted) 60%, white) 50%, var(--muted) 75%) !important;
380
+ background-size: 200% 100% !important;
381
+ }
382
+ .dark [data-slot="skeleton"] {
383
+ background: linear-gradient(90deg, var(--muted) 25%, color-mix(in oklch, var(--muted) 60%, var(--foreground)) 50%, var(--muted) 75%) !important;
384
+ }
385
+
386
+ /* ⑤ Route Page Transition — fade + subtle slide-up */
387
+ @keyframes svadmin-page-enter {
388
+ from {
389
+ opacity: 0;
390
+ transform: translateY(6px);
391
+ }
392
+ to {
393
+ opacity: 1;
394
+ transform: translateY(0);
395
+ }
396
+ }
397
+ .svadmin-page-enter {
398
+ animation: svadmin-page-enter 0.25s ease-out;
399
+ }
400
+
401
+ /* ⑥ Toast slide-in refinement (sonner-svelte) — tighter timing */
402
+ [data-sonner-toaster] [data-sonner-toast] {
403
+ transition-duration: 200ms !important;
404
+ transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
405
+ }
406
+
407
+ /* ⑦ Gradient Top Border on Cards — Vercel dashboard style */
408
+ [data-slot="card"]::before {
409
+ content: '';
410
+ position: absolute;
411
+ top: 0;
412
+ left: 0;
413
+ right: 0;
414
+ height: 1px;
415
+ background: linear-gradient(90deg, transparent, color-mix(in oklch, var(--primary) 20%, transparent), transparent);
416
+ border-radius: inherit;
417
+ pointer-events: none;
418
+ }
419
+ [data-slot="card"] {
420
+ position: relative;
421
+ overflow: hidden;
422
+ }
423
+
424
+ /* ⑧ Dark Mode Primary Glow — Linear-style neon accents */
425
+ .dark [data-slot="button"][data-variant="default"],
426
+ .dark [data-slot="badge"][data-variant="default"] {
427
+ box-shadow: 0 0 12px -3px color-mix(in oklch, var(--primary) 40%, transparent);
428
+ }
429
+
430
+ /* ⑨ Form Validation Shake Animation */
431
+ @keyframes svadmin-shake {
432
+ 0%, 100% { transform: translateX(0); }
433
+ 20% { transform: translateX(-6px); }
434
+ 40% { transform: translateX(5px); }
435
+ 60% { transform: translateX(-4px); }
436
+ 80% { transform: translateX(2px); }
437
+ }
438
+ .svadmin-shake {
439
+ animation: svadmin-shake 0.4s ease-out;
440
+ }
441
+
442
+ /* ⑩ Table Row Staggered Entrance */
443
+ @keyframes svadmin-row-enter {
444
+ from {
445
+ opacity: 0;
446
+ transform: translateY(4px);
447
+ }
448
+ to {
449
+ opacity: 1;
450
+ transform: translateY(0);
451
+ }
452
+ }
453
+ [data-slot="table-body"] [data-slot="table-row"] {
454
+ animation: svadmin-row-enter 0.3s ease-out both;
455
+ }
456
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(1) { animation-delay: 0s; }
457
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(2) { animation-delay: 0.03s; }
458
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(3) { animation-delay: 0.06s; }
459
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(4) { animation-delay: 0.09s; }
460
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(5) { animation-delay: 0.12s; }
461
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(6) { animation-delay: 0.15s; }
462
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(7) { animation-delay: 0.18s; }
463
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(8) { animation-delay: 0.21s; }
464
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(9) { animation-delay: 0.24s; }
465
+ [data-slot="table-body"] [data-slot="table-row"]:nth-child(10) { animation-delay: 0.27s; }
466
+
467
+ /* ⑪ Accessibility: Respect reduced motion preferences */
468
+ @media (prefers-reduced-motion: reduce) {
469
+ *, *::before, *::after {
470
+ animation-duration: 0.01ms !important;
471
+ animation-iteration-count: 1 !important;
472
+ transition-duration: 0.01ms !important;
473
+ scroll-behavior: auto !important;
474
+ }
475
+ }
476
+
477
+ /* ⑫b Safe Area Inset — iPhone notch / Home Bar support */
478
+ @supports (padding-bottom: env(safe-area-inset-bottom)) {
479
+ main {
480
+ padding-bottom: env(safe-area-inset-bottom);
481
+ }
482
+ }
483
+
484
+ /* ⑫ Optimistic Delete — row fade-out visual feedback */
485
+ @keyframes svadmin-row-delete {
486
+ from {
487
+ opacity: 1;
488
+ transform: translateX(0);
489
+ }
490
+ to {
491
+ opacity: 0;
492
+ transform: translateX(20px);
493
+ height: 0;
494
+ padding: 0;
495
+ margin: 0;
496
+ }
497
+ }
498
+ .svadmin-deleting {
499
+ animation: svadmin-row-delete 0.3s ease-out forwards;
500
+ pointer-events: none;
501
+ }
502
+
503
+ /* ⑬ Popover & Dropdown — frosted glass backdrop + spring entrance */
504
+ [data-slot="popover-content"],
505
+ [data-slot="dropdown-menu-content"],
506
+ [data-slot="context-menu-content"] {
507
+ backdrop-filter: blur(8px);
508
+ -webkit-backdrop-filter: blur(8px);
509
+ }
510
+
511
+ /* ⑭ Tooltip spring entrance */
512
+ [data-slot="tooltip-content"] {
513
+ animation: svadmin-tooltip-enter 0.15s cubic-bezier(0.16, 1, 0.3, 1);
514
+ }
515
+ @keyframes svadmin-tooltip-enter {
516
+ from {
517
+ opacity: 0;
518
+ transform: scale(0.96);
519
+ }
520
+ to {
521
+ opacity: 1;
522
+ transform: scale(1);
523
+ }
524
+ }
525
+
526
+ /* ⑮ Smooth scrolling for content areas */
527
+ main {
528
+ scroll-behavior: smooth;
529
+ }
530
+
531
+ /* ⑯ RTL (Right-to-Left) Language Support */
532
+ [dir="rtl"] {
533
+ direction: rtl;
534
+ }
535
+ [dir="rtl"] aside {
536
+ left: auto;
537
+ right: 0;
538
+ }
539
+ [dir="rtl"] .sidebar-nav-active::before {
540
+ left: auto;
541
+ right: 0;
542
+ border-radius: 3px 0 0 3px;
543
+ }
544
+ /* Mirror sidebar margins for RTL */
545
+ [dir="rtl"] .md\:ml-64 {
546
+ margin-left: 0;
547
+ margin-right: 16rem;
548
+ }
549
+ [dir="rtl"] .md\:ml-16 {
550
+ margin-left: 0;
551
+ margin-right: 4rem;
552
+ }
553
+
554
+ /* ⑰ Accessibility Minimum Touch Target — Apple HIG 44px minimum */
555
+ @media (max-width: 640px) and (pointer: coarse) {
556
+ [data-slot="button"] {
557
+ position: relative;
558
+ }
559
+ [data-slot="button"]::after {
560
+ content: '';
561
+ position: absolute;
562
+ top: 50%;
563
+ left: 50%;
564
+ transform: translate(-50%, -50%);
565
+ min-width: 44px;
566
+ min-height: 44px;
567
+ width: 100%;
568
+ height: 100%;
569
+ z-index: 1;
570
+ }
571
+ }
572
+
573
+ /* Tailwind CSS v4 — Map design tokens to utility classes */
574
+ @theme {
575
+ --color-background: var(--background);
576
+ --color-foreground: var(--foreground);
577
+ --color-card: var(--card);
578
+ --color-card-foreground: var(--card-foreground);
579
+ --color-popover: var(--popover);
580
+ --color-popover-foreground: var(--popover-foreground);
581
+ --color-primary: var(--primary);
582
+ --color-primary-foreground: var(--primary-foreground);
583
+ --color-secondary: var(--secondary);
584
+ --color-secondary-foreground: var(--secondary-foreground);
585
+ --color-muted: var(--muted);
586
+ --color-muted-foreground: var(--muted-foreground);
587
+ --color-accent: var(--accent);
588
+ --color-accent-foreground: var(--accent-foreground);
589
+ --color-destructive: var(--destructive);
590
+ --color-destructive-foreground: var(--destructive-foreground);
591
+ --color-border: var(--border);
592
+ --color-input: var(--input);
593
+ --color-ring: var(--ring);
594
+ --color-chart-1: var(--chart-1);
595
+ --color-chart-2: var(--chart-2);
596
+ --color-chart-3: var(--chart-3);
597
+ --color-chart-4: var(--chart-4);
598
+ --color-chart-5: var(--chart-5);
599
+ --color-sidebar: var(--sidebar);
600
+ --color-sidebar-foreground: var(--sidebar-foreground);
601
+ --color-sidebar-primary: var(--sidebar-primary);
602
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
603
+ --color-sidebar-accent: var(--sidebar-accent);
604
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
605
+ --color-sidebar-border: var(--sidebar-border);
606
+ --color-sidebar-ring: var(--sidebar-ring);
607
+ --color-success: var(--success);
608
+ --color-success-foreground: var(--success-foreground);
609
+ --color-warning: var(--warning);
610
+ --color-warning-foreground: var(--warning-foreground);
611
+ --color-info: var(--info);
612
+ --color-info-foreground: var(--info-foreground);
613
+ --radius-sm: calc(var(--radius) - 4px);
614
+ --radius-md: calc(var(--radius) - 2px);
615
+ --radius-lg: var(--radius);
616
+ --radius-xl: calc(var(--radius) + 4px);
617
+ }
618
+
619
+ /* ─── svadmin UI Components CSS ─────────────────────────────── */
620
+ /* These rules were moved from .svelte files to eliminate <style> tags */
621
+
622
+ /* MarkdownRenderer Styles */
623
+ .prose {
624
+ line-height: 1.6;
625
+ }
626
+ .prose p {
627
+ margin-top: 0.5em;
628
+ margin-bottom: 0.5em;
629
+ }
630
+
631
+ /* Streaming cursor effect */
632
+ .streaming > *:last-child::after {
633
+ content: '▋';
634
+ display: inline-block;
635
+ animation: svadmin-blink 1s step-start infinite;
636
+ margin-left: 2px;
637
+ vertical-align: baseline;
638
+ color: currentColor;
639
+ }
640
+
641
+ @keyframes svadmin-blink {
642
+ 50% { opacity: 0; }
643
+ }
644
+
645
+ /* Handle copied state for dynamically injected buttons */
646
+ .copy-btn[data-copied-id] {
647
+ color: #10b981; /* Tailwind emerald-500 */
648
+ }
649
+ .copy-btn[data-copied-id] svg {
650
+ /* Swap to Check icon */
651
+ content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="%2310b981" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>');
652
+ }
653
+
654
+ /* ChatDialog Styles */
655
+ .chat-markdown pre.chat-code-block {
656
+ background: var(--color-muted, hsl(var(--muted)));
657
+ border-radius: 0.5rem;
658
+ padding: 0.75rem;
659
+ margin: 0.5rem 0;
660
+ overflow-x: auto;
661
+ font-size: 0.75rem;
662
+ line-height: 1.5;
663
+ }
664
+ .chat-markdown code.chat-inline-code {
665
+ background: var(--color-muted, hsl(var(--muted)));
666
+ padding: 0.125rem 0.375rem;
667
+ border-radius: 0.25rem;
668
+ font-size: 0.8125em;
669
+ font-family: ui-monospace, monospace;
670
+ }
671
+ .chat-markdown strong {
672
+ font-weight: 600;
673
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Component Registry — Svelte Context-based DI for component injection.
3
+ *
4
+ * Allows users to override any registered component via the `components`
5
+ * prop on `AdminApp`, while providing sensible defaults.
6
+ */
7
+ import { type Component } from 'svelte';
8
+ export interface ComponentRegistry {
9
+ Layout: Component<any>;
10
+ Sidebar: Component<any>;
11
+ Header: Component<any>;
12
+ LoginPage: Component<any>;
13
+ AutoTable: Component<any>;
14
+ AutoForm: Component<any>;
15
+ ShowPage: Component<any>;
16
+ Button: Component<any>;
17
+ Input: Component<any>;
18
+ Badge: Component<any>;
19
+ Skeleton: Component<any>;
20
+ /** Custom dashboard page component (replaces default welcome message) */
21
+ DashboardPage?: Component<any>;
22
+ /** Custom breadcrumbs component (replaces built-in Breadcrumbs) */
23
+ Breadcrumbs?: Component<any>;
24
+ /** Custom theme toggle button (replaces built-in Sun/Moon toggle) */
25
+ ThemeToggle?: Component<any>;
26
+ /** Custom user menu / avatar dropdown in the header */
27
+ UserMenu?: Component<any>;
28
+ /** Custom notification panel / bell icon in the header */
29
+ NotificationPanel?: Component<any>;
30
+ }
31
+ /** Set the component registry in context (called by AdminApp). */
32
+ export declare function setComponentRegistry(registry: ComponentRegistry): void;
33
+ /** Retrieve the full component registry from context. */
34
+ export declare function getComponentRegistry(): ComponentRegistry;
35
+ /** Retrieve a single component by name from the registry. */
36
+ export declare function useComponent<K extends keyof ComponentRegistry>(name: K): ComponentRegistry[K];