@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
@@ -0,0 +1,75 @@
1
+ <script lang="ts">
2
+ import DateTimeInput, { type DateTimeInputMode } from './DateTimeInput.svelte';
3
+ import { cn } from '../utils.js';
4
+ import { definedOptions } from '@svadmin/core/options';
5
+
6
+ export interface DateRangeInputValue {
7
+ start: string | null;
8
+ end: string | null;
9
+ }
10
+
11
+ interface Props {
12
+ value?: DateRangeInputValue | null;
13
+ mode?: DateTimeInputMode;
14
+ min?: string;
15
+ max?: string;
16
+ step?: number;
17
+ startId?: string;
18
+ endId?: string;
19
+ startName?: string;
20
+ endName?: string;
21
+ disabled?: boolean;
22
+ required?: boolean;
23
+ invalid?: boolean;
24
+ describedby?: string;
25
+ class?: string;
26
+ onchange?: (value: DateRangeInputValue) => void;
27
+ }
28
+
29
+ let {
30
+ value = $bindable({ start: null, end: null }),
31
+ mode = 'date',
32
+ min,
33
+ max,
34
+ step,
35
+ startId,
36
+ endId,
37
+ startName,
38
+ endName,
39
+ disabled = false,
40
+ required = false,
41
+ invalid = false,
42
+ describedby,
43
+ class: className = '',
44
+ onchange,
45
+ }: Props = $props();
46
+
47
+ function update(part: 'start' | 'end', next: string | null): void {
48
+ // null 范围首次编辑也必须返回两个明确的端点。
49
+ const result: DateRangeInputValue = { start: value?.start ?? null, end: value?.end ?? null, [part]: next };
50
+ value = result;
51
+ onchange?.(result);
52
+ }
53
+ </script>
54
+
55
+ <div class={cn('svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-421ac2be5045', className)} data-date-range-input>
56
+ <DateTimeInput
57
+ value={value?.start ?? null}
58
+ {mode}
59
+ {...definedOptions({ min, max, step, id: startId, name: startName, describedby })}
60
+ {disabled}
61
+ {required}
62
+ {invalid}
63
+ onchange={(next) => update('start', next)}
64
+ />
65
+ <span aria-hidden="true">至</span>
66
+ <DateTimeInput
67
+ value={value?.end ?? null}
68
+ {mode}
69
+ {...definedOptions({ min, max, step, id: endId, name: endName, describedby })}
70
+ {disabled}
71
+ {required}
72
+ {invalid}
73
+ onchange={(next) => update('end', next)}
74
+ />
75
+ </div>
@@ -0,0 +1,25 @@
1
+ import { type DateTimeInputMode } from './DateTimeInput.svelte';
2
+ export interface DateRangeInputValue {
3
+ start: string | null;
4
+ end: string | null;
5
+ }
6
+ interface Props {
7
+ value?: DateRangeInputValue | null;
8
+ mode?: DateTimeInputMode;
9
+ min?: string;
10
+ max?: string;
11
+ step?: number;
12
+ startId?: string;
13
+ endId?: string;
14
+ startName?: string;
15
+ endName?: string;
16
+ disabled?: boolean;
17
+ required?: boolean;
18
+ invalid?: boolean;
19
+ describedby?: string;
20
+ class?: string;
21
+ onchange?: (value: DateRangeInputValue) => void;
22
+ }
23
+ declare const DateRangeInput: import("svelte").Component<Props, {}, "value">;
24
+ type DateRangeInput = ReturnType<typeof DateRangeInput>;
25
+ export default DateRangeInput;
@@ -0,0 +1,65 @@
1
+ <script lang="ts">
2
+ import { Input } from './ui/input/index.js';
3
+ import { cn } from '../utils.js';
4
+
5
+ export type DateTimeInputMode = 'date' | 'time' | 'datetime';
6
+
7
+ interface Props {
8
+ value?: string | null;
9
+ mode?: DateTimeInputMode;
10
+ min?: string;
11
+ max?: string;
12
+ step?: number;
13
+ id?: string;
14
+ name?: string;
15
+ disabled?: boolean;
16
+ required?: boolean;
17
+ invalid?: boolean;
18
+ describedby?: string;
19
+ class?: string;
20
+ onchange?: (value: string | null) => void;
21
+ }
22
+
23
+ let {
24
+ value = $bindable(null),
25
+ mode = 'date',
26
+ min,
27
+ max,
28
+ step,
29
+ id,
30
+ name,
31
+ disabled = false,
32
+ required = false,
33
+ invalid = false,
34
+ describedby,
35
+ class: className = '',
36
+ onchange,
37
+ }: Props = $props();
38
+
39
+ const inputType = $derived(mode === 'datetime' ? 'datetime-local' : mode);
40
+
41
+ function handleInput(event: Event): void {
42
+ const input = event.currentTarget;
43
+ if (!(input instanceof HTMLInputElement)) return;
44
+ const next = input.value === '' ? null : input.value;
45
+ value = next;
46
+ onchange?.(next);
47
+ }
48
+ </script>
49
+
50
+ <div class={cn('svadmin-u-6da6a3c3f741', className)} data-date-time-input={mode}>
51
+ <Input
52
+ {id}
53
+ {name}
54
+ type={inputType}
55
+ value={value ?? ''}
56
+ {min}
57
+ {max}
58
+ {step}
59
+ {disabled}
60
+ {required}
61
+ aria-invalid={invalid || undefined}
62
+ aria-describedby={describedby}
63
+ oninput={handleInput}
64
+ />
65
+ </div>
@@ -0,0 +1,19 @@
1
+ export type DateTimeInputMode = 'date' | 'time' | 'datetime';
2
+ interface Props {
3
+ value?: string | null;
4
+ mode?: DateTimeInputMode;
5
+ min?: string;
6
+ max?: string;
7
+ step?: number;
8
+ id?: string;
9
+ name?: string;
10
+ disabled?: boolean;
11
+ required?: boolean;
12
+ invalid?: boolean;
13
+ describedby?: string;
14
+ class?: string;
15
+ onchange?: (value: string | null) => void;
16
+ }
17
+ declare const DateTimeInput: import("svelte").Component<Props, {}, "value">;
18
+ type DateTimeInput = ReturnType<typeof DateTimeInput>;
19
+ export default DateTimeInput;
@@ -1,4 +1,5 @@
1
1
  <script lang="ts">
