@svadmin/lite 0.16.11 → 0.22.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 +71 -2
- package/dist/components/LiteActivityFeed.svelte +31 -9
- package/dist/components/LiteActivityFeed.svelte.d.ts +6 -0
- package/dist/components/LiteAffix.svelte +29 -0
- package/dist/components/LiteAffix.svelte.d.ts +13 -0
- package/dist/components/LiteAnchor.svelte +38 -0
- package/dist/components/LiteAnchor.svelte.d.ts +14 -0
- package/dist/components/LiteApprovalActionCard.svelte +8 -5
- package/dist/components/LiteApprovalActionCard.svelte.d.ts +2 -0
- package/dist/components/LiteAuditLog.svelte +9 -9
- package/dist/components/LiteAutoComplete.svelte +41 -0
- package/dist/components/LiteAutoComplete.svelte.d.ts +13 -0
- package/dist/components/LiteBackTop.svelte +16 -0
- package/dist/components/LiteBackTop.svelte.d.ts +8 -0
- package/dist/components/LiteBreadcrumbs.svelte +4 -1
- package/dist/components/LiteBreadcrumbs.svelte.d.ts +2 -0
- package/dist/components/LiteCalendar.svelte +124 -0
- package/dist/components/LiteCalendar.svelte.d.ts +20 -0
- package/dist/components/LiteCanvasAnnotation.svelte +13 -13
- package/dist/components/LiteCarousel.svelte +72 -0
- package/dist/components/LiteCarousel.svelte.d.ts +14 -0
- package/dist/components/LiteChatDialog.svelte +8 -8
- package/dist/components/LiteCollapse.svelte +49 -0
- package/dist/components/LiteCollapse.svelte.d.ts +15 -0
- package/dist/components/LiteColumnHeaderFilter.svelte +4 -1
- package/dist/components/LiteColumnHeaderFilter.svelte.d.ts +2 -0
- package/dist/components/LiteColumnSettings.svelte +7 -4
- package/dist/components/LiteColumnSettings.svelte.d.ts +2 -0
- package/dist/components/LiteCommentThread.svelte +113 -0
- package/dist/components/LiteCommentThread.svelte.d.ts +26 -0
- package/dist/components/LiteConfirmDialog.svelte +2 -2
- package/dist/components/LiteCountdown.svelte +49 -0
- package/dist/components/LiteCountdown.svelte.d.ts +10 -0
- package/dist/components/LiteDecisionTable.svelte +14 -14
- package/dist/components/LiteDetailDrawer.svelte +45 -0
- package/dist/components/LiteDetailDrawer.svelte.d.ts +14 -0
- package/dist/components/LiteDraggableRowTable.svelte +5 -2
- package/dist/components/LiteDraggableRowTable.svelte.d.ts +2 -0
- package/dist/components/LiteDrawerForm.svelte +11 -8
- package/dist/components/LiteDrawerForm.svelte.d.ts +2 -0
- package/dist/components/LiteDynamicFormList.svelte +5 -5
- package/dist/components/LiteEditableTable.svelte +5 -2
- package/dist/components/LiteEditableTable.svelte.d.ts +2 -0
- package/dist/components/LiteEmptyState.svelte +11 -4
- package/dist/components/LiteEmptyState.svelte.d.ts +3 -0
- package/dist/components/LiteFilterBuilder.svelte +8 -5
- package/dist/components/LiteFilterBuilder.svelte.d.ts +2 -0
- package/dist/components/LiteFloatButton.svelte +54 -0
- package/dist/components/LiteFloatButton.svelte.d.ts +15 -0
- package/dist/components/LiteGanttChart.svelte +20 -20
- package/dist/components/LiteGrid.svelte +34 -0
- package/dist/components/LiteGrid.svelte.d.ts +11 -0
- package/dist/components/LiteImage.svelte +54 -0
- package/dist/components/LiteImage.svelte.d.ts +14 -0
- package/dist/components/LiteImageCropper.svelte +7 -4
- package/dist/components/LiteImageCropper.svelte.d.ts +2 -0
- package/dist/components/LiteImagePreview.svelte +36 -0
- package/dist/components/LiteImagePreview.svelte.d.ts +13 -0
- package/dist/components/LiteImportWizard.svelte +7 -7
- package/dist/components/LiteItemList.svelte +50 -0
- package/dist/components/LiteItemList.svelte.d.ts +15 -0
- package/dist/components/LiteJsonSchemaForm.svelte +10 -7
- package/dist/components/LiteJsonSchemaForm.svelte.d.ts +2 -0
- package/dist/components/LiteKanbanBoard.svelte +19 -19
- package/dist/components/LiteLayout.svelte +18 -6
- package/dist/components/LiteLayout.svelte.d.ts +8 -0
- package/dist/components/LiteLink.svelte +32 -0
- package/dist/components/LiteLink.svelte.d.ts +11 -0
- package/dist/components/LiteLogin.svelte +9 -2
- package/dist/components/LiteLogin.svelte.d.ts +2 -0
- package/dist/components/LiteMasterDetailView.svelte +13 -10
- package/dist/components/LiteMasterDetailView.svelte.d.ts +2 -0
- package/dist/components/LiteMediaLibraryModal.svelte +8 -5
- package/dist/components/LiteMediaLibraryModal.svelte.d.ts +2 -0
- package/dist/components/LiteMediaThumbnail.svelte +3 -3
- package/dist/components/LiteMentionsInput.svelte +9 -9
- package/dist/components/LiteMenu.svelte +22 -0
- package/dist/components/LiteMenu.svelte.d.ts +12 -0
- package/dist/components/LiteMenuList.svelte +55 -0
- package/dist/components/LiteMenuList.svelte.d.ts +17 -0
- package/dist/components/LiteModalForm.svelte +9 -6
- package/dist/components/LiteModalForm.svelte.d.ts +2 -0
- package/dist/components/LiteMultiTabKeepAlive.svelte +6 -6
- package/dist/components/LiteNotificationCenter.svelte +85 -0
- package/dist/components/LiteNotificationCenter.svelte.d.ts +22 -0
- package/dist/components/LiteOfflineSyncBanner.svelte +6 -6
- package/dist/components/LiteOtpInput.svelte +50 -0
- package/dist/components/LiteOtpInput.svelte.d.ts +15 -0
- package/dist/components/LitePageHeader.svelte +34 -0
- package/dist/components/LitePageHeader.svelte.d.ts +13 -0
- package/dist/components/LitePagination.svelte +10 -2
- package/dist/components/LitePagination.svelte.d.ts +2 -0
- package/dist/components/LitePdfDocumentViewer.svelte +14 -14
- package/dist/components/LitePermissionMatrix.svelte +8 -8
- package/dist/components/LitePivotTable.svelte +11 -11
- package/dist/components/LitePopconfirm.svelte +49 -0
- package/dist/components/LitePopconfirm.svelte.d.ts +14 -0
- package/dist/components/LitePresenceAvatarGroup.svelte +8 -5
- package/dist/components/LitePresenceAvatarGroup.svelte.d.ts +2 -0
- package/dist/components/LitePrintableBill.svelte +12 -9
- package/dist/components/LitePrintableBill.svelte.d.ts +2 -0
- package/dist/components/LiteProgress.svelte +46 -0
- package/dist/components/LiteProgress.svelte.d.ts +12 -0
- package/dist/components/LiteQRCode.svelte +62 -0
- package/dist/components/LiteQRCode.svelte.d.ts +14 -0
- package/dist/components/LiteResizeBox.svelte +34 -0
- package/dist/components/LiteResizeBox.svelte.d.ts +12 -0
- package/dist/components/LiteResult.svelte +52 -0
- package/dist/components/LiteResult.svelte.d.ts +14 -0
- package/dist/components/LiteRowActions.svelte +36 -0
- package/dist/components/LiteRowActions.svelte.d.ts +17 -0
- package/dist/components/LiteSensitiveDataMask.svelte +4 -1
- package/dist/components/LiteSensitiveDataMask.svelte.d.ts +2 -0
- package/dist/components/LiteShow.svelte +1 -1
- package/dist/components/LiteShowField.svelte +2 -2
- package/dist/components/LiteSignaturePad.svelte +9 -9
- package/dist/components/LiteSkeleton.svelte +100 -0
- package/dist/components/LiteSkeleton.svelte.d.ts +19 -0
- package/dist/components/LiteSpace.svelte +31 -0
- package/dist/components/LiteSpace.svelte.d.ts +12 -0
- package/dist/components/LiteSpin.svelte +27 -0
- package/dist/components/LiteSpin.svelte.d.ts +10 -0
- package/dist/components/LiteSplitPaneLayout.svelte +18 -6
- package/dist/components/LiteSplitPaneLayout.svelte.d.ts +8 -0
- package/dist/components/LiteSpreadsheetView.svelte +8 -8
- package/dist/components/LiteStatistic.svelte +63 -0
- package/dist/components/LiteStatistic.svelte.d.ts +15 -0
- package/dist/components/LiteStatsCard.svelte +5 -2
- package/dist/components/LiteStatsCard.svelte.d.ts +2 -0
- package/dist/components/LiteStatusBadge.svelte +33 -0
- package/dist/components/LiteStatusBadge.svelte.d.ts +12 -0
- package/dist/components/LiteStatusTabs.svelte +35 -0
- package/dist/components/LiteStatusTabs.svelte.d.ts +14 -0
- package/dist/components/LiteStepForm.svelte +14 -11
- package/dist/components/LiteStepForm.svelte.d.ts +2 -0
- package/dist/components/LiteSteps.svelte +64 -0
- package/dist/components/LiteSteps.svelte.d.ts +18 -0
- package/dist/components/LiteTable.svelte +5 -2
- package/dist/components/LiteTable.svelte.d.ts +2 -0
- package/dist/components/LiteTableSummary.svelte +8 -5
- package/dist/components/LiteTableSummary.svelte.d.ts +2 -0
- package/dist/components/LiteTabs.svelte +30 -20
- package/dist/components/LiteTabs.svelte.d.ts +11 -2
- package/dist/components/LiteTag.svelte +31 -0
- package/dist/components/LiteTag.svelte.d.ts +13 -0
- package/dist/components/LiteTimeline.svelte +48 -0
- package/dist/components/LiteTimeline.svelte.d.ts +17 -0
- package/dist/components/LiteTour.svelte +54 -0
- package/dist/components/LiteTour.svelte.d.ts +15 -0
- package/dist/components/LiteTransfer.svelte +9 -6
- package/dist/components/LiteTransfer.svelte.d.ts +2 -0
- package/dist/components/LiteTree.svelte +48 -0
- package/dist/components/LiteTree.svelte.d.ts +17 -0
- package/dist/components/LiteTreeTable.svelte +1 -1
- package/dist/components/LiteTwoFactorStepper.svelte +53 -0
- package/dist/components/LiteTwoFactorStepper.svelte.d.ts +16 -0
- package/dist/components/LiteVersionDiffViewer.svelte +16 -13
- package/dist/components/LiteVersionDiffViewer.svelte.d.ts +2 -0
- package/dist/components/LiteVideoPlayer.svelte +67 -0
- package/dist/components/LiteVideoPlayer.svelte.d.ts +22 -0
- package/dist/components/LiteVirtualTable.svelte +1 -1
- package/dist/components/advanced/LiteAutoSaveIndicator.svelte +42 -13
- package/dist/components/advanced/LiteAutoSaveIndicator.svelte.d.ts +10 -4
- package/dist/components/advanced/LiteDraggableHeader.svelte +2 -2
- package/dist/components/advanced/LiteDrawerForm.svelte +4 -1
- package/dist/components/advanced/LiteDrawerForm.svelte.d.ts +2 -0
- package/dist/components/advanced/LiteInlineEdit.svelte +1 -1
- package/dist/components/advanced/LiteModalForm.svelte +4 -1
- package/dist/components/advanced/LiteModalForm.svelte.d.ts +2 -0
- package/dist/components/advanced/LiteToast.svelte +3 -3
- package/dist/components/advanced/LiteUndoableNotification.svelte +1 -1
- package/dist/components/compatibility/LiteRealtimeStatus.svelte +41 -2
- package/dist/components/compatibility/LiteRealtimeStatus.svelte.d.ts +15 -0
- package/dist/components/fields/LiteBooleanField.svelte +4 -2
- package/dist/components/fields/LiteBooleanField.svelte.d.ts +2 -0
- package/dist/components/fields/LiteCascader.svelte +5 -2
- package/dist/components/fields/LiteCascader.svelte.d.ts +2 -0
- package/dist/components/fields/LiteDateField.svelte +39 -9
- package/dist/components/fields/LiteDateField.svelte.d.ts +2 -0
- package/dist/components/fields/LiteDateRangeField.svelte +1 -1
- package/dist/components/fields/LiteImageField.svelte +6 -2
- package/dist/components/fields/LiteImageField.svelte.d.ts +2 -0
- package/dist/components/fields/LiteJsonField.svelte +1 -1
- package/dist/components/fields/LiteMarkdownField.svelte +49 -3
- package/dist/components/fields/LiteMarkdownField.svelte.d.ts +5 -0
- package/dist/components/fields/LiteNumberField.svelte +5 -3
- package/dist/components/fields/LiteNumberField.svelte.d.ts +2 -0
- package/dist/components/fields/LiteRichTextField.svelte +49 -12
- package/dist/components/fields/LiteRichTextField.svelte.d.ts +3 -0
- package/dist/components/fields/LiteSelectField.svelte +5 -3
- package/dist/components/fields/LiteSelectField.svelte.d.ts +2 -0
- package/dist/components/fields/LiteTagField.svelte +38 -15
- package/dist/components/fields/LiteTagField.svelte.d.ts +2 -0
- package/dist/components/fields/LiteTextField.svelte +26 -5
- package/dist/components/fields/LiteTextField.svelte.d.ts +2 -0
- package/dist/components/fields/LiteTreeSelect.svelte +5 -2
- package/dist/components/fields/LiteTreeSelect.svelte.d.ts +2 -0
- package/dist/components/fields/LiteUrlField.svelte +5 -3
- package/dist/components/fields/LiteUrlField.svelte.d.ts +2 -0
- package/dist/components/layout/LiteAuthenticated.svelte +2 -2
- package/dist/components/layout/LiteCanAccess.svelte +1 -1
- package/dist/components/layout/LiteErrorComponent.svelte +4 -4
- package/dist/components/layout/LiteHeader.svelte +2 -2
- package/dist/components/layout/LiteSidebar.svelte +6 -3
- package/dist/components/layout/LiteSidebar.svelte.d.ts +2 -0
- package/dist/components/pages/LiteCreatePage.svelte +4 -1
- package/dist/components/pages/LiteCreatePage.svelte.d.ts +2 -0
- package/dist/components/pages/LiteEditPage.svelte +4 -1
- package/dist/components/pages/LiteEditPage.svelte.d.ts +2 -0
- package/dist/components/pages/LiteForgotPasswordPage.svelte +7 -7
- package/dist/components/pages/LiteListPage.svelte +6 -3
- package/dist/components/pages/LiteListPage.svelte.d.ts +2 -0
- package/dist/components/pages/LiteProfilePage.svelte +2 -2
- package/dist/components/pages/LiteRegisterPage.svelte +6 -6
- package/dist/components/pages/LiteShowPage.svelte +6 -3
- package/dist/components/pages/LiteShowPage.svelte.d.ts +2 -0
- package/dist/components/pages/LiteUpdatePasswordPage.svelte +4 -4
- package/dist/components/widgets/LiteAnomalyBadge.svelte +6 -3
- package/dist/components/widgets/LiteAnomalyBadge.svelte.d.ts +2 -0
- package/dist/components/widgets/LiteAreaChart.svelte +20 -0
- package/dist/components/widgets/LiteAreaChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteBarChart.svelte +6 -6
- package/dist/components/widgets/LiteChartSvg.svelte +102 -0
- package/dist/components/widgets/LiteChartSvg.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteChartTable.svelte +44 -0
- package/dist/components/widgets/LiteChartTable.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteDonutChart.svelte +20 -0
- package/dist/components/widgets/LiteDonutChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteFunnelChart.svelte +20 -0
- package/dist/components/widgets/LiteFunnelChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteGaugeChart.svelte +20 -0
- package/dist/components/widgets/LiteGaugeChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteHeatmapChart.svelte +20 -0
- package/dist/components/widgets/LiteHeatmapChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteInsightCard.svelte +35 -13
- package/dist/components/widgets/LiteInsightCard.svelte.d.ts +7 -4
- package/dist/components/widgets/LiteLineChart.svelte +13 -10
- package/dist/components/widgets/LiteLineChart.svelte.d.ts +0 -5
- package/dist/components/widgets/LitePieChart.svelte +11 -9
- package/dist/components/widgets/LitePieChart.svelte.d.ts +0 -5
- package/dist/components/widgets/LiteRadarChart.svelte +20 -0
- package/dist/components/widgets/LiteRadarChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteRoseChart.svelte +20 -0
- package/dist/components/widgets/LiteRoseChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteScatterChart.svelte +20 -0
- package/dist/components/widgets/LiteScatterChart.svelte.d.ts +10 -0
- package/dist/components/widgets/LiteWaterfallChart.svelte +20 -0
- package/dist/components/widgets/LiteWaterfallChart.svelte.d.ts +10 -0
- package/dist/components/widgets/chart-geometry.d.ts +65 -0
- package/dist/components/widgets/chart-geometry.js +229 -0
- package/dist/components/widgets/index.d.ts +10 -0
- package/dist/components/widgets/index.js +10 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.js +47 -0
- package/dist/lite-code-theme.css +139 -0
- package/dist/lite.css +234 -127
- package/dist/rich-content.d.ts +47 -0
- package/dist/rich-content.js +498 -0
- package/dist/schema-generator.js +3 -1
- package/dist/server-adapter.js +6 -11
- package/dist/value-normalization.d.ts +4 -0
- package/dist/value-normalization.js +13 -0
- package/package.json +18 -4
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface Props {
|
|
3
|
+
src?: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
width?: string | number;
|
|
6
|
+
height?: string | number;
|
|
7
|
+
fit?: 'cover' | 'contain' | 'fill' | 'none';
|
|
8
|
+
rounded?: boolean;
|
|
9
|
+
fallback?: string;
|
|
10
|
+
href?: string;
|
|
11
|
+
caption?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let {
|
|
15
|
+
src,
|
|
16
|
+
alt = '',
|
|
17
|
+
width,
|
|
18
|
+
height,
|
|
19
|
+
fit = 'cover',
|
|
20
|
+
rounded = false,
|
|
21
|
+
fallback = 'Image unavailable',
|
|
22
|
+
href,
|
|
23
|
+
caption,
|
|
24
|
+
}: Props = $props();
|
|
25
|
+
|
|
26
|
+
const sizeStyle = $derived([
|
|
27
|
+
width === undefined ? undefined : `width:${typeof width === 'number' ? `${width}px` : width}`,
|
|
28
|
+
height === undefined ? undefined : `height:${typeof height === 'number' ? `${height}px` : height}`,
|
|
29
|
+
].filter(Boolean).join(';'));
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<figure class="lite-image" class:lite-image-rounded={rounded} style={sizeStyle || undefined}>
|
|
33
|
+
{#if src}
|
|
34
|
+
{#if href}
|
|
35
|
+
<a href={href} aria-label={alt ? `Open ${alt}` : 'Open image'}>
|
|
36
|
+
<img {src} {alt} loading="lazy" decoding="async" style={`object-fit:${fit}`} />
|
|
37
|
+
</a>
|
|
38
|
+
{:else}
|
|
39
|
+
<img {src} {alt} loading="lazy" decoding="async" style={`object-fit:${fit}`} />
|
|
40
|
+
{/if}
|
|
41
|
+
{:else}
|
|
42
|
+
<span class="lite-image-fallback" role="img" aria-label={fallback}>{fallback}</span>
|
|
43
|
+
{/if}
|
|
44
|
+
{#if caption}<figcaption>{caption}</figcaption>{/if}
|
|
45
|
+
</figure>
|
|
46
|
+
|
|
47
|
+
<style>
|
|
48
|
+
.lite-image { display: block; place-items: center; min-width: 0; max-width: 100%; margin: 0; overflow: hidden; border: 1px solid #E5E6EB; background: #F2F3F5; color: #4E5969; }
|
|
49
|
+
.lite-image-rounded { border-radius: 8px; }
|
|
50
|
+
.lite-image a { display: block; max-width: 100%; }
|
|
51
|
+
.lite-image img { display: block; max-width: 100%; height: auto; }
|
|
52
|
+
.lite-image-fallback { display: inline-block; padding: 24px 16px; font-size: 13px; text-align: center; }
|
|
53
|
+
.lite-image figcaption { width: 100%; padding: 8px 12px; border-top: 1px solid #E5E6EB; background: #fff; color: #4E5969; font-size: 12px; }
|
|
54
|
+
</style>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
src?: string;
|
|
3
|
+
alt?: string;
|
|
4
|
+
width?: string | number;
|
|
5
|
+
height?: string | number;
|
|
6
|
+
fit?: 'cover' | 'contain' | 'fill' | 'none';
|
|
7
|
+
rounded?: boolean;
|
|
8
|
+
fallback?: string;
|
|
9
|
+
href?: string;
|
|
10
|
+
caption?: string;
|
|
11
|
+
}
|
|
12
|
+
declare const LiteImage: import("svelte").Component<Props, {}, "">;
|
|
13
|
+
type LiteImage = ReturnType<typeof LiteImage>;
|
|
14
|
+
export default LiteImage;
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
aspectRatio?: number;
|
|
5
5
|
action?: string;
|
|
6
6
|
method?: 'get' | 'post' | 'dialog' | 'GET' | 'POST' | 'DIALOG' | null;
|
|
7
|
+
/** Caller class merged with the built-in class list. */
|
|
8
|
+
class?: string;
|
|
7
9
|
}
|
|
8
10
|
|
|
9
11
|
let {
|
|
@@ -11,10 +13,11 @@
|
|
|
11
13
|
aspectRatio = 1,
|
|
12
14
|
action = '',
|
|
13
15
|
method = 'POST',
|
|
16
|
+
class: className = ''
|
|
14
17
|
}: Props = $props();
|
|
15
18
|
</script>
|
|
16
19
|
|
|
17
|
-
<div class="lite-cropper-card">
|
|
20
|
+
<div class="lite-cropper-card {className}">
|
|
18
21
|
<div class="lite-cropper-header">
|
|
19
22
|
<strong>Image Crop (Aspect Ratio: {aspectRatio}:1)</strong>
|
|
20
23
|
</div>
|
|
@@ -48,7 +51,7 @@
|
|
|
48
51
|
<style>
|
|
49
52
|
.lite-cropper-card {
|
|
50
53
|
background: #ffffff;
|
|
51
|
-
border: 1px solid #
|
|
54
|
+
border: 1px solid #E5E6EB;
|
|
52
55
|
border-radius: 6px;
|
|
53
56
|
padding: 16px;
|
|
54
57
|
margin-bottom: 16px;
|
|
@@ -56,13 +59,13 @@
|
|
|
56
59
|
}
|
|
57
60
|
.lite-cropper-header {
|
|
58
61
|
padding-bottom: 8px;
|
|
59
|
-
border-bottom: 1px solid #
|
|
62
|
+
border-bottom: 1px solid #E5E6EB;
|
|
60
63
|
margin-bottom: 12px;
|
|
61
64
|
font-size: 13px;
|
|
62
65
|
}
|
|
63
66
|
.lite-cropper-preview {
|
|
64
67
|
text-align: center;
|
|
65
|
-
background: #
|
|
68
|
+
background: #F2F3F5;
|
|
66
69
|
padding: 12px;
|
|
67
70
|
border-radius: 4px;
|
|
68
71
|
margin-bottom: 12px;
|
|
@@ -3,6 +3,8 @@ interface Props {
|
|
|
3
3
|
aspectRatio?: number;
|
|
4
4
|
action?: string;
|
|
5
5
|
method?: 'get' | 'post' | 'dialog' | 'GET' | 'POST' | 'DIALOG' | null;
|
|
6
|
+
/** Caller class merged with the built-in class list. */
|
|
7
|
+
class?: string;
|
|
6
8
|
}
|
|
7
9
|
declare const LiteImageCropper: import("svelte").Component<Props, {}, "">;
|
|
8
10
|
type LiteImageCropper = ReturnType<typeof LiteImageCropper>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface PreviewImage {
|
|
3
|
+
src: string;
|
|
4
|
+
alt: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
src: string;
|
|
9
|
+
alt?: string;
|
|
10
|
+
images?: PreviewImage[];
|
|
11
|
+
downloadLabel?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
let { src, alt = '', images = [], downloadLabel = 'Download image' }: Props = $props();
|
|
15
|
+
const gallery = $derived(images.length > 0 ? images : [{ src, alt }]);
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<div class="lite-image-preview" role="group" aria-label="Image gallery">
|
|
19
|
+
{#each gallery as image, index (image.src)}
|
|
20
|
+
<a class="lite-image-preview__item" href={image.src} target="_blank" rel="noreferrer" aria-label={`Open ${image.alt || alt || `image ${index + 1}`}`}>
|
|
21
|
+
<img src={image.src} alt={image.alt || alt} loading="lazy" decoding="async" />
|
|
22
|
+
<span>{image.alt || alt || `Image ${index + 1}`}</span>
|
|
23
|
+
</a>
|
|
24
|
+
{/each}
|
|
25
|
+
<a class="lite-btn lite-btn-sm" href={src} download={alt || 'image'}>{downloadLabel}</a>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<style>
|
|
29
|
+
.lite-image-preview { display: flex; flex-wrap: wrap; align-items: flex-start; }
|
|
30
|
+
.lite-image-preview__item { display: block; width: 160px; max-width: 100%; overflow: hidden; border: 1px solid #E5E6EB; border-radius: 8px; background: #fff; color: #1D2129; text-decoration: none; }
|
|
31
|
+
.lite-image-preview__item:hover { border-color: #165DFF; text-decoration: none; }
|
|
32
|
+
.lite-image-preview__item img { display: block; width: 100%; height: 110px; object-fit: cover; }
|
|
33
|
+
.lite-image-preview__item span { display: block; padding: 6px 8px; overflow: hidden; color: #4E5969; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
|
|
34
|
+
|
|
35
|
+
.lite-image-preview > * { margin: 0 12px 12px 0; }
|
|
36
|
+
</style>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface PreviewImage {
|
|
2
|
+
src: string;
|
|
3
|
+
alt: string;
|
|
4
|
+
}
|
|
5
|
+
interface Props {
|
|
6
|
+
src: string;
|
|
7
|
+
alt?: string;
|
|
8
|
+
images?: PreviewImage[];
|
|
9
|
+
downloadLabel?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const LiteImagePreview: import("svelte").Component<Props, {}, "">;
|
|
12
|
+
type LiteImagePreview = ReturnType<typeof LiteImagePreview>;
|
|
13
|
+
export default LiteImagePreview;
|
|
@@ -51,14 +51,14 @@
|
|
|
51
51
|
<style>
|
|
52
52
|
.lite-import-wizard {
|
|
53
53
|
padding: 12px;
|
|
54
|
-
background: #
|
|
55
|
-
border: 1px solid #
|
|
54
|
+
background: #F7F8FA;
|
|
55
|
+
border: 1px solid #E5E6EB;
|
|
56
56
|
border-radius: 6px;
|
|
57
57
|
margin-bottom: 16px;
|
|
58
58
|
}
|
|
59
59
|
.lite-import-title {
|
|
60
60
|
font-size: 13px;
|
|
61
|
-
color: #
|
|
61
|
+
color: #1D2129;
|
|
62
62
|
margin-bottom: 8px;
|
|
63
63
|
}
|
|
64
64
|
.lite-file-row {
|
|
@@ -67,13 +67,13 @@
|
|
|
67
67
|
.lite-label {
|
|
68
68
|
display: block;
|
|
69
69
|
font-size: 12px;
|
|
70
|
-
color: #
|
|
70
|
+
color: #4E5969;
|
|
71
71
|
margin-bottom: 4px;
|
|
72
72
|
}
|
|
73
73
|
.lite-field-mapping-hints {
|
|
74
74
|
margin-bottom: 12px;
|
|
75
75
|
font-size: 11px;
|
|
76
|
-
color: #
|
|
76
|
+
color: #4E5969;
|
|
77
77
|
}
|
|
78
78
|
.lite-hint-title {
|
|
79
79
|
display: block;
|
|
@@ -86,8 +86,8 @@
|
|
|
86
86
|
}
|
|
87
87
|
.lite-badge {
|
|
88
88
|
display: inline-block;
|
|
89
|
-
background: #
|
|
90
|
-
color: #
|
|
89
|
+
background: #E5E6EB;
|
|
90
|
+
color: #1D2129;
|
|
91
91
|
padding: 2px 6px;
|
|
92
92
|
border-radius: 3px;
|
|
93
93
|
margin-right: 6px;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
interface ListItem {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
href?: string;
|
|
7
|
+
meta?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface Props {
|
|
11
|
+
items: ListItem[];
|
|
12
|
+
title?: string;
|
|
13
|
+
emptyText?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
let { items, title, emptyText = 'No items' }: Props = $props();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<section class="lite-item-list lite-card">
|
|
20
|
+
{#if title}<h2>{title}</h2>{/if}
|
|
21
|
+
{#if items.length === 0}
|
|
22
|
+
<p class="lite-muted">{emptyText}</p>
|
|
23
|
+
{:else}
|
|
24
|
+
<ul>
|
|
25
|
+
{#each items as item (item.id)}
|
|
26
|
+
<li>
|
|
27
|
+
<div>
|
|
28
|
+
{#if item.href}<a href={item.href}>{item.title}</a>{:else}<strong>{item.title}</strong>{/if}
|
|
29
|
+
{#if item.description}<p>{item.description}</p>{/if}
|
|
30
|
+
</div>
|
|
31
|
+
{#if item.meta}<span>{item.meta}</span>{/if}
|
|
32
|
+
</li>
|
|
33
|
+
{/each}
|
|
34
|
+
</ul>
|
|
35
|
+
{/if}
|
|
36
|
+
</section>
|
|
37
|
+
|
|
38
|
+
<style>
|
|
39
|
+
.lite-item-list { padding: 0; overflow: hidden; }
|
|
40
|
+
.lite-item-list h2 { margin: 0; padding: 12px 16px; border-bottom: 1px solid #E5E6EB; color: #1D2129; font-size: 14px; }
|
|
41
|
+
.lite-item-list > p { margin: 0; padding: 16px; }
|
|
42
|
+
.lite-item-list ul { margin: 0; padding: 0; list-style: none; }
|
|
43
|
+
.lite-item-list li { display: flex; align-items: flex-start; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid #F2F3F5; }
|
|
44
|
+
.lite-item-list li:last-child { border-bottom: 0; }
|
|
45
|
+
.lite-item-list a, .lite-item-list strong { color: #1D2129; font-size: 13px; }
|
|
46
|
+
.lite-item-list p { margin: 4px 0 0; color: #4E5969; font-size: 12px; line-height: 1.5; }
|
|
47
|
+
.lite-item-list li > span { color: #86909C; font-size: 12px; white-space: nowrap; }
|
|
48
|
+
|
|
49
|
+
.lite-item-list li > * + * { margin-left: 12px; }
|
|
50
|
+
</style>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface ListItem {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
href?: string;
|
|
6
|
+
meta?: string;
|
|
7
|
+
}
|
|
8
|
+
interface Props {
|
|
9
|
+
items: ListItem[];
|
|
10
|
+
title?: string;
|
|
11
|
+
emptyText?: string;
|
|
12
|
+
}
|
|
13
|
+
declare const LiteItemList: import("svelte").Component<Props, {}, "">;
|
|
14
|
+
type LiteItemList = ReturnType<typeof LiteItemList>;
|
|
15
|
+
export default LiteItemList;
|
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
action?: string;
|
|
10
10
|
method?: 'get' | 'post' | 'dialog' | 'GET' | 'POST' | 'DIALOG' | null;
|
|
11
11
|
submitText?: string;
|
|
12
|
+
/** Caller class merged with the built-in class list. */
|
|
13
|
+
class?: string;
|
|
12
14
|
}
|
|
13
15
|
|
|
14
16
|
let {
|
|
@@ -17,6 +19,7 @@
|
|
|
17
19
|
action = '',
|
|
18
20
|
method = 'POST',
|
|
19
21
|
submitText = 'Submit Form',
|
|
22
|
+
class: className = ''
|
|
20
23
|
}: Props = $props();
|
|
21
24
|
const instanceId = $props.id();
|
|
22
25
|
const i18n = useTranslation();
|
|
@@ -119,7 +122,7 @@
|
|
|
119
122
|
}
|
|
120
123
|
</script>
|
|
121
124
|
|
|
122
|
-
<div class="lite-schema-form-card">
|
|
125
|
+
<div class="lite-schema-form-card {className}">
|
|
123
126
|
{#if schema.title}<div class="lite-schema-form-header"><strong>{schema.title}</strong></div>{/if}
|
|
124
127
|
{#if schema.description}<p class="lite-schema-description">{schema.description}</p>{/if}
|
|
125
128
|
|
|
@@ -201,14 +204,14 @@
|
|
|
201
204
|
</div>
|
|
202
205
|
|
|
203
206
|
<style>
|
|
204
|
-
.lite-schema-form-card { background: #fff; border: 1px solid #
|
|
205
|
-
.lite-schema-form-header { padding-bottom: 8px; border-bottom: 1px solid #
|
|
206
|
-
.lite-schema-fieldset { border: 1px solid #
|
|
207
|
+
.lite-schema-form-card { background: #fff; border: 1px solid #E5E6EB; border-radius: 6px; padding: 16px; margin-bottom: 16px; }
|
|
208
|
+
.lite-schema-form-header { padding-bottom: 8px; border-bottom: 1px solid #E5E6EB; margin-bottom: 12px; font-size: 14px; }
|
|
209
|
+
.lite-schema-fieldset { border: 1px solid #E5E6EB; border-radius: 4px; padding: 12px; margin: 0 0 12px; }
|
|
207
210
|
.lite-schema-field { margin-bottom: 12px; }
|
|
208
211
|
.lite-schema-fieldset > .lite-schema-field:last-child { margin-bottom: 0; }
|
|
209
|
-
.lite-schema-footer { display: flex; justify-content: flex-end; padding-top: 12px; border-top: 1px solid #
|
|
210
|
-
.lite-label { display: block; font-size: 12px; color: #
|
|
211
|
-
.lite-schema-description, .lite-hint { font-size: 12px; color: #
|
|
212
|
+
.lite-schema-footer { display: flex; justify-content: flex-end; padding-top: 12px; border-top: 1px solid #E5E6EB; }
|
|
213
|
+
.lite-label { display: block; font-size: 12px; color: #4E5969; margin-bottom: 4px; }
|
|
214
|
+
.lite-schema-description, .lite-hint { font-size: 12px; color: #4E5969; }
|
|
212
215
|
.lite-input, .lite-select { width: 100%; }
|
|
213
216
|
.lite-btn { margin-right: 6px; }
|
|
214
217
|
</style>
|
|
@@ -5,6 +5,8 @@ interface Props {
|
|
|
5
5
|
action?: string;
|
|
6
6
|
method?: 'get' | 'post' | 'dialog' | 'GET' | 'POST' | 'DIALOG' | null;
|
|
7
7
|
submitText?: string;
|
|
8
|
+
/** Caller class merged with the built-in class list. */
|
|
9
|
+
class?: string;
|
|
8
10
|
}
|
|
9
11
|
declare const LiteJsonSchemaForm: import("svelte").Component<Props, {}, "value">;
|
|
10
12
|
type LiteJsonSchemaForm = ReturnType<typeof LiteJsonSchemaForm>;
|
|
@@ -128,8 +128,8 @@
|
|
|
128
128
|
vertical-align: top;
|
|
129
129
|
width: 260px;
|
|
130
130
|
margin-right: 12px;
|
|
131
|
-
background-color: #
|
|
132
|
-
border: 1px solid #
|
|
131
|
+
background-color: #F7F8FA;
|
|
132
|
+
border: 1px solid #E5E6EB;
|
|
133
133
|
border-radius: 6px;
|
|
134
134
|
padding: 10px;
|
|
135
135
|
white-space: normal;
|
|
@@ -138,60 +138,60 @@
|
|
|
138
138
|
.sv-lite-column-header {
|
|
139
139
|
font-weight: bold;
|
|
140
140
|
padding-bottom: 8px;
|
|
141
|
-
border-bottom: 1px solid #
|
|
142
|
-
color: #
|
|
141
|
+
border-bottom: 1px solid #E5E6EB;
|
|
142
|
+
color: #1D2129;
|
|
143
143
|
margin-bottom: 8px;
|
|
144
144
|
}
|
|
145
145
|
.sv-lite-column-count {
|
|
146
|
-
color: #
|
|
146
|
+
color: #4E5969;
|
|
147
147
|
font-weight: normal;
|
|
148
148
|
font-size: 11px;
|
|
149
149
|
margin-left: 4px;
|
|
150
150
|
}
|
|
151
151
|
.sv-lite-kanban-card {
|
|
152
152
|
background-color: #ffffff;
|
|
153
|
-
border: 1px solid #
|
|
153
|
+
border: 1px solid #E5E6EB;
|
|
154
154
|
border-radius: 4px;
|
|
155
155
|
padding: 8px;
|
|
156
156
|
margin-bottom: 8px;
|
|
157
157
|
}
|
|
158
158
|
.sv-lite-card-title {
|
|
159
159
|
font-weight: 600;
|
|
160
|
-
color: #
|
|
160
|
+
color: #1D2129;
|
|
161
161
|
margin-bottom: 4px;
|
|
162
162
|
}
|
|
163
163
|
.sv-lite-card-desc {
|
|
164
|
-
color: #
|
|
164
|
+
color: #4E5969;
|
|
165
165
|
font-size: 11px;
|
|
166
166
|
margin-bottom: 6px;
|
|
167
167
|
}
|
|
168
168
|
.sv-lite-card-meta {
|
|
169
169
|
padding-top: 4px;
|
|
170
|
-
border-top: 1px solid #
|
|
170
|
+
border-top: 1px solid #F2F3F5;
|
|
171
171
|
}
|
|
172
172
|
.sv-lite-priority-badge {
|
|
173
173
|
display: inline-block;
|
|
174
174
|
padding: 1px 4px;
|
|
175
175
|
font-size: 10px;
|
|
176
176
|
border-radius: 2px;
|
|
177
|
-
text-transform:
|
|
177
|
+
text-transform: none;
|
|
178
178
|
margin-right: 4px;
|
|
179
179
|
}
|
|
180
180
|
.sv-lite-urgent, .sv-lite-high {
|
|
181
|
-
background-color: #
|
|
182
|
-
color: #
|
|
181
|
+
background-color: #FFECE8;
|
|
182
|
+
color: #CB272D;
|
|
183
183
|
}
|
|
184
184
|
.sv-lite-medium {
|
|
185
|
-
background-color: #
|
|
186
|
-
color: #
|
|
185
|
+
background-color: #E8F3FF;
|
|
186
|
+
color: #0E42D2;
|
|
187
187
|
}
|
|
188
188
|
.sv-lite-low {
|
|
189
|
-
background-color: #
|
|
190
|
-
color: #
|
|
189
|
+
background-color: #F2F3F5;
|
|
190
|
+
color: #4E5969;
|
|
191
191
|
}
|
|
192
192
|
.sv-lite-tag-badge {
|
|
193
193
|
display: inline-block;
|
|
194
|
-
color: #
|
|
194
|
+
color: #4E5969;
|
|
195
195
|
font-size: 10px;
|
|
196
196
|
margin-right: 4px;
|
|
197
197
|
}
|
|
@@ -202,13 +202,13 @@
|
|
|
202
202
|
width: 170px;
|
|
203
203
|
padding: 4px 6px;
|
|
204
204
|
font-size: 11px;
|
|
205
|
-
border: 1px solid #
|
|
205
|
+
border: 1px solid #E5E6EB;
|
|
206
206
|
border-radius: 3px;
|
|
207
207
|
}
|
|
208
208
|
.sv-lite-card-btn {
|
|
209
209
|
padding: 4px 8px;
|
|
210
210
|
font-size: 11px;
|
|
211
|
-
background-color: #
|
|
211
|
+
background-color: #165DFF;
|
|
212
212
|
color: #ffffff;
|
|
213
213
|
border: none;
|
|
214
214
|
border-radius: 3px;
|
|
@@ -19,6 +19,14 @@
|
|
|
19
19
|
/** Optional server-computed permission check for menu metadata. */
|
|
20
20
|
canAccess?: (resource: string, action: string) => boolean;
|
|
21
21
|
children: Snippet;
|
|
22
|
+
/** Caller class for the layout wrapper. */
|
|
23
|
+
class?: string;
|
|
24
|
+
/** Caller class for the desktop sidebar. */
|
|
25
|
+
classSidebar?: string;
|
|
26
|
+
/** Caller class for the mobile navigation. */
|
|
27
|
+
classMobileNav?: string;
|
|
28
|
+
/** Caller class for the main region. */
|
|
29
|
+
classMain?: string;
|
|
22
30
|
}
|
|
23
31
|
|
|
24
32
|
let {
|
|
@@ -30,6 +38,10 @@
|
|
|
30
38
|
menu,
|
|
31
39
|
canAccess,
|
|
32
40
|
children,
|
|
41
|
+
class: className = '',
|
|
42
|
+
classSidebar = '',
|
|
43
|
+
classMobileNav = '',
|
|
44
|
+
classMain = '',
|
|
33
45
|
}: Props = $props();
|
|
34
46
|
|
|
35
47
|
const menuResources = $derived(filterVisibleResources(resources, canAccess));
|
|
@@ -63,9 +75,9 @@
|
|
|
63
75
|
}
|
|
64
76
|
</script>
|
|
65
77
|
|
|
66
|
-
<div class=
|
|
78
|
+
<div class={`lite-wrapper ${className}`.trim()}>
|
|
67
79
|
<!-- Sidebar -->
|
|
68
|
-
<nav class=
|
|
80
|
+
<nav class={`lite-sidebar ${classSidebar}`.trim()}>
|
|
69
81
|
<div class="lite-sidebar-brand">{brandName}</div>
|
|
70
82
|
{#if hasCustomMenu}
|
|
71
83
|
<LiteMenuList items={visibleMenu} {basePath} {currentResource} />
|
|
@@ -80,16 +92,16 @@
|
|
|
80
92
|
{/each}
|
|
81
93
|
{/if}
|
|
82
94
|
{#if userName}
|
|
83
|
-
<div style="position:absolute;bottom:0;left:0;right:0;padding:12px 16px;border-top:1px solid #
|
|
95
|
+
<div style="position:absolute;bottom:0;left:0;right:0;padding:12px 16px;border-top:1px solid #1D2129;font-size:12px;color:#86909C;">
|
|
84
96
|
{userName}
|
|
85
97
|
<form method="POST" action={`${basePath}/login?/logout`} style="display:inline;margin-left:8px;">
|
|
86
|
-
<button type="submit" class="lite-btn lite-btn-sm" style="color:#
|
|
98
|
+
<button type="submit" class="lite-btn lite-btn-sm" style="color:#86909C;border-color:#4E5969;background:transparent;">Logout</button>
|
|
87
99
|
</form>
|
|
88
100
|
</div>
|
|
89
101
|
{/if}
|
|
90
102
|
</nav>
|
|
91
103
|
|
|
92
|
-
<nav class=
|
|
104
|
+
<nav class={`lite-mobile-nav ${classMobileNav}`.trim()} aria-label="Mobile navigation">
|
|
93
105
|
<div class="lite-mobile-nav-brand">{brandName}</div>
|
|
94
106
|
<div class="lite-mobile-nav-links">
|
|
95
107
|
{#each mobileItems as item (item.name)}
|
|
@@ -112,7 +124,7 @@
|
|
|
112
124
|
</nav>
|
|
113
125
|
|
|
114
126
|
<!-- Main Content -->
|
|
115
|
-
<main class=
|
|
127
|
+
<main class={`lite-main ${classMain}`.trim()}>
|
|
116
128
|
{@render children()}
|
|
117
129
|
</main>
|
|
118
130
|
</div>
|
|
@@ -15,6 +15,14 @@ interface Props {
|
|
|
15
15
|
/** Optional server-computed permission check for menu metadata. */
|
|
16
16
|
canAccess?: (resource: string, action: string) => boolean;
|
|
17
17
|
children: Snippet;
|
|
18
|
+
/** Caller class for the layout wrapper. */
|
|
19
|
+
class?: string;
|
|
20
|
+
/** Caller class for the desktop sidebar. */
|
|
21
|
+
classSidebar?: string;
|
|
22
|
+
/** Caller class for the mobile navigation. */
|
|
23
|
+
classMobileNav?: string;
|
|
24
|
+
/** Caller class for the main region. */
|
|
25
|
+
classMain?: string;
|
|
18
26
|
}
|
|
19
27
|
declare const LiteLayout: import("svelte").Component<Props, {}, "">;
|
|
20
28
|
type LiteLayout = ReturnType<typeof LiteLayout>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
href: string;
|
|
6
|
+
external?: boolean;
|
|
7
|
+
underline?: boolean;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
children: Snippet;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
let { href, external = false, underline = false, disabled = false, children }: Props = $props();
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
{#if disabled}
|
|
16
|
+
<span class="lite-link" aria-disabled="true">{@render children()}</span>
|
|
17
|
+
{:else}
|
|
18
|
+
<a
|
|
19
|
+
class="lite-link"
|
|
20
|
+
class:lite-link-underline={underline}
|
|
21
|
+
{href}
|
|
22
|
+
target={external ? '_blank' : undefined}
|
|
23
|
+
rel={external ? 'noreferrer' : undefined}
|
|
24
|
+
>{@render children()}</a>
|
|
25
|
+
{/if}
|
|
26
|
+
|
|
27
|
+
<style>
|
|
28
|
+
.lite-link { color: #165DFF; text-decoration: none; }
|
|
29
|
+
.lite-link:hover { text-decoration: underline; }
|
|
30
|
+
.lite-link-underline { text-decoration: underline; }
|
|
31
|
+
.lite-link[aria-disabled='true'] { color: #C9CDD4; cursor: not-allowed; }
|
|
32
|
+
</style>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
interface Props {
|
|
3
|
+
href: string;
|
|
4
|
+
external?: boolean;
|
|
5
|
+
underline?: boolean;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
children: Snippet;
|
|
8
|
+
}
|
|
9
|
+
declare const LiteLink: import("svelte").Component<Props, {}, "">;
|
|
10
|
+
type LiteLink = ReturnType<typeof LiteLink>;
|
|
11
|
+
export default LiteLink;
|
|
@@ -9,12 +9,19 @@
|
|
|
9
9
|
error?: string;
|
|
10
10
|
brandName?: string;
|
|
11
11
|
action?: string;
|
|
12
|
+
/** Caller class merged with the built-in class list. */
|
|
13
|
+
class?: string;
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
let {
|
|
16
|
+
let {
|
|
17
|
+
error,
|
|
18
|
+
brandName = 'Admin',
|
|
19
|
+
action = '?/login',
|
|
20
|
+
class: className = '',
|
|
21
|
+
}: Props = $props();
|
|
15
22
|
</script>
|
|
16
23
|
|
|
17
|
-
<div class="lite-login-wrapper">
|
|
24
|
+
<div class="lite-login-wrapper {className}">
|
|
18
25
|
<div class="lite-login-card">
|
|
19
26
|
<div class="lite-card">
|
|
20
27
|
<h2 style="text-align:center;margin:0 0 20px;font-size:20px;font-weight:600;">{brandName}</h2>
|
|
@@ -2,6 +2,8 @@ interface Props {
|
|
|
2
2
|
error?: string;
|
|
3
3
|
brandName?: string;
|
|
4
4
|
action?: string;
|
|
5
|
+
/** Caller class merged with the built-in class list. */
|
|
6
|
+
class?: string;
|
|
5
7
|
}
|
|
6
8
|
declare const LiteLogin: import("svelte").Component<Props, {}, "">;
|
|
7
9
|
type LiteLogin = ReturnType<typeof LiteLogin>;
|