@svadmin/ui 0.70.0 → 0.73.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 (372) hide show
  1. package/README.md +40 -25
  2. package/THIRD_PARTY_NOTICES.md +52 -0
  3. package/dist/actions.js +1 -1
  4. package/dist/app.css +7804 -5188
  5. package/dist/app.theme.css +7738 -5173
  6. package/dist/class-properties.generated.d.ts +1 -0
  7. package/dist/class-properties.generated.js +2 -0
  8. package/dist/classnames.d.ts +8 -0
  9. package/dist/classnames.js +26 -0
  10. package/dist/component-registry.svelte.d.ts +33 -19
  11. package/dist/component-registry.svelte.js +6 -4
  12. package/dist/components/AdminApp.svelte +55 -53
  13. package/dist/components/AdminApp.svelte.d.ts +2 -2
  14. package/dist/components/ApiSettings.svelte +19 -1
  15. package/dist/components/AuditLogDrawer.svelte +14 -3
  16. package/dist/components/AutoForm.svelte +162 -50
  17. package/dist/components/AutoForm.svelte.d.ts +4 -0
  18. package/dist/components/AutoTable.svelte +599 -259
  19. package/dist/components/AutoTable.svelte.d.ts +6 -0
  20. package/dist/components/BoundRecordDetailDrawer.svelte +172 -0
  21. package/dist/components/BoundRecordDetailDrawer.svelte.d.ts +11 -0
  22. package/dist/components/Breadcrumbs.svelte +7 -4
  23. package/dist/components/CancelTaskButton.svelte +9 -5
  24. package/dist/components/ColumnHeaderFilter.svelte +4 -3
  25. package/dist/components/ColumnSettings.svelte +1 -0
  26. package/dist/components/ComboboxField.svelte +118 -36
  27. package/dist/components/ComboboxField.svelte.d.ts +5 -4
  28. package/dist/components/CreatePage.svelte +7 -1
  29. package/dist/components/CreatePage.svelte.d.ts +2 -0
  30. package/dist/components/DateRangeInput.svelte +75 -0
  31. package/dist/components/DateRangeInput.svelte.d.ts +25 -0
  32. package/dist/components/DateTimeInput.svelte +65 -0
  33. package/dist/components/DateTimeInput.svelte.d.ts +19 -0
  34. package/dist/components/DetailDrawer.svelte +4 -0
  35. package/dist/components/DetailDrawer.svelte.d.ts +1 -0
  36. package/dist/components/DevTools.svelte +8 -21
  37. package/dist/components/DraggableGrid.svelte +1 -0
  38. package/dist/components/DraggableHeader.svelte +5 -9
  39. package/dist/components/DraggableHeader.svelte.d.ts +43 -18
  40. package/dist/components/DraggableRowTable.svelte +2 -2
  41. package/dist/components/DynamicFormList.svelte +17 -17
  42. package/dist/components/DynamicFormList.svelte.d.ts +2 -1
  43. package/dist/components/EditPage.svelte +7 -1
  44. package/dist/components/EditPage.svelte.d.ts +2 -0
  45. package/dist/components/EditableTable.svelte +4 -0
  46. package/dist/components/ErrorPage.svelte +3 -1
  47. package/dist/components/FieldDisplay.svelte +14 -0
  48. package/dist/components/FieldDisplay.svelte.d.ts +7 -0
  49. package/dist/components/FieldRenderer.svelte +96 -20
  50. package/dist/components/FileUpload.svelte +250 -0
  51. package/dist/components/FileUpload.svelte.d.ts +32 -0
  52. package/dist/components/FilterBuilder.svelte +236 -268
  53. package/dist/components/FilterBuilder.svelte.d.ts +3 -0
  54. package/dist/components/FilterDropdown.svelte.d.ts +1 -1
  55. package/dist/components/Header.svelte +5 -6
  56. package/dist/components/ImportWizard.svelte +182 -94
  57. package/dist/components/InfiniteList.svelte +22 -8
  58. package/dist/components/InfiniteList.svelte.d.ts +5 -3
  59. package/dist/components/InlineEdit.svelte +114 -44
  60. package/dist/components/JsonSchemaForm.svelte +256 -95
  61. package/dist/components/JsonSchemaForm.svelte.d.ts +12 -1
  62. package/dist/components/Layout.svelte +20 -17
  63. package/dist/components/LazyTaskQueueDrawer.svelte +26 -0
  64. package/dist/components/LazyTaskQueueDrawer.svelte.d.ts +8 -0
  65. package/dist/components/ListPage.svelte +11 -6
  66. package/dist/components/ListPage.svelte.d.ts +2 -0
  67. package/dist/components/LoginPage.svelte +1 -1
  68. package/dist/components/MasterDetailView.svelte +3 -3
  69. package/dist/components/MediaLibraryModal.svelte +5 -2
  70. package/dist/components/MentionsInput.svelte +4 -3
  71. package/dist/components/MoneyInput.svelte +25 -0
  72. package/dist/components/MoneyInput.svelte.d.ts +20 -0
  73. package/dist/components/NavigateToResource.svelte +3 -2
  74. package/dist/components/NumberInput.svelte +25 -0
  75. package/dist/components/NumberInput.svelte.d.ts +19 -0
  76. package/dist/components/NumericInput.svelte +110 -0
  77. package/dist/components/NumericInput.svelte.d.ts +23 -0
  78. package/dist/components/PercentInput.svelte +25 -0
  79. package/dist/components/PercentInput.svelte.d.ts +20 -0
  80. package/dist/components/PermissionMatrix.svelte +4 -3
  81. package/dist/components/ProfilePage.svelte +2 -2
  82. package/dist/components/QuickEditDrawer.svelte +42 -0
  83. package/dist/components/QuickEditDrawer.svelte.d.ts +10 -0
  84. package/dist/components/RecordDetailDrawer.svelte +16 -108
  85. package/dist/components/RecordDetailDrawer.svelte.d.ts +2 -0
  86. package/dist/components/RecordRowActions.svelte +41 -0
  87. package/dist/components/RecordRowActions.svelte.d.ts +14 -0
  88. package/dist/components/ResourceAccessGuard.svelte +7 -5
  89. package/dist/components/ResourceOperationsPage.svelte +25 -19
  90. package/dist/components/ResourceOperationsPage.svelte.d.ts +5 -1
  91. package/dist/components/RetryTaskButton.svelte +9 -5
  92. package/dist/components/RowActions.svelte +5 -3
  93. package/dist/components/SensitiveDataMask.svelte +3 -3
  94. package/dist/components/SettingsPage.svelte +1 -1
  95. package/dist/components/ShowInferencer.svelte +4 -2
  96. package/dist/components/ShowInferencer.svelte.d.ts +2 -0
  97. package/dist/components/ShowPage.svelte +49 -39
  98. package/dist/components/ShowPage.svelte.d.ts +2 -0
  99. package/dist/components/Sidebar.svelte +15 -13
  100. package/dist/components/SplitPaneLayout.svelte +4 -2
  101. package/dist/components/SpreadsheetView.svelte +81 -286
  102. package/dist/components/StepsForm.svelte +166 -49
  103. package/dist/components/StepsForm.svelte.d.ts +1 -0
  104. package/dist/components/SvarAutoTable.svelte +39 -0
  105. package/dist/components/SvarAutoTable.svelte.d.ts +13 -0
  106. package/dist/components/SvarDataGrid.svelte +362 -0
  107. package/dist/components/SvarDataGrid.svelte.d.ts +57 -0
  108. package/dist/components/SvarGridCell.svelte +10 -0
  109. package/dist/components/SvarGridCell.svelte.d.ts +7 -0
  110. package/dist/components/SvarResourceRead.svelte +50 -0
  111. package/dist/components/SvarResourceRead.svelte.d.ts +23 -0
  112. package/dist/components/SvarResourceTable.svelte +63 -0
  113. package/dist/components/SvarResourceTable.svelte.d.ts +42 -0
  114. package/dist/components/SvarResourceTableView.svelte +364 -0
  115. package/dist/components/SvarResourceTableView.svelte.d.ts +4 -0
  116. package/dist/components/TaskDetails.svelte +20 -7
  117. package/dist/components/TaskList.svelte +19 -7
  118. package/dist/components/TaskQueueDrawer.svelte +92 -37
  119. package/dist/components/Toast.svelte +4 -2
  120. package/dist/components/TooltipButton.svelte +1 -1
  121. package/dist/components/TreeSelect.svelte +212 -30
  122. package/dist/components/TreeSelect.svelte.d.ts +3 -1
  123. package/dist/components/ValidatedField.svelte +27 -0
  124. package/dist/components/ValidatedField.svelte.d.ts +35 -0
  125. package/dist/components/account/ImportMembersPage.svelte +2 -2
  126. package/dist/components/account/SecurityLogPage.svelte +3 -1
  127. package/dist/components/account/SettingsEnterprisePage.svelte +7 -5
  128. package/dist/components/account/TeamMembersPage.svelte +1 -1
  129. package/dist/components/auto-table-grid.d.ts +26 -0
  130. package/dist/components/auto-table-grid.js +1 -0
  131. package/dist/components/buttons/CloneButton.svelte +6 -4
  132. package/dist/components/buttons/DeleteButton.svelte +95 -29
  133. package/dist/components/buttons/DeleteButton.svelte.d.ts +2 -0
  134. package/dist/components/buttons/EditButton.svelte +6 -4
  135. package/dist/components/buttons/ExportButton.svelte +22 -4
  136. package/dist/components/buttons/ImportButton.svelte +83 -38
  137. package/dist/components/buttons/ImportButton.svelte.d.ts +6 -10
  138. package/dist/components/buttons/RefreshButton.svelte +48 -8
  139. package/dist/components/buttons/ShowButton.svelte +6 -4
  140. package/dist/components/content/ApiKeyList.svelte +3 -1
  141. package/dist/components/content/ContentPageHeader.svelte +12 -9
  142. package/dist/components/content/ContentPageShell.svelte +8 -9
  143. package/dist/components/content/FileBrowser.svelte +35 -0
  144. package/dist/components/content/FileBrowser.svelte.d.ts +14 -0
  145. package/dist/components/content/FileList.svelte +3 -1
  146. package/dist/components/content/MemberList.svelte +3 -1
  147. package/dist/components/content/MetricBlock.svelte +10 -13
  148. package/dist/components/content/NetworkTable.svelte +6 -4
  149. package/dist/components/content/NetworkTable.svelte.d.ts +1 -0
  150. package/dist/components/content/PageToolbar.svelte +6 -10
  151. package/dist/components/content/SectionHeader.svelte +8 -13
  152. package/dist/components/content/SecurityEventTable.svelte +3 -1
  153. package/dist/components/content/SettingsFieldRow.svelte +9 -23
  154. package/dist/components/content/SettingsGroup.svelte +11 -27
  155. package/dist/components/content/StatusBadge.svelte +3 -8
  156. package/dist/components/content/StatusTabs.svelte +2 -2
  157. package/dist/components/content/WorkspaceLayout.svelte +8 -12
  158. package/dist/components/enterprise/filter-tree.d.ts +48 -0
  159. package/dist/components/enterprise/filter-tree.js +224 -0
  160. package/dist/components/enterprise/json-schema-form.d.ts +39 -0
  161. package/dist/components/enterprise/json-schema-form.js +195 -0
  162. package/dist/components/enterprise/recursive-schema-form.d.ts +30 -0
  163. package/dist/components/enterprise/recursive-schema-form.js +196 -0
  164. package/dist/components/enterprise/spreadsheet-formula.d.ts +12 -0
  165. package/dist/components/enterprise/spreadsheet-formula.js +245 -0
  166. package/dist/components/fieldComponentMap.d.ts +18 -13
  167. package/dist/components/fieldComponentMap.js +100 -47
  168. package/dist/components/fields/AvatarField.svelte +1 -1
  169. package/dist/components/fields/ChoiceField.svelte +16 -0
  170. package/dist/components/fields/ChoiceField.svelte.d.ts +10 -0
  171. package/dist/components/fields/CodeField.svelte +11 -12
  172. package/dist/components/fields/CodeField.svelte.d.ts +1 -1
  173. package/dist/components/fields/DateField.svelte +4 -3
  174. package/dist/components/fields/DateRangeField.svelte +2 -4
  175. package/dist/components/fields/ImageField.svelte +3 -1
  176. package/dist/components/fields/ImagesField.svelte +23 -0
  177. package/dist/components/fields/ImagesField.svelte.d.ts +6 -0
  178. package/dist/components/fields/JsonField.svelte +19 -13
  179. package/dist/components/fields/PasswordField.svelte +5 -0
  180. package/dist/components/fields/PasswordField.svelte.d.ts +6 -0
  181. package/dist/components/fields/date-field-value.d.ts +2 -0
  182. package/dist/components/fields/date-field-value.js +13 -0
  183. package/dist/components/fields/json-value.d.ts +11 -0
  184. package/dist/components/fields/json-value.js +28 -0
  185. package/dist/components/json-schema-form-state.d.ts +37 -0
  186. package/dist/components/json-schema-form-state.js +168 -0
  187. package/dist/components/profile/ActivityTimeline.svelte +2 -2
  188. package/dist/components/record-detail.svelte.d.ts +19 -0
  189. package/dist/components/record-detail.svelte.js +34 -0
  190. package/dist/components/saved-list-views.js +29 -29
  191. package/dist/components/svar-grid-cells.d.ts +14 -0
  192. package/dist/components/svar-grid-cells.js +2 -0
  193. package/dist/components/svar-grid-contract.d.ts +80 -0
  194. package/dist/components/svar-grid-contract.js +159 -0
  195. package/dist/components/svar-grid-interactions.d.ts +54 -0
  196. package/dist/components/svar-grid-interactions.js +174 -0
  197. package/dist/components/svar-grid-loading.d.ts +40 -0
  198. package/dist/components/svar-grid-loading.js +180 -0
  199. package/dist/components/svar-grid-operations.d.ts +37 -0
  200. package/dist/components/svar-grid-operations.js +186 -0
  201. package/dist/components/svar-grid-panes.d.ts +34 -0
  202. package/dist/components/svar-grid-panes.js +66 -0
  203. package/dist/components/svar-grid-resource-loading.d.ts +18 -0
  204. package/dist/components/svar-grid-resource-loading.js +68 -0
  205. package/dist/components/svar-grid-resource-session.svelte.d.ts +29 -0
  206. package/dist/components/svar-grid-resource-session.svelte.js +61 -0
  207. package/dist/components/table-contract.d.ts +13 -0
  208. package/dist/components/table-contract.js +42 -0
  209. package/dist/components/task-utils.js +4 -2
  210. package/dist/components/ui/alert/alert-variants.d.ts +2 -3
  211. package/dist/components/ui/alert/alert-variants.js +1 -2
  212. package/dist/components/ui/alert/alert.svelte +4 -5
  213. package/dist/components/ui/alert/alert.svelte.d.ts +3 -8
  214. package/dist/components/ui/alert/index.js +0 -2
  215. package/dist/components/ui/avatar/avatar-variants.d.ts +2 -3
  216. package/dist/components/ui/avatar/avatar-variants.js +1 -2
  217. package/dist/components/ui/avatar/avatar.svelte +5 -6
  218. package/dist/components/ui/avatar/avatar.svelte.d.ts +3 -8
  219. package/dist/components/ui/badge/badge-variants.d.ts +2 -3
  220. package/dist/components/ui/badge/badge-variants.js +3 -2
  221. package/dist/components/ui/badge/badge.svelte +4 -5
  222. package/dist/components/ui/badge/badge.svelte.d.ts +3 -8
  223. package/dist/components/ui/badge/index.js +0 -2
  224. package/dist/components/ui/button/button-variants.d.ts +2 -3
  225. package/dist/components/ui/button/button-variants.js +5 -3
  226. package/dist/components/ui/button/button.svelte +100 -44
  227. package/dist/components/ui/button/button.svelte.d.ts +8 -12
  228. package/dist/components/ui/button/index.js +0 -2
  229. package/dist/components/ui/command/command-dialog.svelte +3 -1
  230. package/dist/components/ui/command/command-dialog.svelte.d.ts +1 -1
  231. package/dist/components/ui/command/command-group.svelte +4 -2
  232. package/dist/components/ui/command/command-item.svelte +4 -2
  233. package/dist/components/ui/command/command-separator.svelte +3 -1
  234. package/dist/components/ui/command/index.d.ts +5 -5
  235. package/dist/components/ui/input/input.svelte +41 -24
  236. package/dist/components/ui/input/input.svelte.d.ts +5 -4
  237. package/dist/components/ui/sheet/sheet.svelte +9 -3
  238. package/dist/components/ui/sheet/sheet.svelte.d.ts +1 -0
  239. package/dist/components/ui/textarea/textarea.svelte +2 -1
  240. package/dist/components/ui/tooltip/tooltip.svelte +4 -2
  241. package/dist/components.css +3079 -0
  242. package/dist/design-contract.d.ts +13 -0
  243. package/dist/design-contract.js +11 -0
  244. package/dist/design-system.d.ts +15 -0
  245. package/dist/design-system.js +7 -0
  246. package/dist/index.d.ts +15 -1
  247. package/dist/index.js +9 -0
  248. package/dist/inline-value.d.ts +5 -0
  249. package/dist/inline-value.js +24 -0
  250. package/dist/numeric-input.d.ts +2 -0
  251. package/dist/numeric-input.js +9 -0
  252. package/dist/page-chrome.css +12 -49
  253. package/dist/recipes.d.ts +4 -0
  254. package/dist/recipes.js +4 -0
  255. package/dist/rendering/index.d.ts +87 -0
  256. package/dist/rendering/index.js +117 -0
  257. package/dist/styled-system/css/conditions.js +36 -0
  258. package/dist/styled-system/css/css.d.ts +22 -0
  259. package/dist/styled-system/css/css.js +45 -0
  260. package/dist/styled-system/css/cva.d.ts +6 -0
  261. package/dist/styled-system/css/cva.js +87 -0
  262. package/dist/styled-system/css/cx.d.ts +5 -0
  263. package/dist/styled-system/css/cx.js +15 -0
  264. package/dist/styled-system/css/index.d.ts +5 -0
  265. package/dist/styled-system/css/index.js +4 -0
  266. package/dist/styled-system/css/sva.d.ts +4 -0
  267. package/dist/styled-system/css/sva.js +46 -0
  268. package/dist/styled-system/helpers.js +316 -0
  269. package/dist/styled-system/patterns/aspect-ratio.d.ts +20 -0
  270. package/dist/styled-system/patterns/aspect-ratio.js +38 -0
  271. package/dist/styled-system/patterns/bleed.d.ts +21 -0
  272. package/dist/styled-system/patterns/bleed.js +24 -0
  273. package/dist/styled-system/patterns/box.d.ts +20 -0
  274. package/dist/styled-system/patterns/box.js +15 -0
  275. package/dist/styled-system/patterns/center.d.ts +20 -0
  276. package/dist/styled-system/patterns/center.js +21 -0
  277. package/dist/styled-system/patterns/circle.d.ts +20 -0
  278. package/dist/styled-system/patterns/circle.js +25 -0
  279. package/dist/styled-system/patterns/container.d.ts +20 -0
  280. package/dist/styled-system/patterns/container.js +21 -0
  281. package/dist/styled-system/patterns/cq.d.ts +21 -0
  282. package/dist/styled-system/patterns/cq.js +21 -0
  283. package/dist/styled-system/patterns/divider.d.ts +22 -0
  284. package/dist/styled-system/patterns/divider.js +25 -0
  285. package/dist/styled-system/patterns/flex.d.ts +26 -0
  286. package/dist/styled-system/patterns/flex.js +26 -0
  287. package/dist/styled-system/patterns/float.d.ts +23 -0
  288. package/dist/styled-system/patterns/float.js +52 -0
  289. package/dist/styled-system/patterns/grid-item.d.ts +25 -0
  290. package/dist/styled-system/patterns/grid-item.js +25 -0
  291. package/dist/styled-system/patterns/grid.d.ts +24 -0
  292. package/dist/styled-system/patterns/grid.js +27 -0
  293. package/dist/styled-system/patterns/hstack.d.ts +21 -0
  294. package/dist/styled-system/patterns/hstack.js +24 -0
  295. package/dist/styled-system/patterns/index.d.ts +21 -0
  296. package/dist/styled-system/patterns/index.js +20 -0
  297. package/dist/styled-system/patterns/link-overlay.d.ts +20 -0
  298. package/dist/styled-system/patterns/link-overlay.js +24 -0
  299. package/dist/styled-system/patterns/spacer.d.ts +20 -0
  300. package/dist/styled-system/patterns/spacer.js +25 -0
  301. package/dist/styled-system/patterns/square.d.ts +20 -0
  302. package/dist/styled-system/patterns/square.js +24 -0
  303. package/dist/styled-system/patterns/stack.d.ts +23 -0
  304. package/dist/styled-system/patterns/stack.js +24 -0
  305. package/dist/styled-system/patterns/visually-hidden.d.ts +20 -0
  306. package/dist/styled-system/patterns/visually-hidden.js +18 -0
  307. package/dist/styled-system/patterns/vstack.d.ts +21 -0
  308. package/dist/styled-system/patterns/vstack.js +24 -0
  309. package/dist/styled-system/patterns/wrap.d.ts +24 -0
  310. package/dist/styled-system/patterns/wrap.js +25 -0
  311. package/dist/styled-system/recipes/content-header.d.ts +31 -0
  312. package/dist/styled-system/recipes/content-header.js +65 -0
  313. package/dist/styled-system/recipes/content-page.d.ts +34 -0
  314. package/dist/styled-system/recipes/content-page.js +43 -0
  315. package/dist/styled-system/recipes/create-recipe.js +82 -0
  316. package/dist/styled-system/recipes/index.d.ts +17 -0
  317. package/dist/styled-system/recipes/index.js +16 -0
  318. package/dist/styled-system/recipes/metric-block.d.ts +34 -0
  319. package/dist/styled-system/recipes/metric-block.js +76 -0
  320. package/dist/styled-system/recipes/product-list.d.ts +31 -0
  321. package/dist/styled-system/recipes/product-list.js +73 -0
  322. package/dist/styled-system/recipes/product-section.d.ts +31 -0
  323. package/dist/styled-system/recipes/product-section.js +49 -0
  324. package/dist/styled-system/recipes/product-settings-row.d.ts +34 -0
  325. package/dist/styled-system/recipes/product-settings-row.js +58 -0
  326. package/dist/styled-system/recipes/product-settings.d.ts +31 -0
  327. package/dist/styled-system/recipes/product-settings.js +57 -0
  328. package/dist/styled-system/recipes/product-status.d.ts +34 -0
  329. package/dist/styled-system/recipes/product-status.js +45 -0
  330. package/dist/styled-system/recipes/product-toolbar.d.ts +31 -0
  331. package/dist/styled-system/recipes/product-toolbar.js +41 -0
  332. package/dist/styled-system/recipes/product-workspace.d.ts +34 -0
  333. package/dist/styled-system/recipes/product-workspace.js +58 -0
  334. package/dist/styled-system/recipes/surface-metric.d.ts +38 -0
  335. package/dist/styled-system/recipes/surface-metric.js +63 -0
  336. package/dist/styled-system/recipes/surface-table.d.ts +34 -0
  337. package/dist/styled-system/recipes/surface-table.js +62 -0
  338. package/dist/styled-system/recipes/ui-badge.d.ts +31 -0
  339. package/dist/styled-system/recipes/ui-badge.js +38 -0
  340. package/dist/styled-system/recipes/ui-button.d.ts +32 -0
  341. package/dist/styled-system/recipes/ui-button.js +43 -0
  342. package/dist/styled-system/recipes/ui-input.d.ts +31 -0
  343. package/dist/styled-system/recipes/ui-input.js +49 -0
  344. package/dist/styled-system/recipes/ui-textarea.d.ts +31 -0
  345. package/dist/styled-system/recipes/ui-textarea.js +24 -0
  346. package/dist/styled-system/styles.css +1257 -0
  347. package/dist/styled-system/tokens/index.d.ts +9 -0
  348. package/dist/styled-system/tokens/index.js +268 -0
  349. package/dist/styled-system/tokens/tokens.d.ts +36 -0
  350. package/dist/styled-system/types/composition.d.ts +227 -0
  351. package/dist/styled-system/types/conditions.d.ts +236 -0
  352. package/dist/styled-system/types/csstype.d.ts +22570 -0
  353. package/dist/styled-system/types/index.d.ts +6 -0
  354. package/dist/styled-system/types/parts.d.ts +8 -0
  355. package/dist/styled-system/types/pattern.d.ts +78 -0
  356. package/dist/styled-system/types/prop-type.d.ts +223 -0
  357. package/dist/styled-system/types/recipe.d.ts +181 -0
  358. package/dist/styled-system/types/selectors.d.ts +59 -0
  359. package/dist/styled-system/types/static-css.d.ts +56 -0
  360. package/dist/styled-system/types/style-props.d.ts +8088 -0
  361. package/dist/styled-system/types/system-types.d.ts +151 -0
  362. package/dist/styles/aliases.css +49 -0
  363. package/dist/styles/compatibility.epilogue.css +384 -0
  364. package/dist/styles/compatibility.prelude.css +5513 -0
  365. package/dist/styles/conditional-states.css +28 -0
  366. package/dist/styles/conditional-utilities.css +22 -0
  367. package/dist/styles/recipes.css +1262 -0
  368. package/dist/types.d.ts +3 -3
  369. package/dist/utils.d.ts +1 -1
  370. package/dist/utils.js +1 -1
  371. package/package.json +38 -14
  372. package/styles-compatibility.json +12 -0