2
+ import { definedOptions } from '@svadmin/core/options';
2
3
  import type { Snippet } from "svelte";
3
4
  import type { HTMLAttributes } from "svelte/elements";
4
5
  import { cn, type WithElementRef } from "../utils.js";
@@ -14,6 +15,7 @@
14
15
  side?: "left" | "right";
15
16
  width?: string;
16
17
  onClose?: () => void;
18
+ onCloseRequest?: (close: () => void) => void;
17
19
  children?: Snippet;
18
20
  footer?: Snippet;
19
21
  extra?: Snippet;
@@ -34,6 +36,7 @@
34
36
  descriptionId,
35
37
  closeLabel = "Close",
36
38
  onClose,
39
+ onCloseRequest,
37
40
  children,
38
41
  footer,
39
42
  extra,
@@ -51,6 +54,7 @@
51
54
  bind:open
52
55
  {side}
53
56
  onClose={handleClose}
57
+ {...definedOptions({ onCloseRequest })}
54
58
  {closeLabel}
55
59
  class={cn("svadmin-u-63a285be6490 svadmin-u-8a539c7fe216 svadmin-u-2cd02d11d1af", width, className)}
56
60
  role="dialog"
@@ -11,6 +11,7 @@ type Props = WithElementRef<HTMLAttributes<HTMLDivElement>, HTMLDivElement> & {
11
11
  side?: "left" | "right";
12
12
  width?: string;
13
13
  onClose?: () => void;
14
+ onCloseRequest?: (close: () => void) => void;
14
15
  children?: Snippet;
15
16
  footer?: Snippet;
16
17
  extra?: Snippet;
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { onMount } from 'svelte';
3
+ import { SvelteMap } from 'svelte/reactivity';
3
4
  import { fly } from 'svelte/transition';
4
5
  import { useQueryClient } from '@tanstack/svelte-query';
5
6
  import {
@@ -55,13 +56,10 @@
55
56
  let collapsed = $state(false);
56
57
  let cacheDiagnostics = $state.raw<CacheDiagnostics>(EMPTY_CACHE_DIAGNOSTICS);
57
58
  let safeQueryDiagnostics = $state.raw<SafeQueryDiagnostic[]>([]);
58
- const queryTimings = new Map<string, { startedAt?: number; duration?: number }>();
59
+ const queryTimings = new SvelteMap<string, { startedAt?: number; duration?: number }>();
59
60
 
60
61
  function toggle() {
61
62
  visible = !visible;
62
- if (visible) {
63
- refreshCacheDiagnostics();
64
- }
65
63
  }
66
64
 
67
65
  function handleKeydown(event: KeyboardEvent) {
@@ -109,20 +107,9 @@
109
107
  });
110
108
  }
