@svadmin/ui 0.68.0 → 0.69.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 +52 -0
- package/dist/app.css +7627 -853
- package/dist/app.theme.css +7676 -850
- package/dist/components/AboutSettings.svelte +8 -8
- package/dist/components/ActivityFeed.svelte +25 -40
- package/dist/components/AdminApp.svelte +14 -14
- package/dist/components/AnomalyBadge.svelte +6 -5
- package/dist/components/ApiSettings.svelte +8 -8
- package/dist/components/AppearanceSettings.svelte +13 -13
- package/dist/components/ApprovalActionCard.svelte +35 -35
- package/dist/components/AuditLogDrawer.svelte +17 -17
- package/dist/components/AuditLogViewer.svelte +42 -42
- package/dist/components/AuthPageShell.svelte +11 -11
- package/dist/components/AutoForm.svelte +28 -28
- package/dist/components/AutoSaveIndicator.svelte +8 -8
- package/dist/components/AutoTable.svelte +141 -141
- package/dist/components/BatchActionBar.svelte +15 -15
- package/dist/components/Breadcrumbs.svelte +4 -4
- package/dist/components/CancelTaskButton.svelte +2 -2
- package/dist/components/CanvasAnnotation.svelte +27 -27
- package/dist/components/Cascader.svelte +20 -20
- package/dist/components/CatchAllNavigate.svelte +2 -2
- package/dist/components/ColumnHeaderFilter.svelte +21 -21
- package/dist/components/ColumnSettings.svelte +20 -20
- package/dist/components/ComboboxField.svelte +17 -17
- package/dist/components/CommandPalette.svelte +23 -23
- package/dist/components/ConfigErrorScreen.svelte +27 -27
- package/dist/components/ConfirmDialog.svelte +1 -1
- package/dist/components/CreateInferencer.svelte +1 -1
- package/dist/components/CreatePage.svelte +1 -1
- package/dist/components/DecisionTable.svelte +39 -39
- package/dist/components/DetailDrawer.svelte +9 -9
- package/dist/components/DevTools.svelte +96 -96
- package/dist/components/DraggableGrid.svelte +6 -6
- package/dist/components/DraggableHeader.svelte +1 -1
- package/dist/components/DraggableRowTable.svelte +13 -13
- package/dist/components/DrawerForm.svelte +10 -10
- package/dist/components/DynamicFormList.svelte +19 -19
- package/dist/components/EditInferencer.svelte +3 -3
- package/dist/components/EditInferencer.svelte.d.ts +1 -1
- package/dist/components/EditPage.svelte +1 -1
- package/dist/components/EditableTable.svelte +30 -30
- package/dist/components/EmptyState.svelte +6 -6
- package/dist/components/ErrorBoundary.svelte +8 -8
- package/dist/components/ErrorComponent.svelte +5 -5
- package/dist/components/FieldRenderer.svelte +30 -30
- package/dist/components/FilterBuilder.svelte +31 -31
- package/dist/components/FilterDropdown.svelte +26 -26
- package/dist/components/ForgotPasswordPage.svelte +14 -14
- package/dist/components/GanttChart.svelte +30 -30
- package/dist/components/Header.svelte +13 -13
- package/dist/components/ImageCropper.svelte +21 -21
- package/dist/components/ImportWizard.svelte +49 -49
- package/dist/components/InferencerPanel.svelte +35 -35
- package/dist/components/InfiniteList.svelte +8 -8
- package/dist/components/InlineEdit.svelte +5 -5
- package/dist/components/IntegrationsSettings.svelte +5 -5
- package/dist/components/JsonSchemaForm.svelte +18 -18
- package/dist/components/KanbanBoard.svelte +30 -30
- package/dist/components/KeyboardShortcuts.svelte +8 -8
- package/dist/components/Layout.svelte +22 -22
- package/dist/components/LazyPage.svelte +4 -4
- package/dist/components/ListInferencer.svelte +2 -2
- package/dist/components/ListPage.svelte +1 -1
- package/dist/components/LiveIndicator.svelte +11 -11
- package/dist/components/LoginPage.svelte +27 -27
- package/dist/components/MasterDetailView.svelte +24 -24
- package/dist/components/MediaLibraryModal.svelte +37 -37
- package/dist/components/MentionsInput.svelte +11 -11
- package/dist/components/MetricStrip.svelte +18 -58
- package/dist/components/ModalForm.svelte +8 -8
- package/dist/components/MultiTabKeepAlive.svelte +14 -14
- package/dist/components/NavigateToResource.svelte +3 -3
- package/dist/components/NotificationsSettings.svelte +4 -4
- package/dist/components/OfflineSyncBanner.svelte +28 -28
- package/dist/components/PageHeader.svelte +12 -13
- package/dist/components/PageSkeleton.svelte +26 -26
- package/dist/components/PasswordInput.svelte +11 -11
- package/dist/components/PdfDocumentViewer.svelte +45 -45
- package/dist/components/PermissionMatrix.svelte +48 -48
- package/dist/components/PivotTable.svelte +21 -21
- package/dist/components/PresenceAvatarGroup.svelte +11 -11
- package/dist/components/PrintableBill.svelte +43 -43
- package/dist/components/ProfilePage.svelte +34 -34
- package/dist/components/RecordDetailDrawer.svelte +15 -15
- package/dist/components/RegisterPage.svelte +9 -9
- package/dist/components/ResourceInferencer.svelte +3 -3
- package/dist/components/ResourceOperationsPage.svelte +44 -44
- package/dist/components/RetryTaskButton.svelte +2 -2
- package/dist/components/RolesSettings.svelte +4 -4
- package/dist/components/RowActions.svelte +10 -10
- package/dist/components/SecuritySettings.svelte +8 -8
- package/dist/components/SensitiveDataMask.svelte +8 -8
- package/dist/components/SettingsPage.svelte +17 -17
- package/dist/components/ShowInferencer.svelte +3 -3
- package/dist/components/ShowInferencer.svelte.d.ts +1 -1
- package/dist/components/ShowPage.svelte +24 -24
- package/dist/components/Sidebar.svelte +63 -63
- package/dist/components/SidebarItem.svelte +35 -35
- package/dist/components/SignaturePad.svelte +16 -16
- package/dist/components/SplitPaneLayout.svelte +10 -10
- package/dist/components/SpreadsheetView.svelte +35 -35
- package/dist/components/StatsCard.svelte +12 -25
- package/dist/components/StepForm.svelte +23 -23
- package/dist/components/StepsForm.svelte +17 -17
- package/dist/components/SvadminLogo.svelte +1 -1
- package/dist/components/SystemPageShell.svelte +6 -6
- package/dist/components/TableSummary.svelte +8 -8
- package/dist/components/TaskDetails.svelte +29 -29
- package/dist/components/TaskList.svelte +17 -17
- package/dist/components/TaskProgressBar.svelte +4 -4
- package/dist/components/TaskQueueDrawer.svelte +44 -44
- package/dist/components/TaskStatusBadge.svelte +5 -5
- package/dist/components/TenantSwitcher.svelte +17 -17
- package/dist/components/ThemedTitle.svelte +4 -4
- package/dist/components/Toast.svelte +2 -2
- package/dist/components/Transfer.svelte +40 -40
- package/dist/components/TreeSelect.svelte +32 -32
- package/dist/components/TreeTable.svelte +28 -28
- package/dist/components/TwoFactorAuthPage.svelte +15 -15
- package/dist/components/UndoableNotification.svelte +10 -10
- package/dist/components/UpdatePasswordPage.svelte +6 -6
- package/dist/components/VersionDiffViewer.svelte +38 -38
- package/dist/components/VirtualTable.svelte +9 -9
- package/dist/components/Watermark.svelte +2 -2
- package/dist/components/account/CompanyProfilePage.svelte +4 -4
- package/dist/components/account/GetStartedPage.svelte +19 -19
- package/dist/components/account/ImportMembersPage.svelte +42 -42
- package/dist/components/account/MembersStarterPage.svelte +18 -18
- package/dist/components/account/SecurityLogPage.svelte +1 -1
- package/dist/components/account/SettingsEnterprisePage.svelte +7 -7
- package/dist/components/account/SettingsPlainPage.svelte +3 -3
- package/dist/components/account/SettingsSidebarPage.svelte +5 -5
- package/dist/components/account/TeamMembersPage.svelte +2 -2
- package/dist/components/account/UserProfilePage.svelte +3 -3
- package/dist/components/buttons/CloneButton.svelte +2 -2
- package/dist/components/buttons/CreateButton.svelte +2 -2
- package/dist/components/buttons/DeleteButton.svelte +4 -4
- package/dist/components/buttons/EditButton.svelte +2 -2
- package/dist/components/buttons/ExportButton.svelte +2 -2
- package/dist/components/buttons/ImportButton.svelte +3 -3
- package/dist/components/buttons/ListButton.svelte +2 -2
- package/dist/components/buttons/RefreshButton.svelte +2 -2
- package/dist/components/buttons/SaveButton.svelte +3 -3
- package/dist/components/buttons/ShowButton.svelte +2 -2
- package/dist/components/charts/BarChart.svelte +3 -3
- package/dist/components/charts/LineChart.svelte +3 -3
- package/dist/components/charts/PieChart.svelte +7 -7
- package/dist/components/content/ApiKeyList.svelte +12 -12
- package/dist/components/content/AuditTimeline.svelte +18 -18
- package/dist/components/content/ContentPageHeader.svelte +9 -9
- package/dist/components/content/ContentPageShell.svelte +2 -2
- package/dist/components/content/DataState.svelte +8 -8
- package/dist/components/content/DescriptionList.svelte +25 -25
- package/dist/components/content/FeedbackNotice.svelte +11 -11
- package/dist/components/content/FileList.svelte +2 -2
- package/dist/components/content/FilterToolbar.svelte +15 -15
- package/dist/components/content/ImportDropzone.svelte +6 -6
- package/dist/components/content/IntegrationCard.svelte +4 -4
- package/dist/components/content/MediaThumbnail.svelte +16 -16
- package/dist/components/content/MemberList.svelte +2 -2
- package/dist/components/content/MetricBlock.svelte +7 -7
- package/dist/components/content/NetworkTable.svelte +1 -1
- package/dist/components/content/NetworkUserCard.svelte +12 -12
- package/dist/components/content/OtpInput.svelte +2 -2
- package/dist/components/content/PageToolbar.svelte +3 -3
- package/dist/components/content/ProjectCard.svelte +11 -11
- package/dist/components/content/SectionHeader.svelte +5 -5
- package/dist/components/content/SecurityEventTable.svelte +2 -2
- package/dist/components/content/SettingsFieldRow.svelte +5 -5
- package/dist/components/content/SettingsGroup.svelte +7 -7
- package/dist/components/content/StatusBadge.svelte +6 -6
- package/dist/components/content/StatusTabs.svelte +28 -28
- package/dist/components/content/SystemErrorState.svelte +2 -2
- package/dist/components/content/TeamCard.svelte +6 -6
- package/dist/components/content/TwoFactorStepper.svelte +3 -3
- package/dist/components/content/WorkspaceActionBar.svelte +12 -12
- package/dist/components/content/WorkspaceInspector.svelte +11 -11
- package/dist/components/content/WorkspaceLayout.svelte +5 -5
- package/dist/components/content/WorkspaceSplitPane.svelte +4 -4
- package/dist/components/content/WorkspaceStageStepper.svelte +16 -16
- package/dist/components/content/WorkspaceTabBar.svelte +16 -16
- package/dist/components/fields/ArrayField.svelte +12 -12
- package/dist/components/fields/AvatarField.svelte +15 -15
- package/dist/components/fields/BooleanField.svelte +14 -14
- package/dist/components/fields/CodeField.svelte +10 -10
- package/dist/components/fields/CopyField.svelte +6 -6
- package/dist/components/fields/CurrencyField.svelte +6 -6
- package/dist/components/fields/DateField.svelte +1 -1
- package/dist/components/fields/DateRangeField.svelte +2 -2
- package/dist/components/fields/EmailField.svelte +2 -2
- package/dist/components/fields/FileField.svelte +3 -3
- package/dist/components/fields/ImageField.svelte +1 -1
- package/dist/components/fields/JsonField.svelte +11 -11
- package/dist/components/fields/MarkdownField.svelte +2 -2
- package/dist/components/fields/MultiSelectField.svelte +3 -3
- package/dist/components/fields/NumberField.svelte +1 -1
- package/dist/components/fields/PercentField.svelte +9 -9
- package/dist/components/fields/PhoneField.svelte +8 -8
- package/dist/components/fields/RatingField.svelte +10 -10
- package/dist/components/fields/RelationField.svelte +3 -3
- package/dist/components/fields/RichTextField.svelte +4 -4
- package/dist/components/fields/TagField.svelte +11 -11
- package/dist/components/fields/TextField.svelte +2 -2
- package/dist/components/fields/UrlField.svelte +3 -3
- package/dist/components/network/TeamCrewTablePage.svelte +2 -2
- package/dist/components/network/UserCardsNFTPage.svelte +1 -1
- package/dist/components/profile/ActivityTimeline.svelte +8 -8
- package/dist/components/profile/ProfileCard.svelte +47 -47
- package/dist/components/profile/ProfileVariantSections.svelte +158 -158
- package/dist/components/profile/ProjectsGrid.svelte +6 -6
- package/dist/components/profile/PublicProfilePage.svelte +6 -6
- package/dist/components/profile/TeamsShowcase.svelte +3 -3
- package/dist/components/ui/alert/alert-description.svelte +1 -1
- package/dist/components/ui/alert/alert-title.svelte +1 -1
- package/dist/components/ui/alert/alert-variants.d.ts +7 -0
- package/dist/components/ui/alert/alert-variants.js +2 -0
- package/dist/components/ui/alert/alert.svelte +4 -15
- package/dist/components/ui/alert/alert.svelte.d.ts +7 -24
- package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +2 -2
- package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +1 -1
- package/dist/components/ui/avatar/avatar-variants.d.ts +7 -0
- package/dist/components/ui/avatar/avatar-variants.js +2 -0
- package/dist/components/ui/avatar/avatar.svelte +11 -20
- package/dist/components/ui/avatar/avatar.svelte.d.ts +12 -28
- package/dist/components/ui/badge/badge-variants.d.ts +7 -0
- package/dist/components/ui/badge/badge-variants.js +2 -0
- package/dist/components/ui/badge/badge.svelte +4 -24
- package/dist/components/ui/badge/badge.svelte.d.ts +7 -45
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +3 -3
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb-link.svelte +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +2 -2
- package/dist/components/ui/button/button-variants.d.ts +9 -0
- package/dist/components/ui/button/button-variants.js +3 -0
- package/dist/components/ui/button/button.svelte +12 -31
- package/dist/components/ui/button/button.svelte.d.ts +9 -61
- package/dist/components/ui/card/card-action.svelte +1 -4
- package/dist/components/ui/card/card-content.svelte +1 -1
- package/dist/components/ui/card/card-description.svelte +1 -1
- package/dist/components/ui/card/card-footer.svelte +1 -1
- package/dist/components/ui/card/card-header.svelte +1 -4
- package/dist/components/ui/card/card-title.svelte +1 -1
- package/dist/components/ui/card/card.svelte +1 -1
- package/dist/components/ui/checkbox/checkbox.svelte +2 -5
- package/dist/components/ui/command/command-dialog.svelte +3 -3
- package/dist/components/ui/command/command-empty.svelte +1 -1
- package/dist/components/ui/command/command-group.svelte +2 -2
- package/dist/components/ui/command/command-input.svelte +1 -4
- package/dist/components/ui/command/command-item.svelte +1 -4
- package/dist/components/ui/command/command-list.svelte +1 -1
- package/dist/components/ui/command/command-separator.svelte +1 -1
- package/dist/components/ui/command/command.svelte +1 -4
- package/dist/components/ui/dialog/dialog-content.svelte +3 -3
- package/dist/components/ui/dialog/dialog-description.svelte +1 -1
- package/dist/components/ui/dialog/dialog-footer.svelte +1 -1
- package/dist/components/ui/dialog/dialog-header.svelte +1 -1
- package/dist/components/ui/dialog/dialog-overlay.svelte +1 -1
- package/dist/components/ui/dialog/dialog-title.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +2 -5
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +1 -6
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +3 -9
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +1 -1
- package/dist/components/ui/input/input.svelte +3 -2
- package/dist/components/ui/label/label.svelte +1 -4
- package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +1 -5
- package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +2 -5
- package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +1 -4
- package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +2 -5
- package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +2 -5
- package/dist/components/ui/navigation-menu/navigation-menu.svelte +1 -1
- package/dist/components/ui/pagination/pagination-content.svelte +1 -1
- package/dist/components/ui/pagination/pagination-ellipsis.svelte +3 -3
- package/dist/components/ui/pagination/pagination-link.svelte +3 -0
- package/dist/components/ui/pagination/pagination-next.svelte +5 -2
- package/dist/components/ui/pagination/pagination-previous.svelte +5 -2
- package/dist/components/ui/pagination/pagination.svelte +1 -1
- package/dist/components/ui/popover/popover-content.svelte +1 -4
- package/dist/components/ui/progress/progress.svelte +2 -2
- package/dist/components/ui/scroll-area/scroll-area.svelte +3 -4
- package/dist/components/ui/select/select.svelte +1 -2
- package/dist/components/ui/separator/separator.svelte +1 -6
- package/dist/components/ui/sheet/sheet-content.svelte +1 -4
- package/dist/components/ui/sheet/sheet-description.svelte +1 -1
- package/dist/components/ui/sheet/sheet-footer.svelte +1 -1
- package/dist/components/ui/sheet/sheet-header.svelte +1 -1
- package/dist/components/ui/sheet/sheet-title.svelte +1 -1
- package/dist/components/ui/sheet/sheet.svelte +5 -10
- package/dist/components/ui/skeleton/skeleton.svelte +1 -1
- package/dist/components/ui/switch/switch.svelte +2 -9
- package/dist/components/ui/table/table-caption.svelte +1 -1
- package/dist/components/ui/table/table-cell.svelte +8 -11
- package/dist/components/ui/table/table-footer.svelte +1 -1
- package/dist/components/ui/table/table-head.svelte +1 -11
- package/dist/components/ui/table/table-header.svelte +1 -1
- package/dist/components/ui/table/table-row.svelte +2 -2
- package/dist/components/ui/table/table-row.svelte.d.ts +1 -1
- package/dist/components/ui/table/table.svelte +2 -2
- package/dist/components/ui/tabs/tabs-content.svelte +1 -1
- package/dist/components/ui/tabs/tabs-list.svelte +1 -4
- package/dist/components/ui/tabs/tabs-trigger.svelte +1 -7
- package/dist/components/ui/tabs/tabs.svelte +1 -1
- package/dist/components/ui/textarea/textarea.svelte +1 -4
- package/dist/components/ui/tooltip/tooltip-content.svelte +1 -1
- package/dist/page-chrome.css +228 -0
- package/package.json +14 -9
|
@@ -54,76 +54,76 @@
|
|
|
54
54
|
});
|
|
55
55
|
</script>
|
|
56
56
|
|
|
57
|
-
<div class="
|
|
57
|
+
<div class="svadmin-u-668b21aa5409 svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-f46b61a9b310">
|
|
58
58
|
<!-- Header Title -->
|
|
59
|
-
<div class="
|
|
59
|
+
<div class="svadmin-u-b6777c6db914 svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-1004c0c3954c svadmin-u-020ba687fa12 svadmin-u-64cac80d2e9a svadmin-u-3b9871a0bf93">
|
|
60
60
|
<div>
|
|
61
|
-
<h1 class="
|
|
62
|
-
<Shield class="
|
|
61
|
+
<h1 class="svadmin-u-3febee094e85 svadmin-u-69450ef1487e svadmin-u-d4108abe6359 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4">
|
|
62
|
+
<Shield class="svadmin-u-7ec10f86d9b1 svadmin-u-f6fe902450dc svadmin-u-20aaf08a7ed1" />
|
|
63
63
|
{i18n.t('permissions.title') || 'Permission Matrix'}
|
|
64
64
|
</h1>
|
|
65
|
-
<p class="
|
|
65
|
+
<p class="svadmin-u-bfa603190748 svadmin-u-b6b02c0ebef6 svadmin-u-fc7473ca09eb">{i18n.t('permissions.description') || 'Configure authorization rules for system modules and roles.'}</p>
|
|
66
66
|
</div>
|
|
67
67
|
|
|
68
68
|
<!-- Toast Feedback -->
|
|
69
69
|
{#if message}
|
|
70
|
-
<div class={`
|
|
70
|
+
<div class={`svadmin-u-f0faeb26d656 svadmin-u-03b4dd7f172b svadmin-u-5f22e64f2282 svadmin-u-fc7473ca09eb svadmin-u-2689f3958069 svadmin-u-438b2237b8d6 svadmin-u-0fe7d7d814d0 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 ${messageType === 'success' ? 'svadmin-u-17a9f7af2265 svadmin-u-76747e5e02ff svadmin-u-3daca9af0861 svadmin-u-be62e835b692' : 'svadmin-u-43928fcc832f svadmin-u-811148b13d1e svadmin-u-3daca9af0861 svadmin-u-5b92fd698365'}`}>
|
|
71
71
|
{#if messageType === 'success'}
|
|
72
|
-
<Check class="
|
|
72
|
+
<Check class="svadmin-u-dc7972ebf3f3 svadmin-u-11e59c6d5f6b" />
|
|
73
73
|
{:else}
|
|
74
|
-
<AlertCircle class="
|
|
74
|
+
<AlertCircle class="svadmin-u-dc7972ebf3f3 svadmin-u-11e59c6d5f6b" />
|
|
75
75
|
{/if}
|
|
76
76
|
{message}
|
|
77
77
|
</div>
|
|
78
78
|
{/if}
|
|
79
79
|
</div>
|
|
80
80
|
|
|
81
|
-
<div class="
|
|
82
|
-
<div class="
|
|
83
|
-
<label for="permission-role-select" class="
|
|
84
|
-
<select id="permission-role-select" bind:value={selectedRole} class="
|
|
81
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-2adea12c41f3 svadmin-u-0d304f904cb0 svadmin-u-36e579c0b41c svadmin-u-243d62579c55">
|
|
82
|
+
<div class="svadmin-u-6da6a3c3f741 svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-8e63407b5ceb svadmin-u-438b2237b8d6 svadmin-u-a327049cac5b">
|
|
83
|
+
<label for="permission-role-select" class="svadmin-u-a77ed4d908c0 svadmin-u-0214b4b355d1 svadmin-u-fc7473ca09eb svadmin-u-2689f3958069 svadmin-u-d4108abe6359">{i18n.t('permissions.roles') || 'Roles'}</label>
|
|
84
|
+
<select id="permission-role-select" bind:value={selectedRole} class="svadmin-u-e7a768f922d2 svadmin-u-6da6a3c3f741 svadmin-u-421ac2be5045 svadmin-u-ca6bcd4b6f3f svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-0e17f2bd9074 svadmin-u-fc7473ca09eb svadmin-u-582e6ef4b245 svadmin-u-55d048ebfb1c svadmin-u-608dd26cd5ba svadmin-u-80b9d0ae125f svadmin-u-6b22a22a9752" disabled={roles.length === 0}>
|
|
85
85
|
{#each roles as role (role.code)}<option value={role.code}>{role.name}</option>{/each}
|
|
86
86
|
</select>
|
|
87
|
-
{#if roles.length === 0}<p class="
|
|
88
|
-
{#if sidebarExtra}<div class="
|
|
87
|
+
{#if roles.length === 0}<p class="svadmin-u-50d0d216a2f8 svadmin-u-fc7473ca09eb svadmin-u-bfa603190748">{i18n.t('permissions.noRoles') || 'No roles available'}</p>{/if}
|
|
88
|
+
{#if sidebarExtra}<div class="svadmin-u-0ab8667228fd svadmin-u-b950dda299d3 svadmin-u-18049387f0af svadmin-u-173fa8f06789">{@render sidebarExtra()}</div>{/if}
|
|
89
89
|
</div>
|
|
90
90
|
|
|
91
91
|
<!-- Left: Role Selector Sidebar -->
|
|
92
|
-
<div class="
|
|
93
|
-
<h2 class="
|
|
94
|
-
<div class="
|
|
92
|
+
<div class="svadmin-u-99d72c7fc3e2 svadmin-u-6da6a3c3f741 svadmin-u-2074a75bf2e7 svadmin-u-8dddea0773ed svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-8e63407b5ceb svadmin-u-438b2237b8d6 svadmin-u-3eb153dc198f svadmin-u-c9c45f3d5d06">
|
|
93
|
+
<h2 class="svadmin-u-da019856f2cc svadmin-u-d5eab218aa34 svadmin-u-fc7473ca09eb svadmin-u-e83a7042bc91 svadmin-u-bfa603190748">{i18n.t('permissions.roles') || 'Roles'}</h2>
|
|
94
|
+
<div class="svadmin-u-da7c36cd8867 svadmin-u-36e579c0b41c svadmin-u-92bf82f493b1">
|
|
95
95
|
{#each roles as role, _i (_i)}
|
|
96
96
|
<button
|
|
97
97
|
onclick={() => selectedRole = role.code}
|
|
98
|
-
class="
|
|
98
|
+
class="svadmin-u-6da6a3c3f741 svadmin-u-2eba0d65d059 svadmin-u-0e17f2bd9074 svadmin-u-e7ee55ac7ffe svadmin-u-5f22e64f2282 svadmin-u-fc7473ca09eb svadmin-u-0fe7d7d814d0 svadmin-u-625a4c3fbeb2 {selectedRole === role.code ? 'svadmin-u-375dc44df6e9 svadmin-u-20aaf08a7ed1 svadmin-u-2689f3958069 svadmin-u-438b2237b8d6 svadmin-u-3daca9af0861 svadmin-u-2b6f77ad4036' : 'svadmin-u-d4108abe6359 svadmin-u-8e551981c8d7'}"
|
|
99
99
|
>
|
|
100
100
|
{role.name}
|
|
101
|
-
<div class="
|
|
101
|
+
<div class="svadmin-u-15e1b1f444fe svadmin-u-0e65706bcccd svadmin-u-1dc571a3609f svadmin-u-f2868c227fcd">{role.code}</div>
|
|
102
102
|
</button>
|
|
103
103
|
{/each}
|
|
104
104
|
{#if roles.length === 0}
|
|
105
|
-
<p class="
|
|
105
|
+
<p class="svadmin-u-ca6bf63030aa svadmin-u-bfa603190748 svadmin-u-fc7473ca09eb svadmin-u-8e63407b5ceb">{i18n.t('permissions.noRoles') || 'No roles available'}</p>
|
|
106
106
|
{/if}
|
|
107
107
|
</div>
|
|
108
108
|
|
|
109
109
|
<!-- Slot for Upper Logic inject (e.g. Org Switcher, Security Level Filter) -->
|
|
110
110
|
{#if sidebarExtra}
|
|
111
|
-
<div class="
|
|
111
|
+
<div class="svadmin-u-0ab8667228fd svadmin-u-173fa8f06789 svadmin-u-b950dda299d3 svadmin-u-18049387f0af">
|
|
112
112
|
{@render sidebarExtra()}
|
|
113
113
|
</div>
|
|
114
114
|
{/if}
|
|
115
115
|
</div>
|
|
116
116
|
|
|
117
117
|
<!-- Right: Matrix Grid -->
|
|
118
|
-
<div class="
|
|
118
|
+
<div class="svadmin-u-36e579c0b41c svadmin-u-cd0ad9a56558 svadmin-u-5f22e64f2282 svadmin-u-438b2237b8d6 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-2cd02d11d1af svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed">
|
|
119
119
|
<!-- Matrix Header -->
|
|
120
|
-
<div class="
|
|
121
|
-
<div class="
|
|
120
|
+
<div class="svadmin-u-c07e54fd1439 svadmin-u-65fdbade2025 svadmin-u-18049387f0af svadmin-u-2859c861d7de svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-1004c0c3954c svadmin-u-020ba687fa12 svadmin-u-64cac80d2e9a svadmin-u-3b9871a0bf93">
|
|
121
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-7e0b7cdf1a94 svadmin-u-8dddea0773ed svadmin-u-1004c0c3954c svadmin-u-020ba687fa12 svadmin-u-9f76a62f4f44 svadmin-u-cdaa0b7ef445">
|
|
122
122
|
<div>
|
|
123
|
-
<h2 class="
|
|
124
|
-
<span class="
|
|
123
|
+
<h2 class="svadmin-u-42536e69e639 svadmin-u-69450ef1487e svadmin-u-d4108abe6359">{i18n.t('permissions.currentRole') || 'Current role'}:
|
|
124
|
+
<span class="svadmin-u-20aaf08a7ed1">{roles.find(r => r.code === selectedRole)?.name || (i18n.t('permissions.noneSelected') || 'None selected')}</span>
|
|
125
125
|
</h2>
|
|
126
|
-
<p class="
|
|
126
|
+
<p class="svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-b6b02c0ebef6">{i18n.t('permissions.toggleHint') || 'Toggle checkboxes to grant or revoke permissions'}</p>
|
|
127
127
|
</div>
|
|
128
128
|
|
|
129
129
|
<!-- Slot for header extra logic -->
|
|
@@ -133,60 +133,60 @@
|
|
|
133
133
|
</div>
|
|
134
134
|
|
|
135
135
|
{#if conflictCount > 0}
|
|
136
|
-
<div class="
|
|
137
|
-
<AlertCircle class="
|
|
136
|
+
<div class="svadmin-u-0e17f2bd9074 svadmin-u-ec0091ee009b svadmin-u-43928fcc832f svadmin-u-811148b13d1e svadmin-u-5f22e64f2282 svadmin-u-359090c2d529 svadmin-u-2689f3958069 svadmin-u-3daca9af0861 svadmin-u-5b92fd698365 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-58284b4ea568">
|
|
137
|
+
<AlertCircle class="svadmin-u-dc7972ebf3f3 svadmin-u-11e59c6d5f6b" /> {conflictCount} {i18n.t('permissions.conflicts') || 'conflicting rules'}
|
|
138
138
|
</div>
|
|
139
139
|
{/if}
|
|
140
140
|
</div>
|
|
141
141
|
|
|
142
142
|
<!-- Table Area -->
|
|
143
|
-
<div class="
|
|
144
|
-
<table class="
|
|
145
|
-
<thead class="
|
|
143
|
+
<div class="svadmin-u-36e579c0b41c svadmin-u-73fc3fb18ceb svadmin-u-8e63407b5ceb">
|
|
144
|
+
<table class="svadmin-u-a1e7a8069878 svadmin-u-5f22e64f2282 svadmin-u-2cd02d11d1af svadmin-u-438b2237b8d6 svadmin-u-3daca9af0861 svadmin-u-a10fdd7667ee">
|
|
145
|
+
<thead class="svadmin-u-358af0b65a31">
|
|
146
146
|
<tr>
|
|
147
|
-
<th scope="col" class="
|
|
147
|
+
<th scope="col" class="svadmin-u-1b2d54a3fd12 svadmin-u-fafb9e0bfb6a svadmin-u-fdb4af3ae0bc svadmin-u-2eba0d65d059 svadmin-u-fc7473ca09eb svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359 svadmin-u-74b2435a1d40">{i18n.t('permissions.resources') || 'Resources'}</th>
|
|
148
148
|
{#each actions as action, _i (_i)}
|
|
149
|
-
<th scope="col" class="
|
|
150
|
-
<div class="
|
|
149
|
+
<th scope="col" class="svadmin-u-d5eab218aa34 svadmin-u-1b2d54a3fd12 svadmin-u-ca6bf63030aa svadmin-u-fc7473ca09eb svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">
|
|
150
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-8dddea0773ed svadmin-u-3960ffc248d9">
|
|
151
151
|
<span>{action.name}</span>
|
|
152
|
-
<span class="
|
|
152
|
+
<span class="svadmin-u-1dc571a3609f svadmin-u-bfa603190748 svadmin-u-0e65706bcccd">{action.code}</span>
|
|
153
153
|
</div>
|
|
154
154
|
</th>
|
|
155
155
|
{/each}
|
|
156
156
|
</tr>
|
|
157
157
|
</thead>
|
|
158
|
-
<tbody class="
|
|
158
|
+
<tbody class="svadmin-u-cd0ad9a56558">
|
|
159
159
|
{#if resources.length === 0}
|
|
160
160
|
<tr>
|
|
161
|
-
<td colspan={actions.length + 1} class="
|
|
161
|
+
<td colspan={actions.length + 1} class="svadmin-u-1100bef66e60 svadmin-u-ca6bf63030aa svadmin-u-bfa603190748">{i18n.t('permissions.noResources') || 'No resources available'}</td>
|
|
162
162
|
</tr>
|
|
163
163
|
{/if}
|
|
164
164
|
{#each resources as resource, i (i)}
|
|
165
165
|
<!-- Section Grouping Header -->
|
|
166
166
|
{#if resource.section && (i === 0 || resource.section !== resources[i-1].section)}
|
|
167
|
-
<tr class="
|
|
168
|
-
<td colspan="{actions.length + 1}" class="
|
|
167
|
+
<tr class="svadmin-u-989c466fdbe7">
|
|
168
|
+
<td colspan="{actions.length + 1}" class="svadmin-u-f0faeb26d656 svadmin-u-03b4dd7f172b svadmin-u-359090c2d529 svadmin-u-69450ef1487e svadmin-u-20aaf08a7ed1">{resource.section}</td>
|
|
169
169
|
</tr>
|
|
170
170
|
{/if}
|
|
171
171
|
|
|
172
|
-
<tr class="
|
|
173
|
-
<td class="
|
|
174
|
-
<div class="
|
|
175
|
-
<div class="
|
|
172
|
+
<tr class="svadmin-u-a951c7ab6715 svadmin-u-39f703dbe296 svadmin-u-ceb69a6b0e5f">
|
|
173
|
+
<td class="svadmin-u-e82ae8be04aa svadmin-u-1b2d54a3fd12 svadmin-u-fdb4af3ae0bc svadmin-u-fafb9e0bfb6a svadmin-u-fc7473ca09eb">
|
|
174
|
+
<div class="svadmin-u-2689f3958069 svadmin-u-d4108abe6359">{resource.name}</div>
|
|
175
|
+
<div class="svadmin-u-359090c2d529 svadmin-u-bfa603190748 svadmin-u-0e65706bcccd">{resource.code}</div>
|
|
176
176
|
</td>
|
|
177
177
|
|
|
178
178
|
<!-- Action Checkboxes -->
|
|
179
179
|
{#each actions as action, _i (_i)}
|
|
180
180
|
{@const granted = selectedRole ? isGranted(selectedRole, resource.code, action.code) : false}
|
|
181
|
-
<td class="
|
|
182
|
-
<div class="
|
|
181
|
+
<td class="svadmin-u-e82ae8be04aa svadmin-u-0e17f2bd9074 svadmin-u-1b2d54a3fd12 svadmin-u-ca6bf63030aa">
|
|
182
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227">
|
|
183
183
|
<button
|
|
184
184
|
disabled={loading || !selectedRole}
|
|
185
185
|
aria-label="Toggle {action.name}"
|
|
186
186
|
onclick={() => onToggle(selectedRole as string, resource.code, action.code, !granted)}
|
|
187
|
-
class="
|
|
187
|
+
class="svadmin-u-7ec10f86d9b1 svadmin-u-f6fe902450dc svadmin-u-07389a777c1f svadmin-u-ca6bcd4b6f3f svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-0fe7d7d814d0 svadmin-u-55d048ebfb1c svadmin-u-608dd26cd5ba svadmin-u-094cedcfedfd {granted ? 'svadmin-u-75b1bec3ea0e svadmin-u-6cbc84dd9e1a svadmin-u-30ca335ae9c2' : 'svadmin-u-e5795dad4d22 svadmin-u-e6f9e383a762 svadmin-u-0557b88819cd'} {loading || !selectedRole ? 'svadmin-u-0b8c506a0596 svadmin-u-29b733e4c162' : 'svadmin-u-34516836730d'}"
|
|
188
188
|
>
|
|
189
|
-
<svg class="
|
|
189
|
+
<svg class="svadmin-u-bf600f8e029c svadmin-u-7fc7f732bf7e {granted ? 'svadmin-u-0214b4b355d1' : 'svadmin-u-99d72c7fc3e2'}" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="3">
|
|
190
190
|
<path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7" />
|
|
191
191
|
</svg>
|
|
192
192
|
</button>
|
|
@@ -89,50 +89,50 @@
|
|
|
89
89
|
);
|
|
90
90
|
</script>
|
|
91
91
|
|
|
92
|
-
<div class={cn('
|
|
93
|
-
<div class="
|
|
94
|
-
<div class="
|
|
95
|
-
Pivot Analysis <span class="
|
|
92
|
+
<div class={cn('svadmin-u-a217b4eaa918 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-8e63407b5ceb svadmin-u-cef5b893cf23 svadmin-u-359090c2d529 svadmin-u-6ed543e2fbbb', className)}>
|
|
93
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-77a2a20e90d4 svadmin-u-f4cc511ff0c1 svadmin-u-65fdbade2025 svadmin-u-05faf5c801ff">
|
|
94
|
+
<div class="svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">
|
|
95
|
+
Pivot Analysis <span class="svadmin-u-bfa603190748 svadmin-u-8ecebc9f80e6">({rowLabel} × {columnLabel})</span>
|
|
96
96
|
</div>
|
|
97
|
-
<div class="
|
|
98
|
-
Aggregator: <strong class="
|
|
97
|
+
<div class="svadmin-u-bfa603190748">
|
|
98
|
+
Aggregator: <strong class="svadmin-u-20aaf08a7ed1 uppercase">{aggregator}</strong> ({valueLabel})
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
|
|
102
|
-
<div class="
|
|
103
|
-
<table class="
|
|
104
|
-
<thead class="
|
|
102
|
+
<div class="svadmin-u-1384f66f41d0 svadmin-u-5f22e64f2282 svadmin-u-ca6bcd4b6f3f svadmin-u-05faf5c801ff">
|
|
103
|
+
<table class="svadmin-u-6da6a3c3f741 svadmin-u-308fc069e46e svadmin-u-4583f90cd9bd">
|
|
104
|
+
<thead class="svadmin-u-b00f43c30c2b svadmin-u-e83a7042bc91 svadmin-u-bfa603190748 svadmin-u-65fdbade2025 svadmin-u-05faf5c801ff">
|
|
105
105
|
<tr>
|
|
106
|
-
<th class="
|
|
106
|
+
<th class="svadmin-u-0e17f2bd9074 svadmin-u-e7ee55ac7ffe svadmin-u-2eba0d65d059 svadmin-u-706701550477">{rowLabel} \ {columnLabel}</th>
|
|
107
107
|
{#each distinctColValues as col (col)}
|
|
108
|
-
<th class="
|
|
108
|
+
<th class="svadmin-u-0e17f2bd9074 svadmin-u-e7ee55ac7ffe svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{col}</th>
|
|
109
109
|
{/each}
|
|
110
|
-
<th class="
|
|
110
|
+
<th class="svadmin-u-0e17f2bd9074 svadmin-u-e7ee55ac7ffe svadmin-u-706701550477 svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">Total</th>
|
|
111
111
|
</tr>
|
|
112
112
|
</thead>
|
|
113
|
-
<tbody class="
|
|
113
|
+
<tbody class="svadmin-u-fa6acbf81d74 svadmin-u-08b5607c7258 svadmin-u-0e65706bcccd">
|
|
114
114
|
{#each distinctRowValues as row (row)}
|
|
115
|
-
<tr class="
|
|
116
|
-
<td class="
|
|
115
|
+
<tr class="svadmin-u-c4b5eaba40e3 svadmin-u-ceb69a6b0e5f">
|
|
116
|
+
<td class="svadmin-u-0e17f2bd9074 svadmin-u-03b4dd7f172b svadmin-u-2eba0d65d059 svadmin-u-2689f3958069 svadmin-u-d4108abe6359 svadmin-u-967d113a1451 svadmin-u-79bf1259388b">{row}</td>
|
|
117
117
|
{#each distinctColValues as col (col)}
|
|
118
118
|
{@const val = getCellValue(row, col)}
|
|
119
|
-
<td class={cn('
|
|
119
|
+
<td class={cn('svadmin-u-0e17f2bd9074 svadmin-u-03b4dd7f172b', val === 0 ? 'svadmin-u-52183a1cca53' : 'svadmin-u-d4108abe6359')}>
|
|
120
120
|
{formatValue(val)}
|
|
121
121
|
</td>
|
|
122
122
|
{/each}
|
|
123
|
-
<td class="
|
|
123
|
+
<td class="svadmin-u-0e17f2bd9074 svadmin-u-03b4dd7f172b svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359 svadmin-u-967d113a1451">
|
|
124
124
|
{formatValue(getRowTotal(row))}
|
|
125
125
|
</td>
|
|
126
126
|
</tr>
|
|
127
127
|
{/each}
|
|
128
128
|
</tbody>
|
|
129
|
-
<tfoot class="
|
|
129
|
+
<tfoot class="svadmin-u-706701550477 svadmin-u-e83a7042bc91 svadmin-u-0e65706bcccd svadmin-u-bee68af349c9 svadmin-u-18049387f0af svadmin-u-d4108abe6359">
|
|
130
130
|
<tr>
|
|
131
|
-
<td class="
|
|
131
|
+
<td class="svadmin-u-0e17f2bd9074 svadmin-u-e7ee55ac7ffe svadmin-u-2eba0d65d059 svadmin-u-79bf1259388b">Grand Total</td>
|
|
132
132
|
{#each distinctColValues as col (col)}
|
|
133
|
-
<td class="
|
|
133
|
+
<td class="svadmin-u-0e17f2bd9074 svadmin-u-e7ee55ac7ffe">{formatValue(getColTotal(col))}</td>
|
|
134
134
|
{/each}
|
|
135
|
-
<td class="
|
|
135
|
+
<td class="svadmin-u-0e17f2bd9074 svadmin-u-e7ee55ac7ffe svadmin-u-20aaf08a7ed1">{formatValue(grandTotal)}</td>
|
|
136
136
|
</tr>
|
|
137
137
|
</tfoot>
|
|
138
138
|
</table>
|
|
@@ -38,31 +38,31 @@
|
|
|
38
38
|
function getStatusIndicator(status?: PresenceUser['status']) {
|
|
39
39
|
switch (status) {
|
|
40
40
|
case 'editing':
|
|
41
|
-
return '
|
|
41
|
+
return 'svadmin-u-a486cacb3a15 svadmin-u-8e7bba3352f0 svadmin-u-d59b97947485';
|
|
42
42
|
case 'idle':
|
|
43
|
-
return '
|
|
43
|
+
return 'svadmin-u-43ed7af3fc8a svadmin-u-ffe6499f370c';
|
|
44
44
|
default:
|
|
45
|
-
return '
|
|
45
|
+
return 'svadmin-u-3355648fe22b svadmin-u-0a0bdc193a65';
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
</script>
|
|
49
49
|
|
|
50
|
-
<div class={cn('
|
|
50
|
+
<div class={cn('svadmin-u-52083e7da442 svadmin-u-3960ffc248d9 svadmin-u-77a2a20e90d4 svadmin-u-359090c2d529 svadmin-u-7f6912283f11', className)}>
|
|
51
51
|
{#if label}
|
|
52
|
-
<span class="
|
|
53
|
-
<Users class="
|
|
52
|
+
<span class="svadmin-u-bfa603190748 svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-44ee8ba0a421">
|
|
53
|
+
<Users class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c" />
|
|
54
54
|
{label}:
|
|
55
55
|
</span>
|
|
56
56
|
{/if}
|
|
57
57
|
|
|
58
|
-
<div class="
|
|
58
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-9f6ccfe3205a svadmin-u-2cd02d11d1af svadmin-u-660d2effb880">
|
|
59
59
|
{#each visibleUsers as user (user.id)}
|
|
60
60
|
<div
|
|
61
|
-
class="
|
|
61
|
+
class="svadmin-u-d89972fe17d6 svadmin-u-52083e7da442 svadmin-u-d0a52b312f7d svadmin-u-cbbf90f9a828 svadmin-u-012fbd121f37 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-ac204c108886 svadmin-u-65935df577ba svadmin-u-4c1e8d12f3db svadmin-u-2ef11f1cb219 svadmin-u-d058ca6de60f svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359 svadmin-u-cef5b893cf23 svadmin-u-eadef238231e svadmin-u-d5254d26307d svadmin-u-7abf679f0725"
|
|
62
62
|
title="{user.name} ({user.status ?? 'online'})"
|
|
63
63
|
>
|
|
64
64
|
{#if user.avatar}
|
|
65
|
-
<img src={user.avatar} alt={user.name} class="
|
|
65
|
+
<img src={user.avatar} alt={user.name} class="svadmin-u-668b21aa5409 svadmin-u-6da6a3c3f741 svadmin-u-ac204c108886 svadmin-u-7d85d0c21a32" />
|
|
66
66
|
{:else}
|
|
67
67
|
<span>{getInitials(user.name)}</span>
|
|
68
68
|
{/if}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
<!-- Status Dot Indicator -->
|
|
71
71
|
<span
|
|
72
72
|
class={cn(
|
|
73
|
-
'
|
|
73
|
+
'svadmin-u-da4dbfbc4fdc svadmin-u-189f036c335c svadmin-u-d8cdcad240d1 svadmin-u-2f2a842e50fa svadmin-u-940924b6e2d9 svadmin-u-ac204c108886 svadmin-u-16b1efa5875e svadmin-u-85399de17097',
|
|
74
74
|
getStatusIndicator(user.status)
|
|
75
75
|
)}
|
|
76
76
|
></span>
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
|
|
80
80
|
{#if hiddenCount > 0}
|
|
81
81
|
<div
|
|
82
|
-
class="
|
|
82
|
+
class="svadmin-u-d89972fe17d6 svadmin-u-52083e7da442 svadmin-u-d0a52b312f7d svadmin-u-cbbf90f9a828 svadmin-u-012fbd121f37 svadmin-u-3960ffc248d9 svadmin-u-86843cf1e227 svadmin-u-ac204c108886 svadmin-u-65935df577ba svadmin-u-4c1e8d12f3db svadmin-u-ba939ea82d8b svadmin-u-1dc571a3609f svadmin-u-2689f3958069 svadmin-u-5064267f78e3 svadmin-u-cef5b893cf23"
|
|
83
83
|
title="{hiddenCount} more users"
|
|
84
84
|
>
|
|
85
85
|
+{hiddenCount}
|
|
@@ -54,95 +54,95 @@
|
|
|
54
54
|
}
|
|
55
55
|
</script>
|
|
56
56
|
|
|
57
|
-
<div class={cn('
|
|
57
|
+
<div class={cn('svadmin-u-3e7ce58d64fa svadmin-u-359090c2d529', className)}>
|
|
58
58
|
<!-- Print Trigger Bar (Hidden during actual print) -->
|
|
59
|
-
<div class="
|
|
60
|
-
<div class="
|
|
61
|
-
Document Ready: <strong class="
|
|
59
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-3960ffc248d9 svadmin-u-8ef2268efbbc svadmin-u-eb6e8b881acd svadmin-u-a217b4eaa918 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-cef5b893cf23 svadmin-u-38a2a10339a0">
|
|
60
|
+
<div class="svadmin-u-bfa603190748">
|
|
61
|
+
Document Ready: <strong class="svadmin-u-d4108abe6359">{billNumber}</strong>
|
|
62
62
|
</div>
|
|
63
|
-
<Button size="sm" class="
|
|
64
|
-
<Printer class="
|
|
63
|
+
<Button size="sm" class="svadmin-u-ed8a5df7b2fb svadmin-u-359090c2d529 svadmin-u-58284b4ea568" onclick={handlePrint}>
|
|
64
|
+
<Printer class="svadmin-u-7fc7f732bf7e svadmin-u-bf600f8e029c" />
|
|
65
65
|
Print Document
|
|
66
66
|
</Button>
|
|
67
67
|
</div>
|
|
68
68
|
|
|
69
69
|
<!-- Printable A4 Paper Container -->
|
|
70
|
-
<div class="
|
|
70
|
+
<div class="svadmin-u-a217b4eaa918 svadmin-u-ca6bcd4b6f3f svadmin-u-18049387f0af svadmin-u-cd0ad9a56558 svadmin-u-845f53365c8d svadmin-u-cef5b893cf23 svadmin-u-fa3f7111e53b svadmin-u-0e12dc7de920 svadmin-u-b3542e058833 svadmin-u-952dfef04298 svadmin-u-a9436de0cd55 svadmin-u-d0dfe7e6acb2 svadmin-u-3d50bc090e79">
|
|
71
71
|
<!-- Header -->
|
|
72
|
-
<div class="
|
|
72
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-60541e1e26f8 svadmin-u-8ef2268efbbc svadmin-u-65ac0c49a5d5 svadmin-u-f5583b2907be svadmin-u-9fcd8a13827e">
|
|
73
73
|
<div>
|
|
74
|
-
<h2 class="
|
|
75
|
-
<p class="
|
|
74
|
+
<h2 class="svadmin-u-d5c9b0001e7e svadmin-u-69450ef1487e svadmin-u-d4108abe6359 svadmin-u-1d7f28b046ad">{title}</h2>
|
|
75
|
+
<p class="svadmin-u-bfa603190748 svadmin-u-0e65706bcccd svadmin-u-15e1b1f444fe">No: {billNumber}</p>
|
|
76
76
|
</div>
|
|
77
|
-
<div class="
|
|
78
|
-
<h3 class="
|
|
77
|
+
<div class="svadmin-u-308fc069e46e svadmin-u-e2eedc5718f0">
|
|
78
|
+
<h3 class="svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{companyName}</h3>
|
|
79
79
|
{#if companyAddress}
|
|
80
|
-
<p class="
|
|
80
|
+
<p class="svadmin-u-bfa603190748 svadmin-u-d058ca6de60f">{companyAddress}</p>
|
|
81
81
|
{/if}
|
|
82
|
-
<p class="
|
|
82
|
+
<p class="svadmin-u-bfa603190748 svadmin-u-d058ca6de60f">Date: {date}</p>
|
|
83
83
|
</div>
|
|
84
84
|
</div>
|
|
85
85
|
|
|
86
86
|
<!-- Customer Info -->
|
|
87
|
-
<div class="
|
|
88
|
-
<span class="
|
|
89
|
-
<div class="
|
|
87
|
+
<div class="svadmin-u-eb6e8b881acd svadmin-u-5f22e64f2282 svadmin-u-967d113a1451 svadmin-u-ca6bcd4b6f3f svadmin-u-6ee2d41e2d2d svadmin-u-da7c36cd8867">
|
|
88
|
+
<span class="svadmin-u-bfa603190748 svadmin-u-e83a7042bc91 uppercase svadmin-u-1dc571a3609f svadmin-u-0214b4b355d1">Bill To</span>
|
|
89
|
+
<div class="svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">{customerName}</div>
|
|
90
90
|
{#if customerAddress}
|
|
91
|
-
<div class="
|
|
91
|
+
<div class="svadmin-u-bfa603190748 svadmin-u-d058ca6de60f">{customerAddress}</div>
|
|
92
92
|
{/if}
|
|
93
93
|
</div>
|
|
94
94
|
|
|
95
95
|
<!-- Items Table -->
|
|
96
|
-
<table class="
|
|
97
|
-
<thead class="
|
|
96
|
+
<table class="svadmin-u-6da6a3c3f741 svadmin-u-2eba0d65d059 svadmin-u-4583f90cd9bd svadmin-u-ca6bcd4b6f3f svadmin-u-05faf5c801ff">
|
|
97
|
+
<thead class="svadmin-u-b00f43c30c2b svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359 svadmin-u-65fdbade2025 svadmin-u-05faf5c801ff">
|
|
98
98
|
<tr>
|
|
99
|
-
<th class="
|
|
100
|
-
<th class="
|
|
101
|
-
<th class="
|
|
102
|
-
<th class="
|
|
103
|
-
<th class="
|
|
99
|
+
<th class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-e7e371071bc5 svadmin-u-ca6bf63030aa">#</th>
|
|
100
|
+
<th class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d">Item Description</th>
|
|
101
|
+
<th class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-ca6bf63030aa svadmin-u-ed831a4dff32">Qty</th>
|
|
102
|
+
<th class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-308fc069e46e svadmin-u-69da7e4ff95d">Unit Price</th>
|
|
103
|
+
<th class="svadmin-u-7660b450905a svadmin-u-308fc069e46e svadmin-u-b67ee2eeca37">Amount</th>
|
|
104
104
|
</tr>
|
|
105
105
|
</thead>
|
|
106
|
-
<tbody class="
|
|
106
|
+
<tbody class="svadmin-u-fa6acbf81d74 svadmin-u-08b5607c7258">
|
|
107
107
|
{#each items as item, index (index)}
|
|
108
108
|
{@const rowTotal = item.total ?? item.quantity * item.unitPrice}
|
|
109
109
|
<tr>
|
|
110
|
-
<td class="
|
|
111
|
-
<td class="
|
|
110
|
+
<td class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-ca6bf63030aa svadmin-u-bfa603190748">{index + 1}</td>
|
|
111
|
+
<td class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-2689f3958069 svadmin-u-d4108abe6359">
|
|
112
112
|
{item.name}
|
|
113
113
|
{#if item.spec}
|
|
114
|
-
<span class="
|
|
114
|
+
<span class="svadmin-u-0214b4b355d1 svadmin-u-d058ca6de60f svadmin-u-bfa603190748">{item.spec}</span>
|
|
115
115
|
{/if}
|
|
116
116
|
</td>
|
|
117
|
-
<td class="
|
|
118
|
-
<td class="
|
|
119
|
-
<td class="
|
|
117
|
+
<td class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-ca6bf63030aa svadmin-u-3032cae0badb">{item.quantity}</td>
|
|
118
|
+
<td class="svadmin-u-7660b450905a svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d svadmin-u-308fc069e46e svadmin-u-3032cae0badb">¥{item.unitPrice.toFixed(2)}</td>
|
|
119
|
+
<td class="svadmin-u-7660b450905a svadmin-u-308fc069e46e svadmin-u-3032cae0badb svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359">¥{rowTotal.toFixed(2)}</td>
|
|
120
120
|
</tr>
|
|
121
121
|
{/each}
|
|
122
122
|
</tbody>
|
|
123
|
-
<tfoot class="
|
|
123
|
+
<tfoot class="svadmin-u-bee68af349c9 svadmin-u-18049387f0af svadmin-u-e83a7042bc91 svadmin-u-d4108abe6359 svadmin-u-967d113a1451">
|
|
124
124
|
<tr>
|
|
125
|
-
<td colspan="4" class="
|
|
126
|
-
<td class="
|
|
125
|
+
<td colspan="4" class="svadmin-u-9fe52d5d506c svadmin-u-308fc069e46e svadmin-u-5ceb636bd9f3 svadmin-u-6ee2d41e2d2d">Total Summary:</td>
|
|
126
|
+
<td class="svadmin-u-9fe52d5d506c svadmin-u-308fc069e46e svadmin-u-fc7473ca09eb svadmin-u-3032cae0badb svadmin-u-20aaf08a7ed1 svadmin-u-69450ef1487e">¥{subtotal.toFixed(2)}</td>
|
|
127
127
|
</tr>
|
|
128
128
|
</tfoot>
|
|
129
129
|
</table>
|
|
130
130
|
|
|
131
131
|
<!-- Footer Notes & Signatures -->
|
|
132
|
-
<div class="
|
|
133
|
-
<div class="
|
|
132
|
+
<div class="svadmin-u-60fbb7713999 svadmin-u-6f27f4f79e55 svadmin-u-8ef2268efbbc svadmin-u-173fa8f06789 svadmin-u-b950dda299d3 svadmin-u-6ee2d41e2d2d svadmin-u-359090c2d529">
|
|
133
|
+
<div class="svadmin-u-da7c36cd8867 svadmin-u-2472e9b81a97">
|
|
134
134
|
{#if notes}
|
|
135
|
-
<span class="
|
|
136
|
-
<p class="
|
|
135
|
+
<span class="svadmin-u-e83a7042bc91 svadmin-u-bfa603190748 svadmin-u-0214b4b355d1 svadmin-u-d058ca6de60f">Notes:</span>
|
|
136
|
+
<p class="svadmin-u-bfa603190748">{notes}</p>
|
|
137
137
|
{/if}
|
|
138
138
|
</div>
|
|
139
139
|
|
|
140
|
-
<div class="
|
|
140
|
+
<div class="svadmin-u-308fc069e46e svadmin-u-3e7ce58d64fa">
|
|
141
141
|
{#if issuer}
|
|
142
|
-
<p class="
|
|
142
|
+
<p class="svadmin-u-bfa603190748">Issued By: <strong class="svadmin-u-d4108abe6359">{issuer}</strong></p>
|
|
143
143
|
{/if}
|
|
144
|
-
<div class="
|
|
145
|
-
<p class="
|
|
144
|
+
<div class="svadmin-u-84789e8a20cd svadmin-u-65fdbade2025 svadmin-u-a4fe7d4d1e07 svadmin-u-30c1d058f0db"></div>
|
|
145
|
+
<p class="svadmin-u-1dc571a3609f svadmin-u-bfa603190748 svadmin-u-ca6bf63030aa">Authorized Signature & Stamp</p>
|
|
146
146
|
</div>
|
|
147
147
|
</div>
|
|
148
148
|
</div>
|