@@ -1,4 +1,6 @@
1
1
  <script lang="ts">
2
+ import { definedOptions } from '@svadmin/core/options';
3
+
2
4
  import { Ellipsis } from '@lucide/svelte';
3
5
  import { tick, type Component, type Snippet } from 'svelte';
4
6
  import type { HTMLAttributes } from 'svelte/elements';
@@ -143,7 +145,7 @@
143
145
  {#each visibleActions as action (action)}
144
146
  {#if action.href}
145
147
  <Button
146
- variant={resolvedVariant(action)}
148
+ {...definedOptions({ "variant": resolvedVariant(action) })}
147
149
  size="sm"
148
150
  href={action.href}
149
151
  disabled={action.disabled}
@@ -158,7 +160,7 @@
158
160
  </Button>
159
161
  {:else}
160
162
  <Button
161
- variant={resolvedVariant(action)}
163
+ {...definedOptions({ "variant": resolvedVariant(action) })}
162
164
  size="sm"
163
165
  onclick={action.onclick}
164
166
  disabled={action.disabled}
@@ -188,7 +190,7 @@
188
190
  {#if action.href}
189
191
  <Button
190
192
  href={action.href}
191
- variant={resolvedVariant(action)}
193
+ {...definedOptions({ "variant": resolvedVariant(action) })}
192
194
  size="sm"
193
195
  disabled={action.disabled}
194
196
  onclick={(event) => handleOverflowAction(action, event)}
@@ -48,10 +48,10 @@
48
48
  : '********';
49
49
  case 'email': {
50
50
  const parts = val.split('@');
51
- if (parts.length === 2) {
52
- const name = parts[0];
51
+ const [name, domain] = parts;
52
+ if (parts.length === 2 && name && domain) {
53
53
  const maskedName = name.length > 2 ? `${name[0]}***${name.slice(-1)}` : `${name[0]}***`;
54
- return `${maskedName}@${parts[1]}`;
54
+ return `${maskedName}@${domain}`;
55
55
  }
56
56
  return '***@***.***';
57
57
  }
@@ -108,7 +108,7 @@
108
108
  const i18n = useTranslation();
109
109
 
110
110
  let activeKey = $derived.by(() => {
111
- const tab = getParams().tab;
111
+ const tab = getParams()['tab'];
112
112
  if (!tab) return "profile";
113
113
  const alias = tab === "api-keys" ? "api" : tab === "audit-logs" ? "audit" : tab;
114
114
  if (sectionKeys.has(alias)) return alias;
@@ -1,4 +1,5 @@
1
1
  <script lang="ts">
2
+ import type { ResourceRendering } from '../rendering/index.js';
2
3
  // ShowInferencer renders a detail page from the resource definition with no page-specific configuration.
3
4
  // The :id parameter is extracted from the URL automatically.
4
5
  import ShowPage from './ShowPage.svelte';
@@ -6,16 +7,17 @@
6
7
 
7
8
  interface Props {
8
9
  resourceName: string;
10
+ rendering?: ResourceRendering | undefined;
9
11
  /** Optional explicit id; defaults to the value parsed from the URL. */
10
12
  id?: string | number;
11
13
  class?: string;
12
14
  }
13
15
 
14
- let { resourceName, id, class: className = '' }: Props = $props();
16
+ let { resourceName, rendering, id, class: className = '' }: Props = $props();
15
17
  const parsed = useParsed();
16
18
  const resolvedId = $derived(id ?? parsed.id ?? '');
17
19
  </script>
18
20
 
19
21
  {#if resolvedId}
20
- <ShowPage {resourceName} id={resolvedId} class={className} />
22
+ <ShowPage {rendering} {resourceName} id={resolvedId} class={className} />
21
23
  {/if}
@@ -1,5 +1,7 @@
1
+ import type { ResourceRendering } from '../rendering/index.js';
1
2
  interface Props {
2
3
  resourceName: string;
4
+ rendering?: ResourceRendering | undefined;
3
5
  /** Optional explicit id; defaults to the value parsed from the URL. */
4
6
  id?: string | number;
5
7
  class?: string;
@@ -1,20 +1,24 @@
1
1
  <script lang="ts">
2
- import { useNavigation, useShow, getResource } from '@svadmin/core';
2
+ import type { ResourceRendering } from '../rendering/index.js';
3
+ import { useNavigation } from '@svadmin/core';
4
+ import { useRecordDetail } from './record-detail.svelte';
3
5
  import { useTranslation } from '@svadmin/core/i18n';
4
6
  import type { Snippet } from 'svelte';
5
7
  import * as Card from './ui/card/index.js';
6
8
  import { Skeleton } from './ui/skeleton/index.js';
7
9
  import PageHeader from './PageHeader.svelte';
8
- import { getDisplayComponent } from './fieldComponentMap.js';
10
+ import FieldDisplay from './FieldDisplay.svelte';
9
11
  import EditButton from './buttons/EditButton.svelte';
10
12
  import DeleteButton from './buttons/DeleteButton.svelte';
11
13
  import CloneButton from './buttons/CloneButton.svelte';
12
- import RefreshButton from './buttons/RefreshButton.svelte';
14
+ import { Button } from './ui/button/index.js';
15
+ import { RefreshCw } from '@lucide/svelte';
13
16
 
14
17
  const i18n = useTranslation();
15
18
 
16
19
  interface Props {
17
20
  resourceName: string;
21
+ rendering?: ResourceRendering | undefined;
18
22
  id: string | number;
19
23
  density?: 'compact' | 'comfortable';
20
24
  layout?: 'list' | 'grid';
@@ -27,6 +31,7 @@
27
31
 
28
32
  let {
29
33
  resourceName,
34
+ rendering,
30
35
  id,
31
36
  density = 'comfortable',
32
37
  layout = 'list',
@@ -40,10 +45,11 @@
40
45
  const navigation = useNavigation();
41
46
  const isCompact = $derived(density === 'compact');
42
47
 
43
- const resource = $derived(getResource(resourceName));
44
- const showFields = $derived(resource.fields.filter(f => f.showInShow !== false));
45
-
46
- const query = useShow({ get resource() { return resourceName; }, get id() { return id; } });
48
+ const detail = useRecordDetail(() => ({ resourceName, id, rendering }));
49
+ const activeRendering = $derived(detail.rendering);
50
+ const resource = $derived(detail.resource);
51
+ const showFields = $derived(detail.fields);
52
+ const query = detail.query;
47
53
 
48
54
  const gridColumnClass = $derived.by(() => {
49
55
  switch (columns) {
@@ -55,7 +61,7 @@
55
61
  });
56
62
  </script>
57
63
 
58
- <div class="{isCompact ? 'svadmin-u-6ed543e2fbbb' : 'svadmin-u-3e7ce58d64fa'} {className}">
64
+ <div data-svadmin-rendering-resource={activeRendering?.resource.name} data-svadmin-rendering-kind={activeRendering ? 'show' : undefined} class="{isCompact ? 'svadmin-u-6ed543e2fbbb' : 'svadmin-u-3e7ce58d64fa'} {className}">
59
65
  <PageHeader
60
66
  title="{resource.label} {i18n.t('common.detail')} #{id}"
61
67
  {density}
@@ -63,23 +69,27 @@
63
69
  backLabel={i18n.t('common.backToList')}
64
70
  >
65
71
  {#snippet actions()}
66
- {#if resource.canEdit !== false}
72
+ {#if detail.canRead && query.isSuccess && resource.canEdit !== false}
67
73
  <EditButton resource={resourceName} recordItemId={id} hideText />
68
74
  {/if}
69
- {#if resource.canCreate !== false}
75
+ {#if detail.canRead && query.isSuccess && resource.canCreate !== false}
70
76
  <CloneButton resource={resourceName} recordItemId={id} hideText />
71
77
  {/if}
72
- {#if resource.canDelete !== false}
78
+ {#if detail.canRead && query.isSuccess && resource.canDelete !== false}
73
79
  <DeleteButton resource={resourceName} recordItemId={id} hideText onSuccess={() => navigation.list(resourceName)} />
74
80
  {/if}
75
- <RefreshButton resource={resourceName} hideText />
81
+ <Button type="button" variant="ghost" size="icon" title={i18n.t('common.refresh')}
82
+ aria-label={i18n.t('common.refresh')} aria-busy={query.isFetching}
83
+ disabled={!detail.canRead || query.isFetching} onclick={detail.refresh}>
84
+ <RefreshCw class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
85
+ </Button>
76
86
  {#if headerActions}
77
87
  {@render headerActions()}
78
88
  {/if}
79
89
  {/snippet}
80
90
  </PageHeader>
81
91
 
82
- {#if query.isLoading}
92
+ {#if detail.checkingPermission || query.isLoading}
83
93
  <Card.Root class="svadmin-u-2cd02d11d1af svadmin-u-6ee2d41e2d2d svadmin-u-438b2237b8d6">
84
94
  <Card.Content class="svadmin-u-8a539c7fe216">
85
95
  {#each showFields.slice(0, 6) as _, i (i)}
@@ -90,26 +100,33 @@
90
100
  {/each}
91
101
  </Card.Content>
92
102
  </Card.Root>
93
- {:else if query.data?.data}
103
+ {:else if !detail.canRead}
104
+ <p role="status" data-svadmin-access-denied>{i18n.t('common.accessDenied')}</p>
105
+ {:else if query.isError}
106
+ <div role="alert">
107
+ <p>{i18n.t('common.operationFailed')}</p>
108
+ <Button type="button" variant="ghost" size="icon" title={i18n.t('common.retry')}
109
+ aria-label={i18n.t('common.retry')} disabled={query.isFetching} onclick={detail.refresh}>
110
+ <RefreshCw class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
111
+ </Button>
112
+ </div>
113
+ {:else if query.isSuccess}
114
+ {@const record = activeRendering ? activeRendering.record(query.data.data) : query.data.data}
94
115
  {#if layout === 'grid'}
95
116
  <Card.Root class="svadmin-u-2cd02d11d1af svadmin-u-6ee2d41e2d2d svadmin-u-438b2237b8d6">
96
117
  <Card.Content class="svadmin-u-8a539c7fe216">
97
118
  <dl class="svadmin-u-f3c543ad5fe9 svadmin-u-fa6acbf81d74 svadmin-u-3533cbce9e93 svadmin-u-4d9da416df16 {gridColumnClass}">
98
119
  {#each showFields as field, i (i)}
99
- {@const value = ((query.data as { data: Record<string, unknown> }).data as Record<string, unknown>)[field.key]}
100
- {@const DisplayComponent = getDisplayComponent(field.type)}
120
+ {@const value = record[field.key]}
101
121
  <div class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed {bordered ? 'svadmin-u-65fdbade2025 svadmin-u-5ceb636bd9f3 svadmin-u-cdf6e054e5e0 svadmin-u-b4cf72cd1cd8 svadmin-u-eb6e8b881acd svadmin-u-1884518576f2' : 'svadmin-u-eb6e8b881acd svadmin-u-1884518576f2 svadmin-u-65fdbade2025 svadmin-u-945ecb9a9005'}">
102
122
  <dt class="svadmin-u-359090c2d529 svadmin-u-2689f3958069 svadmin-u-bfa603190748 svadmin-u-65281709dacf">{field.label}</dt>
103
123
  <dd class="svadmin-u-359090c2d529 svadmin-u-e2327d142859 svadmin-u-d4108abe6359 svadmin-u-2689f3958069 svadmin-u-170cee3ff4e4">
104
- {#if DisplayComponent && value != null}
105
- <DisplayComponent
106
- {value}
107
- options={field.options}
108
- resourceName={field.resource}
109
- />
110
- {:else}
111
- {value != null ? String(value) : '—'}
112
- {/if}
124
+ <FieldDisplay
125
+ type={field.type}
126
+ {value}
127
+ options={field.options}
128
+ resourceName={field.resource}
129
+ />
113
130
  </dd>
114
131
  </div>
115
132
  {/each}
@@ -120,20 +137,16 @@
120
137
  <Card.Root class="svadmin-u-2cd02d11d1af svadmin-u-6ee2d41e2d2d svadmin-u-438b2237b8d6">
121
138
  <Card.Content class="svadmin-u-8a539c7fe216 svadmin-u-fa6acbf81d74 svadmin-u-3533cbce9e93">
122
139
  {#each showFields as field, i (i)}
123
- {@const value = ((query.data as { data: Record<string, unknown> }).data as Record<string, unknown>)[field.key]}
124
- {@const DisplayComponent = getDisplayComponent(field.type)}
140
+ {@const value = record[field.key]}
125
141
  <div class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-020ba687fa12 {isCompact ? 'svadmin-u-f0faeb26d656 svadmin-u-03b4dd7f172b svadmin-u-cc06a6575385 svadmin-u-7209fd2a90e7' : 'svadmin-u-f0faeb26d656 svadmin-u-7a9aabfcd059 svadmin-u-1b2d54a3fd12 svadmin-u-4701b613ff95'} {i % 2 === 1 ? 'svadmin-u-8a25a995eb8e' : ''}">
126
142
  <div class="svadmin-u-b03f3c253900 {isCompact ? 'svadmin-u-359090c2d529' : 'svadmin-u-359090c2d529 svadmin-u-e2327d142859'} svadmin-u-2689f3958069 svadmin-u-bfa603190748 svadmin-u-65281709dacf svadmin-u-84bdd56b0e81">{field.label}</div>
127
143
  <div class="svadmin-u-6b3526212209 {isCompact ? 'svadmin-u-359090c2d529 svadmin-u-e2327d142859' : 'svadmin-u-fc7473ca09eb'} svadmin-u-d4108abe6359">
128
- {#if DisplayComponent && value != null}
129
- <DisplayComponent
130
- {value}
131
- options={field.options}
132
- resourceName={field.resource}
133
- />
134
- {:else}
135
- {value != null ? String(value) : '—'}
136
- {/if}
144
+ <FieldDisplay
145
+ type={field.type}
146
+ {value}
147
+ options={field.options}
148
+ resourceName={field.resource}
149
+ />
137
150
  </div>
138
151
  </div>
139
152
  {/each}
@@ -147,9 +160,6 @@
147
160
  <Card.Root class="svadmin-u-2cd02d11d1af svadmin-u-6ee2d41e2d2d svadmin-u-438b2237b8d6">
148
161
  <Card.Content class="svadmin-u-845f53365c8d svadmin-u-ca6bf63030aa">
149
162
  <p class="svadmin-u-bfa603190748">{i18n.t('common.noData')}</p>
150
- {#if query.isError}
151
- <p class="svadmin-u-fc7473ca09eb svadmin-u-811148b13d1e svadmin-u-50d0d216a2f8">{(query.error as Error)?.message ?? i18n.t('common.operationFailed')}</p>
152
- {/if}
153
163
  </Card.Content>
154
164
  </Card.Root>
155
165
  {/if}
@@ -1,6 +1,8 @@
1
+ import type { ResourceRendering } from '../rendering/index.js';
1
2
  import type { Snippet } from 'svelte';
2
3
  interface Props {
3
4
  resourceName: string;
5
+ rendering?: ResourceRendering | undefined;
4
6
  id: string | number;
5
7
  density?: 'compact' | 'comfortable';
6
8
  layout?: 'list' | 'grid';
@@ -1,4 +1,6 @@
1
1
  <script lang="ts">
2
+ import { definedOptions } from '@svadmin/core/options';
3
+
2
4
  import { captureAdminContext } from '@svadmin/core';
3
5
  import type { AccessControlProvider, Action, Identity, MenuItem } from '@svadmin/core';
4
6
  import { getPath } from '../router-state.svelte.js';
@@ -107,11 +109,11 @@
107
109
  async function checkAccess(provider: AccessControlProvider | null, resource: string, action: Action): Promise<boolean> {
108
110
  if (!provider) return true;
109
111
 
110
- const result = await provider.can({
112
+ const result = await provider.can(definedOptions({
111
113
  resource,
112
114
  action,
113
115
  meta: adminContext.getProviderMeta(resource),
114
- });
116
+ }));
115
117
  return Array.isArray(result) ? (result[0]?.can ?? false) : result.can;
116
118
  }
117
119
 
@@ -132,11 +134,11 @@
132
134
  }
133
135
 
134
136
  function snapshotCustomMenuItems(menuItems: MenuItem[]): MenuItem[] {
135
- return menuItems.map((menuItem) => ({
137
+ return menuItems.map((menuItem) => (definedOptions({
136
138
  ...menuItem,
137
139
  meta: menuItem.meta ? { ...menuItem.meta } : undefined,
138
140
  children: menuItem.children ? snapshotCustomMenuItems(menuItem.children) : undefined,
139
- }));
141
+ })));
140
142
  }
141
143
 
142
144
  async function visibleCustomMenuItem(menuItem: MenuItem, provider: AccessControlProvider | null): Promise<MenuItem | null> {
@@ -188,12 +190,12 @@
188
190
  const items: NavItem[] = [{ path: '/', label: homeLabel, Icon: LayoutDashboard }];
189
191
  for (const { r, can } of results) {
190
192
  if (can) {
191
- items.push({
193
+ items.push(definedOptions({
192
194
  path: `/${r.name}`,
193
195
  label: r.label,
194
196
  Icon: (typeof r.icon === 'string' ? iconMap[r.icon] : r.icon) ?? iconMap[r.name] ?? Settings,
195
197
  group: r.group,
196
- });
198
+ }));
197
199
  }
198
200
  }
199
201
  navItems = items;
@@ -307,10 +309,10 @@
307
309
  aria-label="Sidebar navigation"
308
310
  class="svadmin-u-7bc555991dba svadmin-u-5f89f14a26db svadmin-u-c78facc7a0a6 svadmin-u-0f2fff0ae96e svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-0fe7d7d814d0 svadmin-u-7890552ecd63"
309
311
  style="background-color: var(--sidebar);"
310
- class:w-[252px]={!collapsed}
311
- class:w-[70px]={collapsed}
312
+ class:svadmin-sidebar--expanded={!collapsed}
313
+ class:svadmin-sidebar--collapsed={collapsed}
312
314
  >
313
- <div class="svadmin-u-60fbb7713999 svadmin-u-07017cde3e97 svadmin-u-3960ffc248d9 svadmin-u-012fbd121f37" class:px-5={!collapsed} class:justify-center={collapsed}>
315
+ <div class="svadmin-u-60fbb7713999 svadmin-u-07017cde3e97 svadmin-u-3960ffc248d9 svadmin-u-012fbd121f37" class:svadmin-u-d139dd09e38d={!collapsed} class:svadmin-u-86843cf1e227={collapsed}>
314
316
  {#if !collapsed}
315
317
  <a href={formatSidebarLink('/')} class="group svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-7e9a2a250cc3" onclick={(e) => { e.preventDefault(); adminContext.navigate('/'); }}>
316
318
  <SvadminLogo />
@@ -329,7 +331,7 @@
329
331
  </div>
330
332
 
331
333
  <ScrollArea class="svadmin-u-36e579c0b41c sidebar-scroll">
332
- <nav aria-label="Main menu" class="svadmin-u-9fcd8a13827e" class:px-[10px]={!collapsed} class:px-2={collapsed}>
334
+ <nav aria-label="Main menu" class="svadmin-u-9fcd8a13827e" class:svadmin-u-7597e11b4d4b={!collapsed} class:svadmin-u-d5eab218aa34={collapsed}>
333
335
  {#if menu && menu.length > 0}
334
336
  <div class="svadmin-u-a26339f4b89e">
335
337
  {#each customMenuItems as item (item.name)}
@@ -454,14 +456,14 @@
454
456
  <div class="svadmin-u-0e17f2bd9074 svadmin-u-7fcf9124b5df svadmin-u-6b7d6e21ccbd">
455
457
  <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-7e9a2a250cc3 svadmin-u-5f22e64f2282 svadmin-u-7660b450905a svadmin-u-ceb69a6b0e5f svadmin-u-ace81495deee svadmin-u-34516836730d">
456
458
  <Avatar
457
- src={(identity as Record<string, unknown>).avatar as string | undefined}
459
+ src={(identity as Record<string, unknown>)['avatar'] as string | undefined}
458
460
  alt={identity.name ?? 'User'}
459
461
  fallback={identity.name?.charAt(0).toUpperCase() ?? 'U'}
460
462
  size="sm"
461
463
  />
462
464
  <div class="svadmin-u-36e579c0b41c svadmin-u-7e0b7cdf1a94">
463
465
  <p class="svadmin-u-f283ea9bea0e svadmin-u-a14daebf7748 svadmin-u-2689f3958069 svadmin-u-a7a63217e098">{identity.name}</p>
464
- <p class="svadmin-u-f283ea9bea0e svadmin-u-d058ca6de60f svadmin-u-5f1ff8fe8768">{((identity as Record<string, unknown>).role || (identity as Record<string, unknown>).roleName) ?? 'User'}</p>
466
+ <p class="svadmin-u-f283ea9bea0e svadmin-u-d058ca6de60f svadmin-u-5f1ff8fe8768">{((identity as Record<string, unknown>)['role'] || (identity as Record<string, unknown>)['roleName']) ?? 'User'}</p>
465
467
  </div>
466
468
  <button
467
469
  class="svadmin-u-d0a52b312f7d svadmin-u-cbbf90f9a828 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-421ac2be5045 svadmin-u-3e3534b4c5df svadmin-u-646e10356266 svadmin-u-0b48b877be2a svadmin-u-ceb69a6b0e5f"
@@ -509,7 +511,7 @@
509
511
  <Tooltip.Root>
510
512
  <Tooltip.Trigger>
511
513
  {#snippet child({ props }: { props: Record<string, unknown> })}
512
- <Button {...props} variant="ghost" size="icon" onclick={onToggle} class="svadmin-u-ed8a5df7b2fb svadmin-u-2bbcfc3b5179 svadmin-u-421ac2be5045 svadmin-u-68d55a736ff4 svadmin-u-55d1f8b9d318 svadmin-u-646e10356266">
514
+ <Button {...props} aria-label={i18n.t('common.toggleSidebar')} variant="ghost" size="icon" onclick={onToggle} class="svadmin-u-ed8a5df7b2fb svadmin-u-2bbcfc3b5179 svadmin-u-421ac2be5045 svadmin-u-68d55a736ff4 svadmin-u-55d1f8b9d318 svadmin-u-646e10356266">
513
515
  <ChevronRight class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c" />
514
516
  </Button>
515
517
  {/snippet}
@@ -35,10 +35,12 @@
35
35
  if (!containerEl) return;
36
36
  const rect = containerEl.getBoundingClientRect();
37
37
 
38
+ const pointer = 'touches' in ev ? ev.touches.item(0) : ev;
39
+ if (!pointer) return;
38
40
  const clientPos =
39
41
  direction === 'horizontal'
40
- ? ('touches' in ev ? ev.touches[0].clientX - rect.left : ev.clientX - rect.left)
41
- : ('touches' in ev ? ev.touches[0].clientY - rect.top : ev.clientY - rect.top);
42
+ ? pointer.clientX - rect.left
43
+ : pointer.clientY - rect.top;
42
44
  const totalSize = direction === 'horizontal' ? rect.width : rect.height;
43
45
 
44
46
  if (totalSize > 0) {