111
109
 
112
- let refreshScheduled = false;
113
- function scheduleRefreshCacheDiagnostics() {
114
- if (!visible || refreshScheduled) return;
115
- refreshScheduled = true;
116
- queueMicrotask(() => {
117
- refreshScheduled = false;
118
- if (visible) {
119
- refreshCacheDiagnostics();
120
- }
121
- });
122
- }
123
-
124
110
  onMount(() => {
125
111
  if (!isDev) return;
112
+ refreshCacheDiagnostics();
126
113
  const unsubscribeQueries = queryClient.getQueryCache().subscribe((event) => {
127
114
  // Observer events arrive in pairs during component rerenders. Refreshing diagnostics triggers another render,
128
115
  // so respond only to events that actually change cached content or request state.
@@ -139,9 +126,9 @@
139
126
  });
140
127
  }
141
128
  }
142
- scheduleRefreshCacheDiagnostics();
129
+ refreshCacheDiagnostics();
143
130
  });
144
- const unsubscribeMutations = queryClient.getMutationCache().subscribe(scheduleRefreshCacheDiagnostics);
131
+ const unsubscribeMutations = queryClient.getMutationCache().subscribe(refreshCacheDiagnostics);
145
132
  return () => {
146
133
  unsubscribeQueries();
147
134
  unsubscribeMutations();
@@ -213,7 +200,7 @@
213
200
  {
214
201
  name: 'Audit',
215
202
  configured: Boolean(audit),
216
- capabilities: audit ? 'create, get, update' : 'not configured',
203
+ capabilities: audit ? 'create, get' : 'not configured',
217
204
  },
218
205
  {
219
206
  name: 'Notification',
@@ -254,8 +241,8 @@
254
241
  {#if visible}
255
242
  <div
256
243
  class="svadmin-u-7bc555991dba svadmin-u-189f036c335c svadmin-u-5a438c30beec svadmin-u-f50571addf44 svadmin-u-11863ecc32e7 svadmin-u-c69e21ff5804 svadmin-u-1301e5c1ce71 svadmin-u-ca6bcd4b6f3f svadmin-u-d5e98261a758 svadmin-u-cd0ad9a56558 svadmin-u-14e46609fd68 svadmin-u-1d5904e7e755 svadmin-u-2cd02d11d1af"
257
- class:w-auto={collapsed}
258
- class:min-w-[200px]={collapsed}
244
+ class:svadmin-devtools--collapsed-width={collapsed}
245
+ class:svadmin-devtools--collapsed-min-width={collapsed}
259
246
  transition:fly={{ y: 400, duration: 300 }}
260
247
  >
261
248
  <div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-0e17f2bd9074 svadmin-u-03b4dd7f172b svadmin-u-2ef11f1cb219 svadmin-u-65fdbade2025">
@@ -53,6 +53,7 @@
53
53
 
54
54
  const newModules = [...modules];
55
55
  const [dragged] = newModules.splice(sourceIdx, 1);
56
+ if (dragged === undefined) return;
56
57
  newModules.splice(targetIdx, 0, dragged);
57
58
 
58
59
  modules = newModules;
@@ -1,4 +1,4 @@
1
- <script lang="ts">
1
+ <script lang="ts" generics="TColumn extends { id: string }">
2
2
  /**
3
3
  * DraggableHeader — Wraps table header cells with HTML5 Drag and Drop
4
4
  * to enable column reorder. The parent owns persistence and restoration.
@@ -12,11 +12,6 @@
12
12
  */
13
13
  import type { Snippet } from 'svelte';
14
14
 
15
- interface Column {
16
- id: string;
17
- [key: string]: unknown;
18
- }
19
-
20
15
  interface DragHeaderProps {
21
16
  draggable: true;
22
17
  ondragstart: (event: DragEvent) => void;
@@ -29,9 +24,9 @@
29
24
  }
30
25
 
31
26
  interface Props {
32
- columns: Column[];
33
- onReorder: (newOrder: Column[]) => void;
34
- header: Snippet<[Column, number, DragHeaderProps]>;
27
+ columns: TColumn[];
28
+ onReorder: (newOrder: TColumn[]) => void;
29
+ header: Snippet<[TColumn, number, DragHeaderProps]>;
35
30
  }
36
31
 
37
32
  let { columns, onReorder, header }: Props = $props();
@@ -65,6 +60,7 @@
65
60
 
66
61
  const newColumns = [...columns];
67
62
  const [moved] = newColumns.splice(dragIndex, 1);
63
+ if (moved === undefined) return;
68
64
  newColumns.splice(index, 0, moved);
69
65
 
70
66
  onReorder(newColumns);
@@ -10,25 +10,50 @@
10
10
  * </DraggableHeader>
11
11
  */
12
12
  import type { Snippet } from 'svelte';
13
- interface Column {
13
+ declare function $$render<TColumn extends {
14
14
  id: string;
15
- [key: string]: unknown;
16
- }
17
- interface DragHeaderProps {
18
- draggable: true;
19
- ondragstart: (event: DragEvent) => void;
20
- ondragover: (event: DragEvent) => void;
21
- ondrop: (event: DragEvent) => void;
22
- ondragend: () => void;
23
- 'data-dragging': boolean;
24
- 'data-drop-target': boolean;
25
- class: string;
15
+ }>(): {
16
+ props: {
17
+ columns: TColumn[];
18
+ onReorder: (newOrder: TColumn[]) => void;
19
+ header: Snippet<[TColumn, number, {
20
+ draggable: true;
21
+ ondragstart: (event: DragEvent) => void;
22
+ ondragover: (event: DragEvent) => void;
23
+ ondrop: (event: DragEvent) => void;
24
+ ondragend: () => void;
25
+ 'data-dragging': boolean;
26
+ 'data-drop-target': boolean;
27
+ class: string;
28
+ }]>;
29
+ };
30
+ exports: {};
31
+ bindings: "";
32
+ slots: {};
33
+ events: {};
34
+ };
35
+ declare class __sveltets_Render<TColumn extends {
36
+ id: string;
37
+ }> {
38
+ props(): ReturnType<typeof $$render<TColumn>>['props'];
39
+ events(): ReturnType<typeof $$render<TColumn>>['events'];
40
+ slots(): ReturnType<typeof $$render<TColumn>>['slots'];
41
+ bindings(): "";
42
+ exports(): {};
26
43
  }
27
- interface Props {
28
- columns: Column[];
29
- onReorder: (newOrder: Column[]) => void;
30
- header: Snippet<[Column, number, DragHeaderProps]>;
44
+ interface $$IsomorphicComponent {
45
+ new <TColumn extends {
46
+ id: string;
47
+ }>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TColumn>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TColumn>['props']>, ReturnType<__sveltets_Render<TColumn>['events']>, ReturnType<__sveltets_Render<TColumn>['slots']>> & {
48
+ $$bindings?: ReturnType<__sveltets_Render<TColumn>['bindings']>;
49
+ } & ReturnType<__sveltets_Render<TColumn>['exports']>;
50
+ <TColumn extends {
51
+ id: string;
52
+ }>(internal: unknown, props: ReturnType<__sveltets_Render<TColumn>['props']> & {}): ReturnType<__sveltets_Render<TColumn>['exports']>;
53
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
31
54
  }
32
- declare const DraggableHeader: import("svelte").Component<Props, {}, "">;
33
- type DraggableHeader = ReturnType<typeof DraggableHeader>;
55
+ declare const DraggableHeader: $$IsomorphicComponent;
56
+ type DraggableHeader<TColumn extends {
57
+ id: string;
58
+ }> = InstanceType<typeof DraggableHeader<TColumn>>;
34
59
  export default DraggableHeader;
@@ -50,8 +50,8 @@
50
50
  }
51
51
 
52
52
  const nextItems = [...items];
53
- const [movedItem] = nextItems.splice(draggedIndex, 1);
54
- nextItems.splice(index, 0, movedItem);
53
+ const movedItems = nextItems.splice(draggedIndex, 1);
54
+ nextItems.splice(index, 0, ...movedItems);
55
55
 
56
56
  items = nextItems;
57
57
  onreorder?.(items);
@@ -14,7 +14,8 @@
14
14
  addButtonLabel?: string;
15
15
  minItems?: number;
16
16
  maxItems?: number;
17
- defaultItem?: T | (() => T);
17
+ defaultItem?: T;
18
+ createItem?: () => T;
18
19
  disabled?: boolean;
19
20
  emptyText?: string;
20
21
  onchange?: (items: T[]) => void;
@@ -39,6 +40,7 @@
39
40
  minItems = 0,
40
41
  maxItems = Infinity,
41
42
  defaultItem,
43
+ createItem,
42
44
  disabled = false,
43
45
  emptyText,
44
46
  onchange,
@@ -47,13 +49,13 @@
47
49
  }: Props = $props();
48
50
 
49
51
  function createNewItem(): T {
50
- if (typeof defaultItem === 'function') {
51
- return (defaultItem as () => T)();
52
+ if (createItem) {
53
+ return createItem();
52
54
  }
53
55
  if (defaultItem !== undefined) {
54
56
  return structuredClone(defaultItem);
55
57
  }
56
- return {} as T;
58
+ throw new Error('DynamicFormList requires defaultItem or createItem when adding without a value');
57
59
  }
58
60
 
59
61
  export function add(customItem?: T): void {
@@ -64,7 +66,7 @@
64
66
  }
65
67
 
66
68
  export function remove(index: number): void {
67
- if (disabled || items.length <= minItems || index < 0 || index >= items.length) return;
69
+ if (disabled || items.length <= minItems || !Number.isInteger(index) || index < 0 || index >= items.length) return;
68
70
  const next = [...items];
69
71
  next.splice(index, 1);
70
72
  items = next;
@@ -72,30 +74,28 @@
72
74
  }
73
75
 
74
76
  export function moveUp(index: number): void {
75
- if (disabled || index <= 0 || index >= items.length) return;
77
+ if (disabled || !Number.isInteger(index) || index <= 0 || index >= items.length) return;
76
78
  const next = [...items];
77
- const temp = next[index - 1];
78
- next[index - 1] = next[index];
79
- next[index] = temp;
79
+ const moved = next.splice(index, 1);
80
+ next.splice(index - 1, 0, ...moved);
80
81
  items = next;
81
82
  onchange?.(items);
82
83
  }
83
84
 
84
85
  export function moveDown(index: number): void {
85
- if (disabled || index < 0 || index >= items.length - 1) return;
86
+ if (disabled || !Number.isInteger(index) || index < 0 || index >= items.length - 1) return;
86
87
  const next = [...items];
87
- const temp = next[index + 1];
88
- next[index + 1] = next[index];
89
- next[index] = temp;
88
+ const moved = next.splice(index, 1);
89
+ next.splice(index + 1, 0, ...moved);
90
90
  items = next;
91
91
  onchange?.(items);
92
92
  }
93
93
 
94
94
  export function duplicate(index: number): void {
95
- if (disabled || items.length >= maxItems || index < 0 || index >= items.length) return;
95
+ if (disabled || items.length >= maxItems || !Number.isInteger(index) || index < 0 || index >= items.length) return;
96
96
  const next = [...items];
97
- const cloned = structuredClone(next[index]);
98
- next.splice(index + 1, 0, cloned);
97
+ const cloned = structuredClone(next.slice(index, index + 1));
98
+ next.splice(index + 1, 0, ...cloned);
99
99
  items = next;
100
100
  onchange?.(items);
101
101
  }
@@ -204,7 +204,7 @@
204
204
  variant="outline"
205
205
  size="sm"
206
206
  class="svadmin-u-6da6a3c3f741 svadmin-u-58284b4ea568 svadmin-u-a29b7a649c77"
207
- {disabled}
207
+ disabled={disabled || (defaultItem === undefined && createItem === undefined)}
208
208
  onclick={() => add()}
209
209
  >
210
210
  <Plus class="svadmin-u-11e59c6d5f6b svadmin-u-dc7972ebf3f3" />
@@ -7,7 +7,8 @@ declare function $$render<T = Record<string, unknown>>(): {
7
7
  addButtonLabel?: string;
8
8
  minItems?: number;
9
9
  maxItems?: number;
10
- defaultItem?: T | (() => T);
10
+ defaultItem?: T;
11
+ createItem?: () => T;
11
12
  disabled?: boolean;
12
13
  emptyText?: string;
13
14
  onchange?: (items: T[]) => void;
@@ -1,4 +1,7 @@
1
1
  <script lang="ts">
2
+ import type { ResourceRendering } from '../rendering/index.js';
3
+ import { definedOptions } from '@svadmin/core/options';
4
+
2
5
  import { getResource, useNavigation } from '@svadmin/core';
3
6
  import { useTranslation } from '@svadmin/core/i18n';
4
7
 
@@ -14,6 +17,7 @@
14
17
 
15
18
  interface Props {
16
19
  resourceName: string;
20
+ rendering?: ResourceRendering | undefined;
17
21
  id: string | number;
18
22
  title?: string;
19
23
  density?: 'compact' | 'comfortable';
@@ -26,6 +30,7 @@
26
30
 
27
31
  let {
28
32
  resourceName,
33
+ rendering,
29
34
  id,
30
35
  title,
31
36
  density = 'comfortable',
@@ -63,6 +68,7 @@
63
68
  </PageHeader>
64
69
 
65
70
  <AutoForm
71
+ {rendering}
66
72
  {resourceName}
67
73
  mode="edit"
68
74
  {id}
@@ -70,6 +76,6 @@
70
76
  {columns}
71
77
  showHeader={false}
72
78
  onNavigationGuardReady={(guard) => navigateGuard = guard}
73
- {onSuccess}
79
+ {...definedOptions({ "onSuccess": onSuccess })}
74
80
  />
75
81
  </div>
@@ -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
  title?: string;
6
8
  density?: 'compact' | 'comfortable';
@@ -1,4 +1,5 @@
1
1
  <script lang="ts">
2
+ import { useTranslation } from '@svadmin/core/i18n';
2
3
  import { Button } from './ui/button/index.js';
3
4
  import { Plus, Trash2, Save, Loader2 } from '@lucide/svelte';
4
5
  import { cn } from '../utils.js';
@@ -35,6 +36,8 @@
35
36
  class: className = '',
36
37
  }: Props = $props();
37
38
 
39
+ const i18n = useTranslation();
40
+
38
41
  let isSaving = $state(false);
39
42
 
40
43
  function updateCell(rowIndex: number, columnKey: string, value: unknown) {
@@ -152,6 +155,7 @@
152
155
  {:else if col.type === 'date'}
153
156
  <input
154
157
  type="date"
158
+ lang={i18n.locale}
155
159
  class="svadmin-u-d1c57777d8b6 svadmin-u-6da6a3c3f741 svadmin-u-421ac2be5045 svadmin-u-ca6bcd4b6f3f svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-d5eab218aa34 svadmin-u-359090c2d529 svadmin-u-f10f771f87e9 svadmin-u-3e94a98e1466 svadmin-u-9c1295a6914a"
156
160
  value={String(row[col.key] ?? '')}
157
161
  oninput={(e) => updateCell(rowIndex, col.key, e.currentTarget.value)}
@@ -1,8 +1,10 @@
1
1
  <script lang="ts">
2
+ import { definedOptions } from '@svadmin/core/options';
3
+
2
4
  import SystemErrorState from './content/SystemErrorState.svelte';
3
5
  import ContentPageShell from './content/ContentPageShell.svelte';
4
6
  interface Props { status?: '404' | '500'; title?: string; description?: string; }
5
7
  let { status = '404', title, description }: Props = $props();
6
8
  </script>
7
9
 
8
- <ContentPageShell pageId="system-error" width="narrow"><SystemErrorState {status} {title} {description} /></ContentPageShell>
10
+ <ContentPageShell pageId="system-error" width="narrow"><SystemErrorState {status} {...definedOptions({ "title": title })} {...definedOptions({ "description": description })} /></ContentPageShell>
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import { useTranslation } from '@svadmin/core/i18n';
3
+ import { getDisplayComponent, type FieldDisplayProps } from './fieldComponentMap';
4
+
5
+ let { type, value, options, resourceName }: FieldDisplayProps & { type: string } = $props();
6
+ const Display = $derived(getDisplayComponent(type));
7
+ const i18n = useTranslation();
8
+ </script>
9
+
10
+ {#if Display}
11
+ <Display {value} {options} {resourceName} />
12
+ {:else}
13
+ <span role="status" data-svadmin-invalid-field>{i18n.t('validation.invalidFormat')}</span>
14
+ {/if}
@@ -0,0 +1,7 @@
1
+ import { type FieldDisplayProps } from './fieldComponentMap';
2
+ type $$ComponentProps = FieldDisplayProps & {
3
+ type: string;
4
+ };
5
+ declare const FieldDisplay: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type FieldDisplay = ReturnType<typeof FieldDisplay>;
7
+ export default FieldDisplay;