@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.
- package/README.md +40 -25
- package/THIRD_PARTY_NOTICES.md +52 -0
- package/dist/actions.js +1 -1
- package/dist/app.css +7804 -5188
- package/dist/app.theme.css +7738 -5173
- package/dist/class-properties.generated.d.ts +1 -0
- package/dist/class-properties.generated.js +2 -0
- package/dist/classnames.d.ts +8 -0
- package/dist/classnames.js +26 -0
- package/dist/component-registry.svelte.d.ts +33 -19
- package/dist/component-registry.svelte.js +6 -4
- package/dist/components/AdminApp.svelte +55 -53
- package/dist/components/AdminApp.svelte.d.ts +2 -2
- package/dist/components/ApiSettings.svelte +19 -1
- package/dist/components/AuditLogDrawer.svelte +14 -3
- package/dist/components/AutoForm.svelte +162 -50
- package/dist/components/AutoForm.svelte.d.ts +4 -0
- package/dist/components/AutoTable.svelte +599 -259
- package/dist/components/AutoTable.svelte.d.ts +6 -0
- package/dist/components/BoundRecordDetailDrawer.svelte +172 -0
- package/dist/components/BoundRecordDetailDrawer.svelte.d.ts +11 -0
- package/dist/components/Breadcrumbs.svelte +7 -4
- package/dist/components/CancelTaskButton.svelte +9 -5
- package/dist/components/ColumnHeaderFilter.svelte +4 -3
- package/dist/components/ColumnSettings.svelte +1 -0
- package/dist/components/ComboboxField.svelte +118 -36
- package/dist/components/ComboboxField.svelte.d.ts +5 -4
- package/dist/components/CreatePage.svelte +7 -1
- package/dist/components/CreatePage.svelte.d.ts +2 -0
- package/dist/components/DateRangeInput.svelte +75 -0
- package/dist/components/DateRangeInput.svelte.d.ts +25 -0
- package/dist/components/DateTimeInput.svelte +65 -0
- package/dist/components/DateTimeInput.svelte.d.ts +19 -0
- package/dist/components/DetailDrawer.svelte +4 -0
- package/dist/components/DetailDrawer.svelte.d.ts +1 -0
- package/dist/components/DevTools.svelte +8 -21
- package/dist/components/DraggableGrid.svelte +1 -0
- package/dist/components/DraggableHeader.svelte +5 -9
- package/dist/components/DraggableHeader.svelte.d.ts +43 -18
- package/dist/components/DraggableRowTable.svelte +2 -2
- package/dist/components/DynamicFormList.svelte +17 -17
- package/dist/components/DynamicFormList.svelte.d.ts +2 -1
- package/dist/components/EditPage.svelte +7 -1
- package/dist/components/EditPage.svelte.d.ts +2 -0
- package/dist/components/EditableTable.svelte +4 -0
- package/dist/components/ErrorPage.svelte +3 -1
- package/dist/components/FieldDisplay.svelte +14 -0
- package/dist/components/FieldDisplay.svelte.d.ts +7 -0
- package/dist/components/FieldRenderer.svelte +96 -20
- package/dist/components/FileUpload.svelte +250 -0
- package/dist/components/FileUpload.svelte.d.ts +32 -0
- package/dist/components/FilterBuilder.svelte +236 -268
- package/dist/components/FilterBuilder.svelte.d.ts +3 -0
- package/dist/components/FilterDropdown.svelte.d.ts +1 -1
- package/dist/components/Header.svelte +5 -6
- package/dist/components/ImportWizard.svelte +182 -94
- package/dist/components/InfiniteList.svelte +22 -8
- package/dist/components/InfiniteList.svelte.d.ts +5 -3
- package/dist/components/InlineEdit.svelte +114 -44
- package/dist/components/JsonSchemaForm.svelte +256 -95
- package/dist/components/JsonSchemaForm.svelte.d.ts +12 -1
- package/dist/components/Layout.svelte +20 -17
- package/dist/components/LazyTaskQueueDrawer.svelte +26 -0
- package/dist/components/LazyTaskQueueDrawer.svelte.d.ts +8 -0
- package/dist/components/ListPage.svelte +11 -6
- package/dist/components/ListPage.svelte.d.ts +2 -0
- package/dist/components/LoginPage.svelte +1 -1
- package/dist/components/MasterDetailView.svelte +3 -3
- package/dist/components/MediaLibraryModal.svelte +5 -2
- package/dist/components/MentionsInput.svelte +4 -3
- package/dist/components/MoneyInput.svelte +25 -0
- package/dist/components/MoneyInput.svelte.d.ts +20 -0
- package/dist/components/NavigateToResource.svelte +3 -2
- package/dist/components/NumberInput.svelte +25 -0
- package/dist/components/NumberInput.svelte.d.ts +19 -0
- package/dist/components/NumericInput.svelte +110 -0
- package/dist/components/NumericInput.svelte.d.ts +23 -0
- package/dist/components/PercentInput.svelte +25 -0
- package/dist/components/PercentInput.svelte.d.ts +20 -0
- package/dist/components/PermissionMatrix.svelte +4 -3
- package/dist/components/ProfilePage.svelte +2 -2
- package/dist/components/QuickEditDrawer.svelte +42 -0
- package/dist/components/QuickEditDrawer.svelte.d.ts +10 -0
- package/dist/components/RecordDetailDrawer.svelte +16 -108
- package/dist/components/RecordDetailDrawer.svelte.d.ts +2 -0
- package/dist/components/RecordRowActions.svelte +41 -0
- package/dist/components/RecordRowActions.svelte.d.ts +14 -0
- package/dist/components/ResourceAccessGuard.svelte +7 -5
- package/dist/components/ResourceOperationsPage.svelte +25 -19
- package/dist/components/ResourceOperationsPage.svelte.d.ts +5 -1
- package/dist/components/RetryTaskButton.svelte +9 -5
- package/dist/components/RowActions.svelte +5 -3
- package/dist/components/SensitiveDataMask.svelte +3 -3
- package/dist/components/SettingsPage.svelte +1 -1
- package/dist/components/ShowInferencer.svelte +4 -2
- package/dist/components/ShowInferencer.svelte.d.ts +2 -0
- package/dist/components/ShowPage.svelte +49 -39
- package/dist/components/ShowPage.svelte.d.ts +2 -0
- package/dist/components/Sidebar.svelte +15 -13
- package/dist/components/SplitPaneLayout.svelte +4 -2
- package/dist/components/SpreadsheetView.svelte +81 -286
- package/dist/components/StepsForm.svelte +166 -49
- package/dist/components/StepsForm.svelte.d.ts +1 -0
- package/dist/components/SvarAutoTable.svelte +39 -0
- package/dist/components/SvarAutoTable.svelte.d.ts +13 -0
- package/dist/components/SvarDataGrid.svelte +362 -0
- package/dist/components/SvarDataGrid.svelte.d.ts +57 -0
- package/dist/components/SvarGridCell.svelte +10 -0
- package/dist/components/SvarGridCell.svelte.d.ts +7 -0
- package/dist/components/SvarResourceRead.svelte +50 -0
- package/dist/components/SvarResourceRead.svelte.d.ts +23 -0
- package/dist/components/SvarResourceTable.svelte +63 -0
- package/dist/components/SvarResourceTable.svelte.d.ts +42 -0
- package/dist/components/SvarResourceTableView.svelte +364 -0
- package/dist/components/SvarResourceTableView.svelte.d.ts +4 -0
- package/dist/components/TaskDetails.svelte +20 -7
- package/dist/components/TaskList.svelte +19 -7
- package/dist/components/TaskQueueDrawer.svelte +92 -37
- package/dist/components/Toast.svelte +4 -2
- package/dist/components/TooltipButton.svelte +1 -1
- package/dist/components/TreeSelect.svelte +212 -30
- package/dist/components/TreeSelect.svelte.d.ts +3 -1
- package/dist/components/ValidatedField.svelte +27 -0
- package/dist/components/ValidatedField.svelte.d.ts +35 -0
- package/dist/components/account/ImportMembersPage.svelte +2 -2
- package/dist/components/account/SecurityLogPage.svelte +3 -1
- package/dist/components/account/SettingsEnterprisePage.svelte +7 -5
- package/dist/components/account/TeamMembersPage.svelte +1 -1
- package/dist/components/auto-table-grid.d.ts +26 -0
- package/dist/components/auto-table-grid.js +1 -0
- package/dist/components/buttons/CloneButton.svelte +6 -4
- package/dist/components/buttons/DeleteButton.svelte +95 -29
- package/dist/components/buttons/DeleteButton.svelte.d.ts +2 -0
- package/dist/components/buttons/EditButton.svelte +6 -4
- package/dist/components/buttons/ExportButton.svelte +22 -4
- package/dist/components/buttons/ImportButton.svelte +83 -38
- package/dist/components/buttons/ImportButton.svelte.d.ts +6 -10
- package/dist/components/buttons/RefreshButton.svelte +48 -8
- package/dist/components/buttons/ShowButton.svelte +6 -4
- package/dist/components/content/ApiKeyList.svelte +3 -1
- package/dist/components/content/ContentPageHeader.svelte +12 -9
- package/dist/components/content/ContentPageShell.svelte +8 -9
- package/dist/components/content/FileBrowser.svelte +35 -0
- package/dist/components/content/FileBrowser.svelte.d.ts +14 -0
- package/dist/components/content/FileList.svelte +3 -1
- package/dist/components/content/MemberList.svelte +3 -1
- package/dist/components/content/MetricBlock.svelte +10 -13
- package/dist/components/content/NetworkTable.svelte +6 -4
- package/dist/components/content/NetworkTable.svelte.d.ts +1 -0
- package/dist/components/content/PageToolbar.svelte +6 -10
- package/dist/components/content/SectionHeader.svelte +8 -13
- package/dist/components/content/SecurityEventTable.svelte +3 -1
- package/dist/components/content/SettingsFieldRow.svelte +9 -23
- package/dist/components/content/SettingsGroup.svelte +11 -27
- package/dist/components/content/StatusBadge.svelte +3 -8
- package/dist/components/content/StatusTabs.svelte +2 -2
- package/dist/components/content/WorkspaceLayout.svelte +8 -12
- package/dist/components/enterprise/filter-tree.d.ts +48 -0
- package/dist/components/enterprise/filter-tree.js +224 -0
- package/dist/components/enterprise/json-schema-form.d.ts +39 -0
- package/dist/components/enterprise/json-schema-form.js +195 -0
- package/dist/components/enterprise/recursive-schema-form.d.ts +30 -0
- package/dist/components/enterprise/recursive-schema-form.js +196 -0
- package/dist/components/enterprise/spreadsheet-formula.d.ts +12 -0
- package/dist/components/enterprise/spreadsheet-formula.js +245 -0
- package/dist/components/fieldComponentMap.d.ts +18 -13
- package/dist/components/fieldComponentMap.js +100 -47
- package/dist/components/fields/AvatarField.svelte +1 -1
- package/dist/components/fields/ChoiceField.svelte +16 -0
- package/dist/components/fields/ChoiceField.svelte.d.ts +10 -0
- package/dist/components/fields/CodeField.svelte +11 -12
- package/dist/components/fields/CodeField.svelte.d.ts +1 -1
- package/dist/components/fields/DateField.svelte +4 -3
- package/dist/components/fields/DateRangeField.svelte +2 -4
- package/dist/components/fields/ImageField.svelte +3 -1
- package/dist/components/fields/ImagesField.svelte +23 -0
- package/dist/components/fields/ImagesField.svelte.d.ts +6 -0
- package/dist/components/fields/JsonField.svelte +19 -13
- package/dist/components/fields/PasswordField.svelte +5 -0
- package/dist/components/fields/PasswordField.svelte.d.ts +6 -0
- package/dist/components/fields/date-field-value.d.ts +2 -0
- package/dist/components/fields/date-field-value.js +13 -0
- package/dist/components/fields/json-value.d.ts +11 -0
- package/dist/components/fields/json-value.js +28 -0
- package/dist/components/json-schema-form-state.d.ts +37 -0
- package/dist/components/json-schema-form-state.js +168 -0
- package/dist/components/profile/ActivityTimeline.svelte +2 -2
- package/dist/components/record-detail.svelte.d.ts +19 -0
- package/dist/components/record-detail.svelte.js +34 -0
- package/dist/components/saved-list-views.js +29 -29
- package/dist/components/svar-grid-cells.d.ts +14 -0
- package/dist/components/svar-grid-cells.js +2 -0
- package/dist/components/svar-grid-contract.d.ts +80 -0
- package/dist/components/svar-grid-contract.js +159 -0
- package/dist/components/svar-grid-interactions.d.ts +54 -0
- package/dist/components/svar-grid-interactions.js +174 -0
- package/dist/components/svar-grid-loading.d.ts +40 -0
- package/dist/components/svar-grid-loading.js +180 -0
- package/dist/components/svar-grid-operations.d.ts +37 -0
- package/dist/components/svar-grid-operations.js +186 -0
- package/dist/components/svar-grid-panes.d.ts +34 -0
- package/dist/components/svar-grid-panes.js +66 -0
- package/dist/components/svar-grid-resource-loading.d.ts +18 -0
- package/dist/components/svar-grid-resource-loading.js +68 -0
- package/dist/components/svar-grid-resource-session.svelte.d.ts +29 -0
- package/dist/components/svar-grid-resource-session.svelte.js +61 -0
- package/dist/components/table-contract.d.ts +13 -0
- package/dist/components/table-contract.js +42 -0
- package/dist/components/task-utils.js +4 -2
- package/dist/components/ui/alert/alert-variants.d.ts +2 -3
- package/dist/components/ui/alert/alert-variants.js +1 -2
- package/dist/components/ui/alert/alert.svelte +4 -5
- package/dist/components/ui/alert/alert.svelte.d.ts +3 -8
- package/dist/components/ui/alert/index.js +0 -2
- package/dist/components/ui/avatar/avatar-variants.d.ts +2 -3
- package/dist/components/ui/avatar/avatar-variants.js +1 -2
- package/dist/components/ui/avatar/avatar.svelte +5 -6
- package/dist/components/ui/avatar/avatar.svelte.d.ts +3 -8
- package/dist/components/ui/badge/badge-variants.d.ts +2 -3
- package/dist/components/ui/badge/badge-variants.js +3 -2
- package/dist/components/ui/badge/badge.svelte +4 -5
- package/dist/components/ui/badge/badge.svelte.d.ts +3 -8
- package/dist/components/ui/badge/index.js +0 -2
- package/dist/components/ui/button/button-variants.d.ts +2 -3
- package/dist/components/ui/button/button-variants.js +5 -3
- package/dist/components/ui/button/button.svelte +100 -44
- package/dist/components/ui/button/button.svelte.d.ts +8 -12
- package/dist/components/ui/button/index.js +0 -2
- package/dist/components/ui/command/command-dialog.svelte +3 -1
- package/dist/components/ui/command/command-dialog.svelte.d.ts +1 -1
- package/dist/components/ui/command/command-group.svelte +4 -2
- package/dist/components/ui/command/command-item.svelte +4 -2
- package/dist/components/ui/command/command-separator.svelte +3 -1
- package/dist/components/ui/command/index.d.ts +5 -5
- package/dist/components/ui/input/input.svelte +41 -24
- package/dist/components/ui/input/input.svelte.d.ts +5 -4
- package/dist/components/ui/sheet/sheet.svelte +9 -3
- package/dist/components/ui/sheet/sheet.svelte.d.ts +1 -0
- package/dist/components/ui/textarea/textarea.svelte +2 -1
- package/dist/components/ui/tooltip/tooltip.svelte +4 -2
- package/dist/components.css +3079 -0
- package/dist/design-contract.d.ts +13 -0
- package/dist/design-contract.js +11 -0
- package/dist/design-system.d.ts +15 -0
- package/dist/design-system.js +7 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.js +9 -0
- package/dist/inline-value.d.ts +5 -0
- package/dist/inline-value.js +24 -0
- package/dist/numeric-input.d.ts +2 -0
- package/dist/numeric-input.js +9 -0
- package/dist/page-chrome.css +12 -49
- package/dist/recipes.d.ts +4 -0
- package/dist/recipes.js +4 -0
- package/dist/rendering/index.d.ts +87 -0
- package/dist/rendering/index.js +117 -0
- package/dist/styled-system/css/conditions.js +36 -0
- package/dist/styled-system/css/css.d.ts +22 -0
- package/dist/styled-system/css/css.js +45 -0
- package/dist/styled-system/css/cva.d.ts +6 -0
- package/dist/styled-system/css/cva.js +87 -0
- package/dist/styled-system/css/cx.d.ts +5 -0
- package/dist/styled-system/css/cx.js +15 -0
- package/dist/styled-system/css/index.d.ts +5 -0
- package/dist/styled-system/css/index.js +4 -0
- package/dist/styled-system/css/sva.d.ts +4 -0
- package/dist/styled-system/css/sva.js +46 -0
- package/dist/styled-system/helpers.js +316 -0
- package/dist/styled-system/patterns/aspect-ratio.d.ts +20 -0
- package/dist/styled-system/patterns/aspect-ratio.js +38 -0
- package/dist/styled-system/patterns/bleed.d.ts +21 -0
- package/dist/styled-system/patterns/bleed.js +24 -0
- package/dist/styled-system/patterns/box.d.ts +20 -0
- package/dist/styled-system/patterns/box.js +15 -0
- package/dist/styled-system/patterns/center.d.ts +20 -0
- package/dist/styled-system/patterns/center.js +21 -0
- package/dist/styled-system/patterns/circle.d.ts +20 -0
- package/dist/styled-system/patterns/circle.js +25 -0
- package/dist/styled-system/patterns/container.d.ts +20 -0
- package/dist/styled-system/patterns/container.js +21 -0
- package/dist/styled-system/patterns/cq.d.ts +21 -0
- package/dist/styled-system/patterns/cq.js +21 -0
- package/dist/styled-system/patterns/divider.d.ts +22 -0
- package/dist/styled-system/patterns/divider.js +25 -0
- package/dist/styled-system/patterns/flex.d.ts +26 -0
- package/dist/styled-system/patterns/flex.js +26 -0
- package/dist/styled-system/patterns/float.d.ts +23 -0
- package/dist/styled-system/patterns/float.js +52 -0
- package/dist/styled-system/patterns/grid-item.d.ts +25 -0
- package/dist/styled-system/patterns/grid-item.js +25 -0
- package/dist/styled-system/patterns/grid.d.ts +24 -0
- package/dist/styled-system/patterns/grid.js +27 -0
- package/dist/styled-system/patterns/hstack.d.ts +21 -0
- package/dist/styled-system/patterns/hstack.js +24 -0
- package/dist/styled-system/patterns/index.d.ts +21 -0
- package/dist/styled-system/patterns/index.js +20 -0
- package/dist/styled-system/patterns/link-overlay.d.ts +20 -0
- package/dist/styled-system/patterns/link-overlay.js +24 -0
- package/dist/styled-system/patterns/spacer.d.ts +20 -0
- package/dist/styled-system/patterns/spacer.js +25 -0
- package/dist/styled-system/patterns/square.d.ts +20 -0
- package/dist/styled-system/patterns/square.js +24 -0
- package/dist/styled-system/patterns/stack.d.ts +23 -0
- package/dist/styled-system/patterns/stack.js +24 -0
- package/dist/styled-system/patterns/visually-hidden.d.ts +20 -0
- package/dist/styled-system/patterns/visually-hidden.js +18 -0
- package/dist/styled-system/patterns/vstack.d.ts +21 -0
- package/dist/styled-system/patterns/vstack.js +24 -0
- package/dist/styled-system/patterns/wrap.d.ts +24 -0
- package/dist/styled-system/patterns/wrap.js +25 -0
- package/dist/styled-system/recipes/content-header.d.ts +31 -0
- package/dist/styled-system/recipes/content-header.js +65 -0
- package/dist/styled-system/recipes/content-page.d.ts +34 -0
- package/dist/styled-system/recipes/content-page.js +43 -0
- package/dist/styled-system/recipes/create-recipe.js +82 -0
- package/dist/styled-system/recipes/index.d.ts +17 -0
- package/dist/styled-system/recipes/index.js +16 -0
- package/dist/styled-system/recipes/metric-block.d.ts +34 -0
- package/dist/styled-system/recipes/metric-block.js +76 -0
- package/dist/styled-system/recipes/product-list.d.ts +31 -0
- package/dist/styled-system/recipes/product-list.js +73 -0
- package/dist/styled-system/recipes/product-section.d.ts +31 -0
- package/dist/styled-system/recipes/product-section.js +49 -0
- package/dist/styled-system/recipes/product-settings-row.d.ts +34 -0
- package/dist/styled-system/recipes/product-settings-row.js +58 -0
- package/dist/styled-system/recipes/product-settings.d.ts +31 -0
- package/dist/styled-system/recipes/product-settings.js +57 -0
- package/dist/styled-system/recipes/product-status.d.ts +34 -0
- package/dist/styled-system/recipes/product-status.js +45 -0
- package/dist/styled-system/recipes/product-toolbar.d.ts +31 -0
- package/dist/styled-system/recipes/product-toolbar.js +41 -0
- package/dist/styled-system/recipes/product-workspace.d.ts +34 -0
- package/dist/styled-system/recipes/product-workspace.js +58 -0
- package/dist/styled-system/recipes/surface-metric.d.ts +38 -0
- package/dist/styled-system/recipes/surface-metric.js +63 -0
- package/dist/styled-system/recipes/surface-table.d.ts +34 -0
- package/dist/styled-system/recipes/surface-table.js +62 -0
- package/dist/styled-system/recipes/ui-badge.d.ts +31 -0
- package/dist/styled-system/recipes/ui-badge.js +38 -0
- package/dist/styled-system/recipes/ui-button.d.ts +32 -0
- package/dist/styled-system/recipes/ui-button.js +43 -0
- package/dist/styled-system/recipes/ui-input.d.ts +31 -0
- package/dist/styled-system/recipes/ui-input.js +49 -0
- package/dist/styled-system/recipes/ui-textarea.d.ts +31 -0
- package/dist/styled-system/recipes/ui-textarea.js +24 -0
- package/dist/styled-system/styles.css +1257 -0
- package/dist/styled-system/tokens/index.d.ts +9 -0
- package/dist/styled-system/tokens/index.js +268 -0
- package/dist/styled-system/tokens/tokens.d.ts +36 -0
- package/dist/styled-system/types/composition.d.ts +227 -0
- package/dist/styled-system/types/conditions.d.ts +236 -0
- package/dist/styled-system/types/csstype.d.ts +22570 -0
- package/dist/styled-system/types/index.d.ts +6 -0
- package/dist/styled-system/types/parts.d.ts +8 -0
- package/dist/styled-system/types/pattern.d.ts +78 -0
- package/dist/styled-system/types/prop-type.d.ts +223 -0
- package/dist/styled-system/types/recipe.d.ts +181 -0
- package/dist/styled-system/types/selectors.d.ts +59 -0
- package/dist/styled-system/types/static-css.d.ts +56 -0
- package/dist/styled-system/types/style-props.d.ts +8088 -0
- package/dist/styled-system/types/system-types.d.ts +151 -0
- package/dist/styles/aliases.css +49 -0
- package/dist/styles/compatibility.epilogue.css +384 -0
- package/dist/styles/compatibility.prelude.css +5513 -0
- package/dist/styles/conditional-states.css +28 -0
- package/dist/styles/conditional-utilities.css +22 -0
- package/dist/styles/recipes.css +1262 -0
- package/dist/types.d.ts +3 -3
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +1 -1
- package/package.json +38 -14
- package/styles-compatibility.json +12 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const classProperties: Readonly<Record<string, readonly number[]>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// Generated from owned finite CSS by scripts/build-native-classnames.mjs.
|
|
2
|
+
export const classProperties = { "[writing-mode:vertical-rl]": [144], "appearance-none": [28, 38], "bg-emerald-500/10": [41, 256], "bg-info": [41], "bg-rose-500": [41], "blur": [4, 70], "border-zinc-800": [49], "capitalize": [129], "collapse": [140], "container": [142, 172, 191, 211, 223, 233], "contents": [68], "dark:bg-destructive": [147], "dark:text-green-400": [149], "drop-shadow-sm": [6, 7, 70], "fade-in": [9], "fade-in-0": [9], "fill-amber-500": [69], "filter": [70], "inline": [68], "invisible": [140], "italic": [77], "line-through": [127], "max-w-[64rem]": [98], "max-w-[74rem]": [98], "max-w-[78rem]": [98], "max-w-[92rem]": [98], "max-w-xs": [98], "no-underline": [127], "outline": [104, 105], "running": [37], "scrollbar-none": [125], "slide-in-from-right": [11], "sm:col-span-3": [164], "sm:col-span-4": [164], "sm:max-w-xl": [172], "static": [119], "svadmin-u-005b1fee4088": [97], "svadmin-u-00cde2e9f1cf": [100], "svadmin-u-00e05b9a87d5": [65], "svadmin-u-012fbd121f37": [73], "svadmin-u-01cc1873771f": [110, 111], "svadmin-u-020ba687fa12": [161], "svadmin-u-0214b4b355d1": [68], "svadmin-u-022e8076dfea": [159, 183], "svadmin-u-0277bd2c2996": [100], "svadmin-u-02af9e5da98e": [130], "svadmin-u-02cafd385619": [110, 111], "svadmin-u-02fc11cfd270": [160], "svadmin-u-03b4dd7f172b": [110, 111], "svadmin-u-0478c89a150f": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-0497cfa907ee": [98], "svadmin-u-050494726fba": [176], "svadmin-u-054cb4e36116": [30, 32, 68, 106], "svadmin-u-055a17b0d27b": [99], "svadmin-u-05f954a846d6": [49, 257], "svadmin-u-05faf5c801ff": [49, 257], "svadmin-u-064e4b9e19c3": [25, 87], "svadmin-u-069503724c35": [142], "svadmin-u-06b1d9433e62": [76], "svadmin-u-06bbb43166db": [24, 63], "svadmin-u-07017cde3e97": [83], "svadmin-u-07389a777c1f": [44, 45, 57, 58], "svadmin-u-078ed38802b9": [222], "svadmin-u-083abb355258": [65, 258], "svadmin-u-087ea857932e": [117], "svadmin-u-08cc9b1d44f8": [25, 87], "svadmin-u-095acb275581": [83], "svadmin-u-09ace3a4d9f5": [25, 87], "svadmin-u-09c1ba5f3e1a": [112], "svadmin-u-09deafdfd7f5": [24, 63], "svadmin-u-0a0bdc193a65": [16, 255], "svadmin-u-0a58453f3755": [181], "svadmin-u-0a769880db93": [83], "svadmin-u-0a88129d55fd": [96], "svadmin-u-0ab8667228fd": [96], "svadmin-u-0b8c506a0596": [102], "svadmin-u-0b91436debbd": [113, 114], "svadmin-u-0bf5f8e17abf": [184], "svadmin-u-0c15f6cff5a0": [18, 19], "svadmin-u-0c3bc98565dd": [66, 123], "svadmin-u-0c5e9137c7de": [44, 45, 57, 58], "svadmin-u-0c67ca474a69": [102], "svadmin-u-0cfe3fb5e434": [99], "svadmin-u-0d304f904cb0": [66, 123], "svadmin-u-0da48290f782": [92, 93], "svadmin-u-0e12dc7de920": [92, 93], "svadmin-u-0e17f2bd9074": [113, 114], "svadmin-u-0e5b245b4ed1": [99], "svadmin-u-0e65706bcccd": [75], "svadmin-u-0f2fff0ae96e": [145], "svadmin-u-0f618ab9ca2f": [65], "svadmin-u-0f8a144a7c17": [66], "svadmin-u-0fe7d7d814d0": [0, 1, 2, 135, 136, 137], "svadmin-u-1004c0c3954c": [66, 123], "svadmin-u-106b502aac96": [65, 258], "svadmin-u-10d7a2feb011": [142], "svadmin-u-10db0d558201": [83], "svadmin-u-1100bef66e60": [110, 111], "svadmin-u-11863ecc32e7": [142], "svadmin-u-119b2aa0b8f6": [55, 61], "svadmin-u-11e59c6d5f6b": [83], "svadmin-u-1256b2f6ad2d": [89, 90], "svadmin-u-1301e5c1ce71": [57, 58], "svadmin-u-133e86d6e1b8": [41, 256], "svadmin-u-1384f66f41d0": [108], "svadmin-u-145745bf5286": [145], "svadmin-u-14ce684b980b": [83], "svadmin-u-14e46609fd68": [24, 63], "svadmin-u-152267a018a5": [99], "svadmin-u-15e1b1f444fe": [96], "svadmin-u-166af870e200": [91], "svadmin-u-16a5872ee870": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-16b1efa5875e": [20, 63], "svadmin-u-16d6f96aa157": [41, 256], "svadmin-u-170cee3ff4e4": [107], "svadmin-u-1734f23deafe": [100], "svadmin-u-173fa8f06789": [117], "svadmin-u-177c5cdba493": [113, 114], "svadmin-u-179c0e54131c": [99], "svadmin-u-17a9f7af2265": [41, 256], "svadmin-u-18049387f0af": [49], "svadmin-u-181b286668b5": [145], "svadmin-u-18550d5945ae": [13, 88], "svadmin-u-1884518576f2": [174, 175, 176, 177, 178, 179, 180, 181], "svadmin-u-189f036c335c": [62], "svadmin-u-18a6e7a36f29": [49, 257], "svadmin-u-18d3e28787c3": [165], "svadmin-u-18f4ce4080f9": [146, 148], "svadmin-u-19d9b25e8fae": [209], "svadmin-u-1b1df78e4d0a": [116], "svadmin-u-1b2d54a3fd12": [110, 111], "svadmin-u-1bb883263ed2": [91], "svadmin-u-1c1af10f0ece": [41, 256], "svadmin-u-1ca6dd1e47c4": [3, 29, 40], "svadmin-u-1d274d2422d8": [98], "svadmin-u-1d4402dfae51": [98], "svadmin-u-1d5904e7e755": [76], "svadmin-u-1d7f28b046ad": [25, 87], "svadmin-u-1d9f2d98d149": [142], "svadmin-u-1dc571a3609f": [76], "svadmin-u-1e3de5ebbb2f": [142], "svadmin-u-1eb5c6df38c1": [74], "svadmin-u-1ee417e4637c": [67], "svadmin-u-1f51d781e606": [166], "svadmin-u-1fdf1b136104": [124], "svadmin-u-20269b6b378e": [69], "svadmin-u-2074a75bf2e7": [73], "svadmin-u-20aaf08a7ed1": [65], "svadmin-u-20ebde75765d": [115], "svadmin-u-2167406b24d7": [131], "svadmin-u-21752b56424c": [16], "svadmin-u-2191c1456297": [98], "svadmin-u-22a0a8a25f55": [147, 150], "svadmin-u-22bb278694b4": [49, 257], "svadmin-u-22e59b722111": [86], "svadmin-u-22fda335435d": [41, 256], "svadmin-u-233c0494b485": [0, 8, 135], "svadmin-u-236812d64c82": [145], "svadmin-u-23e1f628d033": [142], "svadmin-u-24104d87db9a": [41, 256], "svadmin-u-243d62579c55": [99], "svadmin-u-24546591650c": [121], "svadmin-u-2472e9b81a97": [98], "svadmin-u-2534f14adad5": [98], "svadmin-u-259ce51fc8f3": [151], "svadmin-u-25effcb585ab": [100], "svadmin-u-2689f3958069": [12, 79], "svadmin-u-269105289e8f": [41, 256], "svadmin-u-2691847b25ed": [16, 255], "svadmin-u-26e4f7bdbd56": [49, 257], "svadmin-u-27165ed73e86": [156, 157], "svadmin-u-283481e780bb": [41, 256], "svadmin-u-2859c861d7de": [41, 256], "svadmin-u-286893e2971d": [100], "svadmin-u-287a02ddc463": [41, 256], "svadmin-u-28ab41ff3b38": [142], "svadmin-u-28ae52cc20ae": [100], "svadmin-u-2917dba92464": [41, 256], "svadmin-u-29b733e4c162": [67], "svadmin-u-29f553b60628": [41, 256], "svadmin-u-2a2db4667b27": [102], "svadmin-u-2a95a5f480f7": [131], "svadmin-u-2adea12c41f3": [207], "svadmin-u-2b64ecb90ede": [196, 205], "svadmin-u-2b6f77ad4036": [16, 255], "svadmin-u-2bbcfc3b5179": [142], "svadmin-u-2c1f5e2b6a5b": [224], "svadmin-u-2c69d147b501": [122], "svadmin-u-2c955d1b45df": [80], "svadmin-u-2cc8041eca99": [98], "svadmin-u-2cd02d11d1af": [106], "svadmin-u-2d56f1807e51": [41, 256], "svadmin-u-2daa8e5e2f2e": [31, 61, 64, 83, 89, 90, 91, 92, 93, 94, 95, 96, 106, 110, 111, 112, 113, 114, 115, 116, 117, 119, 141, 142], "svadmin-u-2e479b8dbbd7": [134], "svadmin-u-2e7a6d18a20d": [100], "svadmin-u-2eba0d65d059": [126], "svadmin-u-2ee0591bf105": [209], "svadmin-u-2ef11f1cb219": [41], "svadmin-u-2f27a80ed92b": [209], "svadmin-u-2f2a842e50fa": [83], "svadmin-u-2f960aa0c478": [49, 257], "svadmin-u-3032cae0badb": [14, 78], "svadmin-u-306d283a53fe": [27, 138], "svadmin-u-308fc069e46e": [126], "svadmin-u-30c1d058f0db": [117], "svadmin-u-30ca335ae9c2": [65], "svadmin-u-30f13f694038": [41, 256], "svadmin-u-3143d72a3869": [100], "svadmin-u-319548b23f75": [158], "svadmin-u-31d2902b53fb": [142], "svadmin-u-31f2553311b6": [96], "svadmin-u-32aac21b02c8": [81], "svadmin-u-3350916b3513": [122], "svadmin-u-3355648fe22b": [41], "svadmin-u-33787152c8e8": [146, 148], "svadmin-u-338625ff877e": [41, 256], "svadmin-u-34516836730d": [67], "svadmin-u-358af0b65a31": [41, 256], "svadmin-u-359090c2d529": [76, 88], "svadmin-u-35b2f3aff60f": [98], "svadmin-u-3698555097d6": [98], "svadmin-u-36b381be4df3": [27, 138], "svadmin-u-36d4469299aa": [44, 45, 57, 58], "svadmin-u-36e579c0b41c": [71], "svadmin-u-3713c4c7843d": [98], "svadmin-u-375dc44df6e9": [41, 256], "svadmin-u-375f36f67650": [123], "svadmin-u-38a2a10339a0": [238], "svadmin-u-3960ffc248d9": [34], "svadmin-u-3972e98dc84f": [102], "svadmin-u-3a1268a4e17f": [83], "svadmin-u-3a33f11548cd": [65, 258], "svadmin-u-3a4ff758c2ab": [65], "svadmin-u-3b9871a0bf93": [166], "svadmin-u-3bb45dd48a74": [41, 256], "svadmin-u-3bbc8c13feec": [67], "svadmin-u-3c63a476b257": [134], "svadmin-u-3c8ea328c09e": [83], "svadmin-u-3d50bc090e79": [239, 240, 241, 242, 243, 244, 245, 246], "svadmin-u-3daca9af0861": [20, 63], "svadmin-u-3e0fd166d494": [119], "svadmin-u-3e1868fc53e2": [16], "svadmin-u-3e3534b4c5df": [65, 258], "svadmin-u-3eb153dc198f": [206], "svadmin-u-3ee5df8c651f": [62], "svadmin-u-3f2a1ff6358f": [99], "svadmin-u-3fd0f778c8d9": [162], "svadmin-u-3febee094e85": [76, 88], "svadmin-u-40137e897961": [36], "svadmin-u-421ac2be5045": [44, 45, 57, 58], "svadmin-u-422d10025c0d": [208], "svadmin-u-42536e69e639": [76, 88], "svadmin-u-426b8b75185b": [83], "svadmin-u-438b2237b8d6": [24, 63], "svadmin-u-43928fcc832f": [41, 256], "svadmin-u-43ed7af3fc8a": [41], "svadmin-u-44559afbdbd7": [20, 63], "svadmin-u-4455d4748b63": [81], "svadmin-u-445ec4d497ce": [50, 51], "svadmin-u-4460ceede36b": [100], "svadmin-u-44ee8ba0a421": [66, 123], "svadmin-u-451f34ab545d": [143], "svadmin-u-4558bce6d8c0": [209], "svadmin-u-4583f90cd9bd": [48], "svadmin-u-45c5dd0869c8": [86], "svadmin-u-45d828117213": [113, 114], "svadmin-u-465609a240a8": [110, 111], "svadmin-u-467420585af4": [97], "svadmin-u-46daeb0b661f": [41, 256], "svadmin-u-4701b613ff95": [174, 175], "svadmin-u-478497d5efa5": [209], "svadmin-u-479a710e57e6": [99], "svadmin-u-47a69140380e": [142], "svadmin-u-4827635fb99f": [142], "svadmin-u-4a33def12a78": [209], "svadmin-u-4a5f0ea04648": [5, 55], "svadmin-u-4b159de349a5": [99], "svadmin-u-4b5cc19bfdfc": [85], "svadmin-u-4bdb6700d16a": [100], "svadmin-u-4bfac3b6a99f": [98], "svadmin-u-4c15f4f8c5ab": [121], "svadmin-u-4c1e8d12f3db": [49], "svadmin-u-4cf5af8d25d3": [41, 256], "svadmin-u-4d62c2e3009b": [209], "svadmin-u-4e5ca9623e22": [65, 258], "svadmin-u-4e5d2af5fc1f": [96], "svadmin-u-4ee734926ff6": [76, 88], "svadmin-u-4f5874c554b6": [102], "svadmin-u-4f98da6f3301": [142], "svadmin-u-5064267f78e3": [65], "svadmin-u-506a96403942": [91], "svadmin-u-508ebf85b1c9": [83], "svadmin-u-50ca6ba56aa3": [67], "svadmin-u-50d0d216a2f8": [96], "svadmin-u-513d5c30bf66": [66], "svadmin-u-516b03df0b7c": [142], "svadmin-u-52083e7da442": [68], "svadmin-u-520bb7118c41": [97], "svadmin-u-52183a1cca53": [65, 258], "svadmin-u-521fa0c7c407": [49], "svadmin-u-52be28846b5f": [117], "svadmin-u-536a7530a44f": [145], "svadmin-u-53bb3a280599": [41, 256], "svadmin-u-53eae0624db1": [98], "svadmin-u-53ecdb131b58": [99], "svadmin-u-5540f3495030": [167], "svadmin-u-558f64349245": [97], "svadmin-u-55acecc7e2f1": [41, 256], "svadmin-u-55b6d9158f15": [41, 256], "svadmin-u-56796a90bec5": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-569eb16216dd": [112], "svadmin-u-56bf8ae82a10": [0, 1, 2, 135, 136, 137], "svadmin-u-58284b4ea568": [66, 123], "svadmin-u-582e6ef4b245": [17], "svadmin-u-591f378e24a1": [49, 257], "svadmin-u-5a14cc9f9ed4": [186], "svadmin-u-5a1ab9dd55a5": [65], "svadmin-u-5a438c30beec": [121], "svadmin-u-5b92fd698365": [16, 255], "svadmin-u-5bd7b080992c": [120], "svadmin-u-5ceb636bd9f3": [53, 54], "svadmin-u-5d17652eacdf": [209], "svadmin-u-5e8a03e061f9": [131], "svadmin-u-5f1ff8fe8768": [65, 258], "svadmin-u-5f22e64f2282": [44, 45, 57, 58], "svadmin-u-5f89f14a26db": [84], "svadmin-u-6032d46445ba": [65], "svadmin-u-60541e1e26f8": [34], "svadmin-u-60ed9c3ef326": [41, 256], "svadmin-u-60fbb7713999": [68], "svadmin-u-610bcc1bb506": [49, 257], "svadmin-u-61357c0c2f29": [110, 111], "svadmin-u-618162408e7a": [95], "svadmin-u-6199866f612f": [98], "svadmin-u-625a4c3fbeb2": [0, 8, 135], "svadmin-u-62925abe316b": [121], "svadmin-u-62c392c49841": [210], "svadmin-u-633ef3c47872": [24, 63], "svadmin-u-63a285be6490": [66, 123], "svadmin-u-64643d78ed9b": [41], "svadmin-u-64a6e3fce6e0": [201, 202], "svadmin-u-64cac80d2e9a": [153], "svadmin-u-64f847a259bc": [222], "svadmin-u-650758f4572a": [142], "svadmin-u-65281709dacf": [91], "svadmin-u-65935df577ba": [55, 61], "svadmin-u-65ac0c49a5d5": [46, 47], "svadmin-u-65fdbade2025": [46, 47], "svadmin-u-660d2effb880": [110, 111], "svadmin-u-6643d7cf66cb": [222], "svadmin-u-665f07fe73cc": [83, 142], "svadmin-u-668b21aa5409": [83], "svadmin-u-671513a87226": [142], "svadmin-u-676c91deb47e": [160], "svadmin-u-67d6184a0024": [0, 1, 2, 135, 136, 137], "svadmin-u-67d7e383dca6": [97], "svadmin-u-68750801bcf6": [41, 256], "svadmin-u-687e17559be1": [209], "svadmin-u-68d3fc190004": [121], "svadmin-u-68d55a736ff4": [65, 258], "svadmin-u-68ecb30dbec6": [110, 111], "svadmin-u-68f2db624df7": [44, 45, 57, 58], "svadmin-u-68fe531347b9": [100], "svadmin-u-69450ef1487e": [12, 79], "svadmin-u-69aaf7265e58": [100], "svadmin-u-69cdf25ad1e4": [76], "svadmin-u-69da7e4ff95d": [142], "svadmin-u-6a1572b6bf5a": [41, 256], "svadmin-u-6a31d3b03df0": [33, 139], "svadmin-u-6a60c09e6aaa": [83], "svadmin-u-6aef32016896": [120], "svadmin-u-6b189c6edadb": [13, 88], "svadmin-u-6b3526212209": [186], "svadmin-u-6b7265b65ab7": [83, 142], "svadmin-u-6b7d6e21ccbd": [117], "svadmin-u-6c32e8173349": [62], "svadmin-u-6ca625288b1e": [142], "svadmin-u-6cbc84dd9e1a": [49], "svadmin-u-6da6a3c3f741": [142], "svadmin-u-6dfb687ea917": [158], "svadmin-u-6e718d5684c2": [83], "svadmin-u-6ee2d41e2d2d": [49, 257], "svadmin-u-6f27f4f79e55": [34], "svadmin-u-6f8ab8abb126": [17], "svadmin-u-6ffcd84c45e5": [49], "svadmin-u-7054e2767710": [13, 88], "svadmin-u-7065497e1ca0": [102], "svadmin-u-706701550477": [41, 256], "svadmin-u-706c16d853e6": [66], "svadmin-u-707e8e52f284": [41], "svadmin-u-711a3789b7a6": [65, 258], "svadmin-u-714816efc69c": [102], "svadmin-u-7178afa5bad6": [209], "svadmin-u-71e31b2f1bb2": [142], "svadmin-u-71ec51c9997d": [142], "svadmin-u-7209fd2a90e7": [174, 175], "svadmin-u-72470489ff4e": [142], "svadmin-u-72a4c7cdeef7": [65], "svadmin-u-7357df2b2e0c": [76], "svadmin-u-73a1340934c0": [83], "svadmin-u-73fc3fb18ceb": [106], "svadmin-u-74b2435a1d40": [142], "svadmin-u-74f9876a6800": [89, 90, 91, 92, 93, 94, 95, 96], "svadmin-u-751fb0d102ba": [76, 88], "svadmin-u-7597e11b4d4b": [113, 114], "svadmin-u-75b1bec3ea0e": [41], "svadmin-u-75be195e1cd6": [96], "svadmin-u-76067d04e222": [76], "svadmin-u-7660b450905a": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-76610325273f": [92, 93], "svadmin-u-76747e5e02ff": [65], "svadmin-u-77533d414653": [170], "svadmin-u-77a2a20e90d4": [66, 123], "svadmin-u-77c08e015d14": [85], "svadmin-u-783b0d9d1e2c": [83, 142], "svadmin-u-7890552ecd63": [0, 8, 135], "svadmin-u-78e6d0ebb9a4": [102], "svadmin-u-793346c7362c": [99], "svadmin-u-793c2275b157": [213, 214, 215, 216, 217, 218, 219, 220], "svadmin-u-79bf1259388b": [75], "svadmin-u-7a0854fdbc30": [41, 256], "svadmin-u-7a09f4b2d159": [99], "svadmin-u-7a470f4c9b28": [131], "svadmin-u-7a9aabfcd059": [177, 178], "svadmin-u-7a9ad020b130": [83, 142], "svadmin-u-7ab81aede9d8": [142], "svadmin-u-7b17becb34a1": [98], "svadmin-u-7b2d63937d23": [121], "svadmin-u-7b32fba79b0f": [24, 63], "svadmin-u-7b7df0449b80": [62, 86, 121, 131], "svadmin-u-7bbb00f9ba7a": [83, 142], "svadmin-u-7bc555991dba": [119], "svadmin-u-7be4d67a6256": [65, 258], "svadmin-u-7d167f503a39": [209], "svadmin-u-7d283214b870": [203, 204], "svadmin-u-7d5d4c29be2a": [118], "svadmin-u-7d85d0c21a32": [101], "svadmin-u-7e0b7cdf1a94": [100], "svadmin-u-7e3e9a76c966": [113, 114], "svadmin-u-7e74e5fe798a": [142], "svadmin-u-7e9a2a250cc3": [66, 123], "svadmin-u-7ec10f86d9b1": [142], "svadmin-u-7f044b149379": [24, 63], "svadmin-u-7f19cdf4c5bb": [41], "svadmin-u-7f351d50b6e6": [41, 256], "svadmin-u-7f6912283f11": [33, 139], "svadmin-u-7fc47b48933f": [102], "svadmin-u-7fc7f732bf7e": [83], "svadmin-u-7fcf9124b5df": [112], "svadmin-u-8045cf4c0182": [165], "svadmin-u-8078c71d23ee": [33, 139], "svadmin-u-811148b13d1e": [65], "svadmin-u-81976f3f2c63": [115], "svadmin-u-823f000e740a": [18, 19], "svadmin-u-82cc6c6581cd": [95], "svadmin-u-82d0b7da66df": [99], "svadmin-u-831f8770959d": [224], "svadmin-u-8417db9333ae": [41, 256], "svadmin-u-844322115e56": [0, 8, 135], "svadmin-u-845f53365c8d": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-84789e8a20cd": [142], "svadmin-u-84bdd56b0e81": [169], "svadmin-u-85399de17097": [16], "svadmin-u-85d919893645": [41, 256], "svadmin-u-86171d20618e": [83], "svadmin-u-86843cf1e227": [85], "svadmin-u-8782d84cc906": [131], "svadmin-u-87faeaaa291e": [212], "svadmin-u-8956a4275b9d": [95], "svadmin-u-897d497e57b6": [98], "svadmin-u-898c0bcba480": [165], "svadmin-u-89904d276530": [99], "svadmin-u-89a62219c1a7": [39], "svadmin-u-8a1efe654daa": [65, 258], "svadmin-u-8a25a995eb8e": [41, 256], "svadmin-u-8a3831239aa5": [194, 195], "svadmin-u-8a539c7fe216": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-8a5560925d62": [56], "svadmin-u-8a7a926578c8": [99], "svadmin-u-8aee2b07b47d": [97], "svadmin-u-8b434b651a9e": [16, 255], "svadmin-u-8b8196092091": [42, 43], "svadmin-u-8baf13a3e9d7": [25, 87], "svadmin-u-8bd891360308": [152, 185], "svadmin-u-8d08385288a6": [67], "svadmin-u-8dddea0773ed": [72], "svadmin-u-8e63407b5ceb": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-8e75e3db482b": [81], "svadmin-u-8e7bba3352f0": [16, 255], "svadmin-u-8ecebc9f80e6": [12, 79], "svadmin-u-8edb3fc31a03": [186], "svadmin-u-8ef2268efbbc": [85], "svadmin-u-8ffe7a29179a": [94], "svadmin-u-9079b62ef1cb": [115], "svadmin-u-918184635b1d": [65], "svadmin-u-9249876ba240": [174, 175], "svadmin-u-92b7f35f04c0": [67], "svadmin-u-92bf82f493b1": [109], "svadmin-u-92e13d146fd7": [142], "svadmin-u-92e7450ad20d": [142], "svadmin-u-931228bbb579": [81], "svadmin-u-9335c39f6eff": [117], "svadmin-u-93b32079b969": [89, 90], "svadmin-u-940911bf310c": [110, 111], "svadmin-u-940924b6e2d9": [142], "svadmin-u-945ecb9a9005": [49, 257], "svadmin-u-952dfef04298": [234, 236], "svadmin-u-956fcc198f22": [222], "svadmin-u-95b7dea5a67f": [49, 257], "svadmin-u-9673d11dbf8a": [182], "svadmin-u-96747a728556": [65, 258], "svadmin-u-9678c61eaac3": [83], "svadmin-u-967d113a1451": [41, 256], "svadmin-u-968a1e649bad": [99], "svadmin-u-9794ab45094d": [98], "svadmin-u-97f0119b2cac": [41, 256], "svadmin-u-980d09f1c472": [52], "svadmin-u-983fa003115f": [25, 87], "svadmin-u-98714a2f7d41": [65, 258], "svadmin-u-989541ad4512": [115], "svadmin-u-989c466fdbe7": [41, 256], "svadmin-u-9939b97359ce": [83, 142], "svadmin-u-9953408a8ef3": [96], "svadmin-u-998e0b29fe9e": [163, 168], "svadmin-u-99d459b1015d": [41, 256], "svadmin-u-99d72c7fc3e2": [68], "svadmin-u-9a2db8f949b6": [131], "svadmin-u-9a638cfe8212": [190], "svadmin-u-9af3b4b6dc9e": [83, 142], "svadmin-u-9b13e8ae5c9c": [65], "svadmin-u-9b3d0721b628": [83], "svadmin-u-9c4dae6452a4": [161], "svadmin-u-9cea05671a29": [142], "svadmin-u-9d5d8b4711b4": [49, 257], "svadmin-u-9d60be3a6d80": [188], "svadmin-u-9e10c04e17bb": [92, 93], "svadmin-u-9e3dc30c26a3": [98], "svadmin-u-9e50f522071f": [39], "svadmin-u-9e83b2412bc9": [115], "svadmin-u-9f76a62f4f44": [153], "svadmin-u-9fcd8a13827e": [112], "svadmin-u-9fe52d5d506c": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-a0206a0583c8": [99], "svadmin-u-a02aa8a60111": [172], "svadmin-u-a06ab179a5d5": [225, 226, 227, 228, 229, 230, 231, 232], "svadmin-u-a09a722d3ce4": [172], "svadmin-u-a10fdd7667ee": [16, 255], "svadmin-u-a127a4f41a7d": [49, 257], "svadmin-u-a139beb4e318": [110, 111], "svadmin-u-a14daebf7748": [76], "svadmin-u-a1e7a8069878": [100], "svadmin-u-a1f611f027dd": [110, 111], "svadmin-u-a201da4b0d91": [97], "svadmin-u-a217b4eaa918": [44, 45, 57, 58], "svadmin-u-a29b7a649c77": [5, 55], "svadmin-u-a2edcb1a3a6b": [141], "svadmin-u-a3158643e114": [16, 255], "svadmin-u-a327049cac5b": [206], "svadmin-u-a3899220f90e": [66, 123], "svadmin-u-a4326536b8f5": [118], "svadmin-u-a43c96035e6f": [209], "svadmin-u-a4805b5f5b63": [97], "svadmin-u-a486cacb3a15": [41], "svadmin-u-a4ba1a079087": [24, 63], "svadmin-u-a4d0f420b78d": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-a4fe7d4d1e07": [49, 257], "svadmin-u-a50d3377f4ac": [67], "svadmin-u-a59afa8d9b9d": [41], "svadmin-u-a6afccfc915b": [49, 257], "svadmin-u-a6e88615d742": [72], "svadmin-u-a77ed4d908c0": [91], "svadmin-u-a7a63217e098": [65], "svadmin-u-a909a196be82": [41, 256], "svadmin-u-a9436de0cd55": [235, 237], "svadmin-u-a94f89d92058": [207], "svadmin-u-a968a4123359": [154, 155], "svadmin-u-a9ef791a0777": [100], "svadmin-u-aa2c13a5e1b4": [116], "svadmin-u-aa6c1169cd77": [72], "svadmin-u-aac62f0e854f": [96], "svadmin-u-aadad6871af8": [83], "svadmin-u-ab159a179155": [41, 256], "svadmin-u-ab1b20c2292a": [165], "svadmin-u-ab82c25c24ec": [116], "svadmin-u-ac204c108886": [44, 45, 57, 58], "svadmin-u-ac402894e356": [41, 256], "svadmin-u-ac7e80a2c2ae": [212], "svadmin-u-acaee62117b1": [83], "svadmin-u-ad36c0242ee8": [124], "svadmin-u-ad47d17e603c": [24, 63], "svadmin-u-add63bc6753d": [83, 142], "svadmin-u-adfb03d826b8": [89, 90], "svadmin-u-ae2181c7b10f": [142], "svadmin-u-ae724a8c3dec": [67], "svadmin-u-aea6160836e7": [83], "svadmin-u-afbdd13a380e": [36], "svadmin-u-afc45e21ada6": [99], "svadmin-u-b00f43c30c2b": [41, 256], "svadmin-u-b03f3c253900": [186], "svadmin-u-b06f8413aa63": [83, 142], "svadmin-u-b1044d8600a8": [131], "svadmin-u-b1104f41444a": [101], "svadmin-u-b1c4d746518d": [65], "svadmin-u-b247a17a0d75": [41, 256], "svadmin-u-b2e7cc55921c": [86], "svadmin-u-b39e60c339f4": [66, 123], "svadmin-u-b4168890eac6": [97], "svadmin-u-b45ce4b65d53": [94], "svadmin-u-b485ae1c3b47": [55, 61], "svadmin-u-b486a1ee45b0": [76], "svadmin-u-b4f9f7800899": [65, 258], "svadmin-u-b59cd297c349": [39], "svadmin-u-b5f3ff77f4f9": [83], "svadmin-u-b63b7d8eef5d": [97], "svadmin-u-b6777c6db914": [91], "svadmin-u-b67ee2eeca37": [142], "svadmin-u-b6b02c0ebef6": [96], "svadmin-u-b7012bb243cc": [34], "svadmin-u-b7ce0d2f6c04": [142], "svadmin-u-b7daff9b9ddd": [174, 175], "svadmin-u-b7dfca40c07f": [186], "svadmin-u-b86f7f946cd8": [222], "svadmin-u-b8f0a08ece1e": [83], "svadmin-u-b950dda299d3": [59, 60], "svadmin-u-b9e5bb3c1a40": [67], "svadmin-u-ba002e28b7ba": [172], "svadmin-u-ba1dab71e35e": [41, 256], "svadmin-u-ba939ea82d8b": [41], "svadmin-u-bac517ea5f0f": [209], "svadmin-u-baceed3462fd": [142], "svadmin-u-bb0c4bfc52bd": [68], "svadmin-u-bb10ec63a8d0": [222], "svadmin-u-bb3e95154365": [199, 200], "svadmin-u-bcf14a5a5472": [123], "svadmin-u-be2e831be5dd": [81], "svadmin-u-be62e835b692": [16, 255], "svadmin-u-bee68af349c9": [59, 60], "svadmin-u-bf1b5b54929e": [222], "svadmin-u-bf600f8e029c": [142], "svadmin-u-bf60a82ffbd9": [187], "svadmin-u-bfa603190748": [65], "svadmin-u-c05fcc7c4caa": [100], "svadmin-u-c07e54fd1439": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-c0980a65a70d": [98], "svadmin-u-c0bedbbc0c34": [172], "svadmin-u-c163b0edfdf0": [123], "svadmin-u-c1b9bd611950": [62], "svadmin-u-c1ca66f139f6": [142], "svadmin-u-c2385a463da8": [13, 88], "svadmin-u-c3c9f24b386b": [97], "svadmin-u-c4501453167b": [65], "svadmin-u-c4b15df0fe95": [182], "svadmin-u-c55dcda26eec": [131], "svadmin-u-c614099df7f7": [100], "svadmin-u-c688a14d7b97": [49, 257], "svadmin-u-c68af9986751": [94], "svadmin-u-c696a0890973": [142], "svadmin-u-c698f77c9ba5": [41, 256], "svadmin-u-c69e21ff5804": [98], "svadmin-u-c6a5b7446421": [97], "svadmin-u-c6b7e58a30d8": [13, 88], "svadmin-u-c74901da6f6c": [122], "svadmin-u-c78facc7a0a6": [86], "svadmin-u-c7d50d5fc0c3": [35], "svadmin-u-c7f14f00a474": [99], "svadmin-u-c80f3ab59fae": [173], "svadmin-u-c82b67c88e69": [127], "svadmin-u-c98d73ab4dcd": [209], "svadmin-u-c9b99cd93450": [110, 111], "svadmin-u-c9c45f3d5d06": [221], "svadmin-u-c9ed8c5f79ae": [49, 257], "svadmin-u-ca6bcd4b6f3f": [55, 61], "svadmin-u-ca6bf63030aa": [126], "svadmin-u-cb11fec3bb46": [110, 111], "svadmin-u-cbbf90f9a828": [142], "svadmin-u-cbc20887874e": [100], "svadmin-u-cc06a6575385": [177, 178], "svadmin-u-cc46d0fa277d": [83, 142], "svadmin-u-ccc86a0cef94": [41, 256], "svadmin-u-cd009d7d208c": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-cd0ad9a56558": [41], "svadmin-u-cd0d9c512cdc": [83], "svadmin-u-cdaa0b7ef445": [159, 183], "svadmin-u-cddc79d3aaec": [65, 258], "svadmin-u-cddd27bcad85": [65], "svadmin-u-cdf6e054e5e0": [49, 257], "svadmin-u-ce335a8e4f56": [117], "svadmin-u-ceb69a6b0e5f": [0, 1, 2, 135, 136, 137], "svadmin-u-ceb7ac66b25b": [66, 123], "svadmin-u-cecf8bbb11d7": [209], "svadmin-u-cef5b893cf23": [24, 63], "svadmin-u-cf3893e36c22": [98], "svadmin-u-cff55289f8f2": [76], "svadmin-u-d008dee27eaa": [49, 257], "svadmin-u-d043cad8e3fa": [142], "svadmin-u-d058ca6de60f": [76], "svadmin-u-d05bf7110c88": [190], "svadmin-u-d07ac033ff8d": [16, 255], "svadmin-u-d0a52b312f7d": [83], "svadmin-u-d0ce7c24d9dd": [206], "svadmin-u-d0dfe7e6acb2": [247, 248, 249, 250, 251, 252, 253, 254], "svadmin-u-d139dd09e38d": [113, 114], "svadmin-u-d16aae848835": [142], "svadmin-u-d1c57777d8b6": [83], "svadmin-u-d2347e8497a9": [95], "svadmin-u-d2d2d97dd0c8": [115], "svadmin-u-d2ffb24f3e1d": [186], "svadmin-u-d378a2461dc3": [164], "svadmin-u-d3aed606df1d": [41], "svadmin-u-d4108abe6359": [65], "svadmin-u-d4f78465b34d": [50, 51], "svadmin-u-d528c7381898": [49, 257], "svadmin-u-d542b60b5312": [41, 256], "svadmin-u-d59b97947485": [36], "svadmin-u-d5c9b0001e7e": [76, 88], "svadmin-u-d5e98261a758": [46, 47], "svadmin-u-d5eab218aa34": [113, 114], "svadmin-u-d633790a1397": [69], "svadmin-u-d694ba66e322": [131], "svadmin-u-d7bf6780c9a5": [190], "svadmin-u-d7c8339810d3": [81], "svadmin-u-d83be576442b": [86], "svadmin-u-d854e5698b57": [142], "svadmin-u-d89972fe17d6": [119], "svadmin-u-d8cdcad240d1": [121], "svadmin-u-d8e0e382c67b": [113, 114], "svadmin-u-d8f5213f0fe0": [83, 142], "svadmin-u-d9256981a032": [25, 87], "svadmin-u-d9a1932be4d4": [209], "svadmin-u-d9bdd3d643a2": [165], "svadmin-u-d9c3c520f7d5": [41, 256], "svadmin-u-d9d0c50e89ff": [41, 256], "svadmin-u-da019856f2cc": [91], "svadmin-u-da2c5d419684": [49], "svadmin-u-da4dbfbc4fdc": [119], "svadmin-u-da619aaefdf6": [69, 259], "svadmin-u-daf5dc5fac2b": [194, 195], "svadmin-u-db5a366a0e21": [145], "svadmin-u-dc7972ebf3f3": [142], "svadmin-u-dccfb8555c84": [41, 256], "svadmin-u-dd317c20a8aa": [186], "svadmin-u-dd90176a46af": [146, 148], "svadmin-u-de2d5f919ba9": [213, 214, 215, 216, 217, 218, 219, 220], "svadmin-u-de8350a3bbad": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-de96100841e6": [221], "svadmin-u-df37b1fd9495": [15, 104], "svadmin-u-df403bbae8fc": [142], "svadmin-u-dfb5e722be57": [82], "svadmin-u-dfe9bd9e7001": [171], "svadmin-u-dff2e7481197": [62, 86, 121, 131], "svadmin-u-e00052b6f07e": [199, 200], "svadmin-u-e00ad81645a2": [165], "svadmin-u-e09880869d1f": [76], "svadmin-u-e09a917c4c3b": [49, 257], "svadmin-u-e0d9cc7f0647": [113, 114], "svadmin-u-e12dfd448aa6": [89, 90, 91, 92, 93, 94, 95, 96], "svadmin-u-e2327d142859": [163, 168], "svadmin-u-e25ca6535dea": [13, 88], "svadmin-u-e271e6ae16dc": [108], "svadmin-u-e299d4635ea7": [174, 175, 176, 177, 178, 179, 180, 181], "svadmin-u-e2f2b4a69d35": [197, 198], "svadmin-u-e2fe2012a697": [142], "svadmin-u-e31889b585dc": [81], "svadmin-u-e32fca50a966": [173], "svadmin-u-e3fd07f96126": [160], "svadmin-u-e477a6af4cb6": [188], "svadmin-u-e4af885410fe": [115], "svadmin-u-e4d6f343b9ff": [190], "svadmin-u-e541d86d1ec8": [41], "svadmin-u-e5738cbd2714": [97], "svadmin-u-e5795dad4d22": [49], "svadmin-u-e632769ad71e": [86], "svadmin-u-e6f9e383a762": [41], "svadmin-u-e7a768f922d2": [83], "svadmin-u-e7e371071bc5": [142], "svadmin-u-e7ee55ac7ffe": [110, 111], "svadmin-u-e82ae8be04aa": [141], "svadmin-u-e836f6e0a16f": [83], "svadmin-u-e83a7042bc91": [12, 79], "svadmin-u-e86fadb84483": [192, 193], "svadmin-u-e91f4cd3974c": [174, 175, 176, 177, 178, 179, 180, 181], "svadmin-u-e9963c2ac628": [36], "svadmin-u-e9cbeabe7285": [86], "svadmin-u-e9fadafbd4a2": [13, 88], "svadmin-u-ea37b42b1c3b": [103], "svadmin-u-ea875e48d525": [86], "svadmin-u-eadef238231e": [0, 1, 2, 135, 136, 137], "svadmin-u-eb6a3cef9686": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-eb6e8b881acd": [110, 111, 112, 113, 114, 115, 116, 117], "svadmin-u-ec0091ee009b": [110, 111], "svadmin-u-eccd13ef4f2f": [96], "svadmin-u-ecf9478d01e6": [98], "svadmin-u-ecfeb742a3f3": [86], "svadmin-u-ed43795e908d": [65], "svadmin-u-ed831a4dff32": [142], "svadmin-u-ed8a5df7b2fb": [83], "svadmin-u-ed9d3d832af8": [24, 63], "svadmin-u-eda955402ba6": [116], "svadmin-u-edaba517866e": [142], "svadmin-u-ee15a477cd9c": [99], "svadmin-u-ee1a5af3aa10": [49], "svadmin-u-ee3c1259a368": [160], "svadmin-u-eea04c60c0ca": [189], "svadmin-u-ef114b5f5ad1": [83], "svadmin-u-ef2d6f74d3d0": [83, 142], "svadmin-u-ef72121aca75": [103], "svadmin-u-efaa0701487e": [26, 138], "svadmin-u-efc981d0f818": [142], "svadmin-u-f04f99ff45cb": [91], "svadmin-u-f09b0bbad9dd": [142], "svadmin-u-f0c1e65bd6f2": [49, 257], "svadmin-u-f0faeb26d656": [113, 114], "svadmin-u-f160abf88b25": [41, 256], "svadmin-u-f1669c2d7424": [41], "svadmin-u-f24b9e2db7e8": [83], "svadmin-u-f283ea9bea0e": [106, 128, 141], "svadmin-u-f2868c227fcd": [102], "svadmin-u-f3c543ad5fe9": [68], "svadmin-u-f42e9fee68a1": [16, 255], "svadmin-u-f46b61a9b310": [117], "svadmin-u-f4cc511ff0c1": [112], "svadmin-u-f50571addf44": [145], "svadmin-u-f5583b2907be": [49, 257], "svadmin-u-f57e7530965b": [50, 51], "svadmin-u-f58b02572ab2": [94], "svadmin-u-f5c8cc114f47": [44, 45, 57, 58], "svadmin-u-f69834fc7f5b": [96], "svadmin-u-f6fe902450dc": [83], "svadmin-u-f71dfc1f3d97": [41, 256], "svadmin-u-f7b5fa971871": [83, 142], "svadmin-u-f81ede24db81": [97], "svadmin-u-f82f0c255ad9": [83], "svadmin-u-f8516763aedd": [100], "svadmin-u-f854738e0622": [102], "svadmin-u-f89e35297f0f": [153], "svadmin-u-f92d02360b8f": [113, 114], "svadmin-u-f93148569c39": [65, 258], "svadmin-u-fa3f7111e53b": [98], "svadmin-u-fa68ba954fb0": [65], "svadmin-u-fafb9e0bfb6a": [116], "svadmin-u-fb1b0d05046d": [41], "svadmin-u-fb56d9cff341": [94], "svadmin-u-fb7302e5364d": [99], "svadmin-u-fb77735ed17c": [96], "svadmin-u-fb88ccaacf5b": [91], "svadmin-u-fc7473ca09eb": [76, 88], "svadmin-u-fd0beb7ec078": [222], "svadmin-u-fd1dda07320a": [16], "svadmin-u-fd9aebd23c39": [97], "svadmin-u-fd9bb0dd33ac": [94], "svadmin-u-fd9dca32f483": [41, 256], "svadmin-u-fdb4af3ae0bc": [115], "svadmin-u-fde8b650ab2d": [172], "svadmin-u-febbcd95bf06": [222], "svadmin-u-febc34e471df": [24, 63], "svadmin-u-fecb6ec6cfa0": [21, 22, 23, 124], "svadmin-u-fed9c9b1e894": [69], "svadmin-u-ff4a6777f1bc": [83], "svadmin-u-ff4d2db0e22a": [97], "svadmin-u-ffe6499f370c": [16, 255], "table": [68], "table-caption": [68], "table-cell": [68], "table-row": [68], "text-green-500": [65], "touch-none": [132], "transform": [133], "uppercase": [129], "visible": [140], "zoom-in-50": [10], "zoom-in-95": [10] };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ClassValue } from 'clsx';
|
|
2
|
+
export type { ClassValue } from 'clsx';
|
|
3
|
+
/**
|
|
4
|
+
* Compose native classes. Only owned finite classes have conflict metadata.
|
|
5
|
+
* Unknown host classes are retained; arbitrary utility syntax is not interpreted.
|
|
6
|
+
*/
|
|
7
|
+
export declare function composeClasses(classes: string, properties: Readonly<Record<string, readonly number[]>>): string;
|
|
8
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import { classProperties } from './class-properties.generated.js';
|
|
3
|
+
/**
|
|
4
|
+
* Compose native classes. Only owned finite classes have conflict metadata.
|
|
5
|
+
* Unknown host classes are retained; arbitrary utility syntax is not interpreted.
|
|
6
|
+
*/
|
|
7
|
+
export function composeClasses(classes, properties) {
|
|
8
|
+
const covered = new Set();
|
|
9
|
+
const seen = new Set();
|
|
10
|
+
const kept = [];
|
|
11
|
+
for (const name of classes.split(/\s+/u).filter(Boolean).reverse()) {
|
|
12
|
+
if (seen.has(name))
|
|
13
|
+
continue;
|
|
14
|
+
seen.add(name);
|
|
15
|
+
const declarations = Object.hasOwn(properties, name) ? properties[name] : undefined;
|
|
16
|
+
if (declarations?.length && declarations.every((atom) => covered.has(atom)))
|
|
17
|
+
continue;
|
|
18
|
+
kept.push(name);
|
|
19
|
+
for (const atom of declarations ?? [])
|
|
20
|
+
covered.add(atom);
|
|
21
|
+
}
|
|
22
|
+
return kept.reverse().join(' ');
|
|
23
|
+
}
|
|
24
|
+
export function cn(...inputs) {
|
|
25
|
+
return composeClasses(clsx(inputs), classProperties);
|
|
26
|
+
}
|
|
@@ -5,35 +5,49 @@
|
|
|
5
5
|
* prop on `AdminApp`, while providing sensible defaults.
|
|
6
6
|
*/
|
|
7
7
|
import { type Component } from 'svelte';
|
|
8
|
+
import type Layout from './components/Layout.svelte';
|
|
9
|
+
import type Sidebar from './components/Sidebar.svelte';
|
|
10
|
+
import type Header from './components/Header.svelte';
|
|
11
|
+
import type LoginPage from './components/LoginPage.svelte';
|
|
12
|
+
import type AutoTable from './components/AutoTable.svelte';
|
|
13
|
+
import type AutoForm from './components/AutoForm.svelte';
|
|
14
|
+
import type ShowPage from './components/ShowPage.svelte';
|
|
15
|
+
import type ErrorPage from './components/ErrorPage.svelte';
|
|
16
|
+
import type Button from './components/ui/button/button.svelte';
|
|
17
|
+
import type Input from './components/ui/input/input.svelte';
|
|
18
|
+
import type Badge from './components/ui/badge/badge.svelte';
|
|
19
|
+
import type Skeleton from './components/ui/skeleton/skeleton.svelte';
|
|
20
|
+
import type Breadcrumbs from './components/Breadcrumbs.svelte';
|
|
21
|
+
import type TaskQueueDrawer from './components/TaskQueueDrawer.svelte';
|
|
8
22
|
export interface ComponentRegistry {
|
|
9
|
-
Layout:
|
|
10
|
-
Sidebar:
|
|
11
|
-
Header:
|
|
12
|
-
LoginPage:
|
|
13
|
-
AutoTable:
|
|
14
|
-
AutoForm:
|
|
15
|
-
ShowPage:
|
|
16
|
-
ErrorPage?:
|
|
17
|
-
Button:
|
|
18
|
-
Input:
|
|
19
|
-
Badge:
|
|
20
|
-
Skeleton:
|
|
23
|
+
Layout: typeof Layout;
|
|
24
|
+
Sidebar: typeof Sidebar;
|
|
25
|
+
Header: typeof Header;
|
|
26
|
+
LoginPage: typeof LoginPage;
|
|
27
|
+
AutoTable: typeof AutoTable;
|
|
28
|
+
AutoForm: typeof AutoForm;
|
|
29
|
+
ShowPage: typeof ShowPage;
|
|
30
|
+
ErrorPage?: typeof ErrorPage;
|
|
31
|
+
Button: typeof Button;
|
|
32
|
+
Input: typeof Input;
|
|
33
|
+
Badge: typeof Badge;
|
|
34
|
+
Skeleton: typeof Skeleton;
|
|
21
35
|
/** Custom dashboard page component (replaces default welcome message) */
|
|
22
|
-
DashboardPage?: Component
|
|
36
|
+
DashboardPage?: Component;
|
|
23
37
|
/** Custom breadcrumbs component (replaces built-in Breadcrumbs) */
|
|
24
|
-
Breadcrumbs?:
|
|
38
|
+
Breadcrumbs?: typeof Breadcrumbs;
|
|
25
39
|
/** Custom theme toggle button (replaces built-in Sun/Moon toggle) */
|
|
26
|
-
ThemeToggle?: Component
|
|
40
|
+
ThemeToggle?: Component;
|
|
27
41
|
/** Custom user menu / avatar dropdown in the header */
|
|
28
|
-
UserMenu?: Component
|
|
42
|
+
UserMenu?: Component;
|
|
29
43
|
/** Custom notification panel / bell icon in the header */
|
|
30
|
-
NotificationPanel?: Component
|
|
44
|
+
NotificationPanel?: Component;
|
|
31
45
|
/** Custom task queue drawer / task center trigger in the header */
|
|
32
|
-
TaskQueueDrawer?:
|
|
46
|
+
TaskQueueDrawer?: typeof TaskQueueDrawer;
|
|
33
47
|
}
|
|
34
48
|
/** Set the component registry in context (called by AdminApp). */
|
|
35
49
|
export declare function setComponentRegistry(registry: ComponentRegistry): void;
|
|
36
50
|
/** Retrieve the full component registry from context. */
|
|
37
|
-
export declare function getComponentRegistry(): ComponentRegistry;
|
|
51
|
+
export declare function getComponentRegistry(): ComponentRegistry | undefined;
|
|
38
52
|
/** Retrieve a single component by name from the registry. */
|
|
39
53
|
export declare function useComponent<K extends keyof ComponentRegistry>(name: K): ComponentRegistry[K];
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
1
|
/**
|
|
3
2
|
* Component Registry — Svelte Context-based DI for component injection.
|
|
4
3
|
*
|
|
5
4
|
* Allows users to override any registered component via the `components`
|
|
6
5
|
* prop on `AdminApp`, while providing sensible defaults.
|
|
7
6
|
*/
|
|
8
|
-
import { getContext, setContext } from 'svelte';
|
|
7
|
+
import { getContext, hasContext, setContext } from 'svelte';
|
|
9
8
|
const REGISTRY_KEY = 'svadmin:components';
|
|
10
9
|
/** Set the component registry in context (called by AdminApp). */
|
|
11
10
|
export function setComponentRegistry(registry) {
|
|
@@ -13,9 +12,12 @@ export function setComponentRegistry(registry) {
|
|
|
13
12
|
}
|
|
14
13
|
/** Retrieve the full component registry from context. */
|
|
15
14
|
export function getComponentRegistry() {
|
|
16
|
-
return getContext(REGISTRY_KEY);
|
|
15
|
+
return hasContext(REGISTRY_KEY) ? getContext(REGISTRY_KEY) : undefined;
|
|
17
16
|
}
|
|
18
17
|
/** Retrieve a single component by name from the registry. */
|
|
19
18
|
export function useComponent(name) {
|
|
20
|
-
|
|
19
|
+
const registry = getComponentRegistry();
|
|
20
|
+
if (!registry)
|
|
21
|
+
throw new Error('Component registry requires an AdminApp context');
|
|
22
|
+
return registry[name];
|
|
21
23
|
}
|
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
</script>
|
|
17
17
|
|
|
18
18
|
<script lang="ts">
|
|
19
|
+
import { definedReactiveOptions } from '@svadmin/core/options';
|
|
20
|
+
|
|
21
|
+
import { definedOptions } from '@svadmin/core/options';
|
|
22
|
+
|
|
19
23
|
// Auto-inject design tokens so consumers don't need to manually import
|
|
20
24
|
import '../app.css';
|
|
21
25
|
import { onDestroy, onMount, untrack, type Component, type Snippet } from 'svelte';
|
|
@@ -68,7 +72,7 @@
|
|
|
68
72
|
import ConfigErrorScreen from './ConfigErrorScreen.svelte';
|
|
69
73
|
import Sidebar from './Sidebar.svelte';
|
|
70
74
|
import Header from './Header.svelte';
|
|
71
|
-
import TaskQueueDrawer from './
|
|
75
|
+
import TaskQueueDrawer from './LazyTaskQueueDrawer.svelte';
|
|
72
76
|
import SettingsPage from './SettingsPage.svelte';
|
|
73
77
|
import ErrorPage from './ErrorPage.svelte';
|
|
74
78
|
import SystemPageShell from './SystemPageShell.svelte';
|
|
@@ -105,8 +109,8 @@
|
|
|
105
109
|
/** Request/tree-scoped tenant. Tenant identifiers are never rendered by DevTools. */
|
|
106
110
|
tenant?: TenantContext;
|
|
107
111
|
resources: ResourceDefinition[];
|
|
108
|
-
/**
|
|
109
|
-
locale?: string;
|
|
112
|
+
/** Undefined releases the bound locale to provider/browser detection (English during SSR). */
|
|
113
|
+
locale?: string | undefined;
|
|
110
114
|
/** Optional tree-local translation provider. */
|
|
111
115
|
i18nProvider?: I18nProvider;
|
|
112
116
|
title?: string;
|
|
@@ -188,10 +192,7 @@
|
|
|
188
192
|
Layout, Sidebar, Header,
|
|
189
193
|
LoginPage, AutoTable, AutoForm, ShowPage,
|
|
190
194
|
TaskQueueDrawer, ErrorPage,
|
|
191
|
-
Button
|
|
192
|
-
Input: Input as unknown as ComponentRegistry['Input'],
|
|
193
|
-
Badge: Badge as unknown as ComponentRegistry['Badge'],
|
|
194
|
-
Skeleton: Skeleton as unknown as ComponentRegistry['Skeleton'],
|
|
195
|
+
Button, Input, Badge, Skeleton,
|
|
195
196
|
};
|
|
196
197
|
|
|
197
198
|
const resolvedProviderBundle = $derived(providerBundle ?? providers);
|
|
@@ -241,31 +242,31 @@
|
|
|
241
242
|
locale = nextLocale;
|
|
242
243
|
}
|
|
243
244
|
|
|
244
|
-
const i18nScope = createI18nScope({
|
|
245
|
+
const i18nScope = createI18nScope(definedOptions({
|
|
245
246
|
locale: untrack(() => locale),
|
|
246
247
|
provider: untrack(() => resolvedI18nProvider),
|
|
247
248
|
onLocaleChange: updateBoundLocale,
|
|
248
|
-
});
|
|
249
|
+
}));
|
|
249
250
|
provideI18nScope(i18nScope);
|
|
250
251
|
const translation = useTranslation();
|
|
251
252
|
|
|
252
253
|
$effect.pre(() => {
|
|
253
254
|
const ownerProvider = resolvedI18nProvider;
|
|
254
255
|
const ownerLocale = locale;
|
|
255
|
-
untrack(() => i18nScope.updateOwner({
|
|
256
|
+
untrack(() => i18nScope.updateOwner(definedOptions({
|
|
256
257
|
locale: ownerLocale,
|
|
257
258
|
provider: ownerProvider,
|
|
258
259
|
onLocaleChange: updateBoundLocale,
|
|
259
|
-
}));
|
|
260
|
+
})));
|
|
260
261
|
});
|
|
261
262
|
|
|
262
263
|
let themeOwner = $state.raw<ReturnType<typeof registerThemeOwner>>(undefined);
|
|
263
264
|
|
|
264
265
|
onMount(() => {
|
|
265
|
-
themeOwner = registerThemeOwner({
|
|
266
|
+
themeOwner = registerThemeOwner(definedOptions({
|
|
266
267
|
defaultTheme,
|
|
267
268
|
themeConfig: userThemeConfig,
|
|
268
|
-
});
|
|
269
|
+
}));
|
|
269
270
|
|
|
270
271
|
return () => {
|
|
271
272
|
unregisterThemeOwner(themeOwner);
|
|
@@ -275,10 +276,10 @@
|
|
|
275
276
|
|
|
276
277
|
$effect(() => {
|
|
277
278
|
const owner = themeOwner;
|
|
278
|
-
const ownerOptions = {
|
|
279
|
+
const ownerOptions = definedOptions({
|
|
279
280
|
defaultTheme,
|
|
280
281
|
themeConfig: userThemeConfig,
|
|
281
|
-
};
|
|
282
|
+
});
|
|
282
283
|
untrack(() => updateThemeOwner(owner, ownerOptions));
|
|
283
284
|
});
|
|
284
285
|
|
|
@@ -286,7 +287,7 @@
|
|
|
286
287
|
setComponentRegistry(mergedComponents);
|
|
287
288
|
}
|
|
288
289
|
|
|
289
|
-
provideAdminContext({
|
|
290
|
+
provideAdminContext(definedReactiveOptions({
|
|
290
291
|
get providerBundle() { return resolvedProviderBundle as ProviderBundle | undefined; },
|
|
291
292
|
get dataProvider() {
|
|
292
293
|
if (!resolvedDataProvider) throw new Error('AdminApp requires a DataProvider.');
|
|
@@ -308,7 +309,7 @@
|
|
|
308
309
|
get routerProvider() { return scopedRouterProvider; },
|
|
309
310
|
get tenantAdapter() { return resolvedTenantAdapter; },
|
|
310
311
|
get tenant() { return tenant; },
|
|
311
|
-
});
|
|
312
|
+
}));
|
|
312
313
|
const adminContext = captureAdminContext();
|
|
313
314
|
|
|
314
315
|
// Context must be available synchronously to descendants during their first render.
|
|
@@ -330,8 +331,8 @@
|
|
|
330
331
|
const resourceNames = $derived(new Set(resources.map((resource) => resource.name)));
|
|
331
332
|
const isStandaloneTwoFactor = $derived(route === '/2fa' || route === '/authentication/branded/2fa');
|
|
332
333
|
const standaloneErrorStatus = $derived.by((): '404' | '500' | undefined => {
|
|
333
|
-
if (route === '/authentication/error-404' || route === '/404' || (route === '/:resource' && params
|
|
334
|
-
if (route === '/authentication/error-500' || route === '/500' || (route === '/:resource' && params
|
|
334
|
+
if (route === '/authentication/error-404' || route === '/404' || (route === '/:resource' && params['resource'] === '404')) return '404';
|
|
335
|
+
if (route === '/authentication/error-500' || route === '/500' || (route === '/:resource' && params['resource'] === '500')) return '500';
|
|
335
336
|
return undefined;
|
|
336
337
|
});
|
|
337
338
|
|
|
@@ -353,22 +354,23 @@
|
|
|
353
354
|
);
|
|
354
355
|
const renderedRoute = $derived(route);
|
|
355
356
|
const renderedParams = $derived(params);
|
|
356
|
-
const
|
|
357
|
-
const
|
|
357
|
+
const renderedResourceName = $derived(renderedParams['resource']);
|
|
358
|
+
const renderedHasRouteResource = $derived(renderedResourceName !== undefined && resourceNames.has(renderedResourceName));
|
|
359
|
+
const renderedResourcePages = $derived(renderedParams['resource'] ? resourcePages?.[renderedParams['resource']] : undefined);
|
|
358
360
|
const documentTitle = $derived.by(() => {
|
|
359
|
-
const resource = renderedParams
|
|
360
|
-
? resources.find((candidate) => candidate.name === renderedParams
|
|
361
|
+
const resource = renderedParams['resource']
|
|
362
|
+
? resources.find((candidate) => candidate.name === renderedParams['resource'])
|
|
361
363
|
: undefined;
|
|
362
364
|
let pageLabel = '';
|
|
363
365
|
|
|
364
366
|
if (resource) {
|
|
365
367
|
pageLabel = resource.label || resource.name;
|
|
366
368
|
} else if (renderedRoute.startsWith('/settings') || renderedRoute === '/account/:tab') {
|
|
367
|
-
const tab = renderedParams
|
|
369
|
+
const tab = renderedParams['tab'] === 'api-keys'
|
|
368
370
|
? 'api'
|
|
369
|
-
: renderedParams
|
|
371
|
+
: renderedParams['tab'] === 'audit-logs'
|
|
370
372
|
? 'audit'
|
|
371
|
-
: renderedParams
|
|
373
|
+
: renderedParams['tab'] ?? 'profile';
|
|
372
374
|
const labels: Record<string, string> = {
|
|
373
375
|
profile: translation.t('settings.profile'),
|
|
374
376
|
appearance: translation.t('settings.appearance'),
|
|
@@ -528,9 +530,9 @@
|
|
|
528
530
|
{:else if route === '/login' && resolvedAuthProvider}
|
|
529
531
|
<LoginPage
|
|
530
532
|
{title}
|
|
531
|
-
defaultIdentifier
|
|
532
|
-
defaultPassword
|
|
533
|
-
loginHint
|
|
533
|
+
{...definedOptions({ "defaultIdentifier": loginDefaults?.identifier })}
|
|
534
|
+
{...definedOptions({ "defaultPassword": loginDefaults?.password })}
|
|
535
|
+
{...definedOptions({ "loginHint": loginDefaults?.hint })}
|
|
534
536
|
onSuccess={() => { isAuthenticated = true; void navigateWithinApp('/'); }}
|
|
535
537
|
/>
|
|
536
538
|
{:else if route === '/register' && resolvedAuthProvider?.register}
|
|
@@ -551,7 +553,7 @@
|
|
|
551
553
|
<ErrorComp status={standaloneErrorStatus} />
|
|
552
554
|
</SystemPageShell>
|
|
553
555
|
{:else if isAuthenticated || !resolvedAuthProvider}
|
|
554
|
-
<Layout {title} {menu} {siteUrl} routeMode={resolvedRouteMode} {aiAssistant}>
|
|
556
|
+
<Layout {title} {...definedOptions({ "menu": menu })} {...definedOptions({ "siteUrl": siteUrl })} routeMode={resolvedRouteMode} {...definedOptions({ "aiAssistant": aiAssistant })}>
|
|
555
557
|
<div class="svadmin-u-d89972fe17d6 svadmin-u-8a7a926578c8" aria-busy={authRechecking}>
|
|
556
558
|
{#if authRechecking}
|
|
557
559
|
<div class="svadmin-u-da4dbfbc4fdc svadmin-u-7b7df0449b80 svadmin-u-236812d64c82 svadmin-u-60fbb7713999 svadmin-u-8a7a926578c8 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-d542b60b5312" role="status" aria-live="polite">
|
|
@@ -561,18 +563,18 @@
|
|
|
561
563
|
</div>
|
|
562
564
|
</div>
|
|
563
565
|
{:else}
|
|
564
|
-
{#key renderedRoute + (renderedParams
|
|
566
|
+
{#key renderedRoute + (renderedParams['resource'] ?? '') + (renderedParams['id'] ?? '') + (renderedParams['variant'] ?? '') + (renderedParams['columns'] ?? '')}
|
|
565
567
|
<div class="svadmin-page-enter">
|
|
566
568
|
{#if renderedRoute === '/public-profile'}
|
|
567
569
|
<LazyPage loader={loadPublicProfilePage} props={{ variant: 'default', initialTab: 'projects' }} />
|
|
568
570
|
{:else if renderedRoute === '/public-profile/projects/:columns'}
|
|
569
|
-
<LazyPage loader={loadPublicProfilePage} props={{ variant: 'default', initialTab: 'projects', columns: renderedParams
|
|
571
|
+
<LazyPage loader={loadPublicProfilePage} props={{ variant: 'default', initialTab: 'projects', columns: renderedParams['columns']?.includes('3') ? 3 : 2 }} />
|
|
570
572
|
{:else if renderedRoute === '/public-profile/activity'}
|
|
571
573
|
<LazyPage loader={loadPublicProfilePage} props={{ variant: 'default', initialTab: 'activity' }} />
|
|
572
574
|
{:else if renderedRoute === '/public-profile/teams'}
|
|
573
575
|
<LazyPage loader={loadPublicProfilePage} props={{ variant: 'default', initialTab: 'teams' }} />
|
|
574
576
|
{:else if renderedRoute === '/public-profile/profiles/:variant'}
|
|
575
|
-
<LazyPage loader={loadPublicProfilePage} props={{ variant: (renderedParams
|
|
577
|
+
<LazyPage loader={loadPublicProfilePage} props={{ variant: (renderedParams['variant'] === 'company' || renderedParams['variant'] === 'gamer' || renderedParams['variant'] === 'default' ? renderedParams['variant'] : 'default') as 'company' | 'gamer' | 'default', showSections: true }} />
|
|
576
578
|
{:else if renderedRoute === '/account/get-started' || renderedRoute === '/account/home/get-started'}
|
|
577
579
|
<LazyPage loader={loadGetStartedPage} props={{}} />
|
|
578
580
|
{:else if renderedRoute === '/account/home/user-profile'}
|
|
@@ -610,39 +612,39 @@
|
|
|
610
612
|
<p class="svadmin-u-bfa603190748">{translation.t('common.dashboardHint')}</p>
|
|
611
613
|
</div>
|
|
612
614
|
{/if}
|
|
613
|
-
{:else if (renderedRoute === '/:resource' || renderedRoute === '/:parent/:parentId/:resource') && renderedHasRouteResource}
|
|
614
|
-
{#key renderedParams
|
|
615
|
+
{:else if (renderedRoute === '/:resource' || renderedRoute === '/:parent/:parentId/:resource') && renderedHasRouteResource && renderedResourceName !== undefined}
|
|
616
|
+
{#key renderedParams['resource']}
|
|
615
617
|
{@const Comp = renderedResourcePages?.list ?? mergedComponents.AutoTable}
|
|
616
|
-
<ResourceAccessGuard resourceName={
|
|
617
|
-
<Comp resourceName={
|
|
618
|
+
<ResourceAccessGuard resourceName={renderedResourceName} action="list">
|
|
619
|
+
<Comp resourceName={renderedResourceName} />
|
|
618
620
|
</ResourceAccessGuard>
|
|
619
621
|
{/key}
|
|
620
|
-
{:else if (renderedRoute === '/:resource/create' || renderedRoute === '/:parent/:parentId/:resource/create') && renderedHasRouteResource}
|
|
621
|
-
{#key renderedParams
|
|
622
|
+
{:else if (renderedRoute === '/:resource/create' || renderedRoute === '/:parent/:parentId/:resource/create') && renderedHasRouteResource && renderedResourceName !== undefined}
|
|
623
|
+
{#key renderedParams['resource']}
|
|
622
624
|
{@const Comp = renderedResourcePages?.create ?? mergedComponents.AutoForm}
|
|
623
|
-
<ResourceAccessGuard resourceName={
|
|
624
|
-
<Comp resourceName={
|
|
625
|
+
<ResourceAccessGuard resourceName={renderedResourceName} action="create">
|
|
626
|
+
<Comp resourceName={renderedResourceName} mode="create" />
|
|
625
627
|
</ResourceAccessGuard>
|
|
626
628
|
{/key}
|
|
627
|
-
{:else if (renderedRoute === '/:resource/edit/:id' || renderedRoute === '/:resource/:id/edit' || renderedRoute === '/:parent/:parentId/:resource/edit/:id') && renderedHasRouteResource}
|
|
628
|
-
{#key `${renderedParams
|
|
629
|
+
{:else if (renderedRoute === '/:resource/edit/:id' || renderedRoute === '/:resource/:id/edit' || renderedRoute === '/:parent/:parentId/:resource/edit/:id') && renderedHasRouteResource && renderedResourceName !== undefined && renderedParams['id'] !== undefined}
|
|
630
|
+
{#key `${renderedParams['resource']}-${renderedParams['id']}`}
|
|
629
631
|
{@const Comp = renderedResourcePages?.edit ?? mergedComponents.AutoForm}
|
|
630
|
-
<ResourceAccessGuard resourceName={
|
|
631
|
-
<Comp resourceName={
|
|
632
|
+
<ResourceAccessGuard resourceName={renderedResourceName} action="edit" {...definedOptions({ "id": renderedParams['id'] })}>
|
|
633
|
+
<Comp resourceName={renderedResourceName} mode="edit" {...definedOptions({ "id": renderedParams['id'] })} />
|
|
632
634
|
</ResourceAccessGuard>
|
|
633
635
|
{/key}
|
|
634
|
-
{:else if (renderedRoute === '/:resource/show/:id' || renderedRoute === '/:resource/:id' || renderedRoute === '/:parent/:parentId/:resource/show/:id') && renderedHasRouteResource}
|
|
635
|
-
{#key `${renderedParams
|
|
636
|
+
{:else if (renderedRoute === '/:resource/show/:id' || renderedRoute === '/:resource/:id' || renderedRoute === '/:parent/:parentId/:resource/show/:id') && renderedHasRouteResource && renderedResourceName !== undefined && renderedParams['id'] !== undefined}
|
|
637
|
+
{#key `${renderedParams['resource']}-${renderedParams['id']}`}
|
|
636
638
|
{@const Comp = renderedResourcePages?.show ?? mergedComponents.ShowPage}
|
|
637
|
-
<ResourceAccessGuard resourceName={
|
|
638
|
-
<Comp resourceName={
|
|
639
|
+
<ResourceAccessGuard resourceName={renderedResourceName} action="show" {...definedOptions({ "id": renderedParams['id'] })}>
|
|
640
|
+
<Comp resourceName={renderedResourceName} id={renderedParams['id']} />
|
|
639
641
|
</ResourceAccessGuard>
|
|
640
642
|
{/key}
|
|
641
|
-
{:else if (renderedRoute === '/:resource/clone/:id' || renderedRoute === '/:parent/:parentId/:resource/clone/:id') && renderedHasRouteResource}
|
|
642
|
-
{#key `${renderedParams
|
|
643
|
+
{:else if (renderedRoute === '/:resource/clone/:id' || renderedRoute === '/:parent/:parentId/:resource/clone/:id') && renderedHasRouteResource && renderedResourceName !== undefined && renderedParams['id'] !== undefined}
|
|
644
|
+
{#key `${renderedParams['resource']}-clone-${renderedParams['id']}`}
|
|
643
645
|
{@const Comp = renderedResourcePages?.clone ?? mergedComponents.AutoForm}
|
|
644
|
-
<ResourceAccessGuard resourceName={
|
|
645
|
-
<Comp resourceName={
|
|
646
|
+
<ResourceAccessGuard resourceName={renderedResourceName} action="create" {...definedOptions({ "id": renderedParams['id'] })} requireSourceRead>
|
|
647
|
+
<Comp resourceName={renderedResourceName} mode="clone" {...definedOptions({ "id": renderedParams['id'] })} />
|
|
646
648
|
</ResourceAccessGuard>
|
|
647
649
|
{/key}
|
|
648
650
|
{:else}
|
|
@@ -29,8 +29,8 @@ interface Props {
|
|
|
29
29
|
/** Request/tree-scoped tenant. Tenant identifiers are never rendered by DevTools. */
|
|
30
30
|
tenant?: TenantContext;
|
|
31
31
|
resources: ResourceDefinition[];
|
|
32
|
-
/**
|
|
33
|
-
locale?: string;
|
|
32
|
+
/** Undefined releases the bound locale to provider/browser detection (English during SSR). */
|
|
33
|
+
locale?: string | undefined;
|
|
34
34
|
/** Optional tree-local translation provider. */
|
|
35
35
|
i18nProvider?: I18nProvider;
|
|
36
36
|
title?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import { definedOptions } from '@svadmin/core/options';
|
|
2
3
|
import { captureAdminContext, notifyWithProvider, type ApiCredentialSummary, type WebhookSummary } from '@svadmin/core';
|
|
3
4
|
import { useTranslation } from '@svadmin/core/i18n';
|
|
4
5
|
import { Check, Copy, Plus, ShieldCheck, Trash2 } from '@lucide/svelte';
|
|
@@ -169,7 +170,24 @@
|
|
|
169
170
|
{#snippet primary()}
|
|
170
171
|
<div class="svadmin-u-b3542e058833">
|
|
171
172
|
<SettingsGroup title={i18n.t('api.activeKeysTitle')} description={i18n.t('api.activeKeysDesc')} bodyClass="p-0">
|
|
172
|
-
{#if loading}
|
|
173
|
+
{#if loading}
|
|
174
|
+
<DataState state="loading" />
|
|
175
|
+
{:else if error}
|
|
176
|
+
<DataState state="error" description={error} retry={loadCredentials} />
|
|
177
|
+
{:else}
|
|
178
|
+
<ApiKeyList
|
|
179
|
+
class="svadmin-u-0c5e9137c7de svadmin-u-119b2aa0b8f6"
|
|
180
|
+
keys={keys.map((key) => definedOptions({
|
|
181
|
+
id: key.id, name: key.name, prefix: key.prefix,
|
|
182
|
+
createdAt: new Date(key.createdAt).toLocaleString(),
|
|
183
|
+
lastUsedAt: key.lastUsedAt ? new Date(key.lastUsedAt).toLocaleString() : undefined,
|
|
184
|
+
permissions: key.permissions,
|
|
185
|
+
}))}
|
|
186
|
+
stateTitle={i18n.t('api.noKeys')}
|
|
187
|
+
stateDescription={credentialProvider ? i18n.t('api.generateDesc') : (isZh ? '配置 CredentialProvider 后可管理真实凭据。' : 'Configure CredentialProvider to manage real credentials.')}
|
|
188
|
+
{...definedOptions({ onrevoke: credentialProvider ? (key: { id: string }) => revokeKey(key.id) : undefined })}
|
|
189
|
+
/>
|
|
190
|
+
{/if}
|
|
173
191
|
</SettingsGroup>
|
|
174
192
|
<SettingsGroup title={i18n.t('api.webhooks')} description={i18n.t('api.webhooksDesc')} bodyClass="space-y-5">
|
|
175
193
|
<form class="svadmin-u-f3c543ad5fe9 svadmin-u-7e0b7cdf1a94 svadmin-u-0c3bc98565dd svadmin-u-e4d6f343b9ff" onsubmit={handleAddWebhook}><div class="svadmin-u-6f7e013d6499"><Label for="webhook-name">{i18n.t('api.webhookName')}</Label><Input id="webhook-name" bind:value={newWebhookName} placeholder="Order Events" disabled={!credentialProvider || submitting} /></div><div class="svadmin-u-6f7e013d6499 svadmin-u-eea04c60c0ca"><Label for="webhook-url">{i18n.t('api.webhookUrl')}</Label><Input id="webhook-url" type="url" bind:value={newWebhookUrl} placeholder="https://api.example.com/hooks" disabled={!credentialProvider || submitting} /></div><div class="svadmin-u-6f7e013d6499"><Label for="webhook-event">{i18n.t('api.eventType')}</Label><select id="webhook-event" bind:value={newWebhookEvent} disabled={!credentialProvider || submitting} class="svadmin-u-60fbb7713999 svadmin-u-e7a768f922d2 svadmin-u-6da6a3c3f741 svadmin-u-421ac2be5045 svadmin-u-ca6bcd4b6f3f svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-0e17f2bd9074 svadmin-u-03b4dd7f172b svadmin-u-fc7473ca09eb svadmin-u-582e6ef4b245 svadmin-u-55d048ebfb1c svadmin-u-608dd26cd5ba svadmin-u-80b9d0ae125f svadmin-u-6b22a22a9752 svadmin-u-b29d8adbad2e"><option value="resource.created">resource.created</option><option value="resource.updated">resource.updated</option><option value="resource.deleted">resource.deleted</option><option value="auth.login">auth.login</option></select></div><div class="svadmin-u-60fbb7713999 svadmin-u-6f27f4f79e55"><Button type="submit" class="svadmin-u-6da6a3c3f741" disabled={!credentialProvider || submitting || !newWebhookName.trim() || !newWebhookUrl.trim()}><Plus class="svadmin-u-f7b5fa971871" />{i18n.t('api.addWebhook')}</Button></div></form>
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import {
|
|
2
|
+
import { definedOptions } from '@svadmin/core/options';
|
|
3
|
+
|
|
4
|
+
import { captureAdminContext, useTranslation, withValidatedAuditProvider } from '@svadmin/core';
|
|
3
5
|
|
|
4
6
|
import type { AuditEntry, AuditLogProvider } from '@svadmin/core';
|
|
5
7
|
import * as Sheet from './ui/sheet/index.js';
|
|
@@ -16,6 +18,7 @@
|
|
|
16
18
|
|
|
17
19
|
let logs = $state<AuditEntry[]>([]);
|
|
18
20
|
let isLoading = $state(false);
|
|
21
|
+
let loadFailed = $state(false);
|
|
19
22
|
let requestEpoch = 0;
|
|
20
23
|
|
|
21
24
|
$effect(() => {
|
|
@@ -44,6 +47,7 @@
|
|
|
44
47
|
cancelAuditRequest();
|
|
45
48
|
logs = [];
|
|
46
49
|
isLoading = false;
|
|
50
|
+
loadFailed = false;
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
async function loadAuditLogs(
|
|
@@ -54,10 +58,15 @@
|
|
|
54
58
|
const epoch = requestEpoch;
|
|
55
59
|
isLoading = true;
|
|
56
60
|
try {
|
|
57
|
-
const entries = await scopedProvider.get(
|
|
61
|
+
const entries = await withValidatedAuditProvider(scopedProvider).get(
|
|
62
|
+
definedOptions({ resource: scopedResource, meta: providerMeta }),
|
|
63
|
+
);
|
|
58
64
|
if (epoch === requestEpoch) logs = entries;
|
|
59
65
|
} catch (error) {
|
|
60
|
-
if (epoch === requestEpoch)
|
|
66
|
+
if (epoch === requestEpoch) {
|
|
67
|
+
loadFailed = true;
|
|
68
|
+
console.error('[svadmin] Failed to fetch audit logs', error);
|
|
69
|
+
}
|
|
61
70
|
} finally {
|
|
62
71
|
if (epoch === requestEpoch) isLoading = false;
|
|
63
72
|
}
|
|
@@ -91,6 +100,8 @@
|
|
|
91
100
|
<div class="svadmin-u-60fbb7713999 svadmin-u-86843cf1e227 svadmin-u-a1f611f027dd svadmin-u-bfa603190748">
|
|
92
101
|
<Loader2 class="svadmin-u-f6fe902450dc svadmin-u-7ec10f86d9b1 svadmin-u-afbdd13a380e" />
|
|
93
102
|
</div>
|
|
103
|
+
{:else if loadFailed}
|
|
104
|
+
<p role="alert">{i18n.t('common.error')}</p>
|
|
94
105
|
{:else if logs.length === 0}
|
|
95
106
|
<div class="svadmin-u-ca6bf63030aa svadmin-u-1100bef66e60">
|
|
96
107
|
<History class="svadmin-u-ed8a5df7b2fb svadmin-u-2bbcfc3b5179 svadmin-u-0e12dc7de920 svadmin-u-106b502aac96 svadmin-u-1bb883263ed2" />
|