@happyvertical/smrt-svelte 0.55.16 → 0.55.18
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 +5 -3
- package/agents/cookbook-shell.md +7 -1
- package/agents/overview-surfaces.md +5 -0
- package/agents/workspace.md +155 -11
- package/dist/browser-ai/svelte/components/DownloadProgress.svelte +22 -19
- package/dist/browser-ai/svelte/components/ModelStatusControl.svelte +16 -13
- package/dist/browser-ai/svelte/components/STTTest.svelte +41 -38
- package/dist/browser-ai/svelte/components/VoiceInput.svelte +17 -14
- package/dist/components/activity/ActivityList.svelte +1 -1
- package/dist/components/app/AppShell.svelte +279 -14
- package/dist/components/app/AppShell.svelte.d.ts +63 -2
- package/dist/components/app/AppShell.svelte.d.ts.map +1 -1
- package/dist/components/app/DockToggles.svelte +53 -11
- package/dist/components/app/DockToggles.svelte.d.ts.map +1 -1
- package/dist/components/app/OwnerSetupForm.svelte +98 -34
- package/dist/components/app/OwnerSetupForm.svelte.d.ts +4 -0
- package/dist/components/app/OwnerSetupForm.svelte.d.ts.map +1 -1
- package/dist/components/app/PhoneTabBar.svelte +136 -0
- package/dist/components/app/PhoneTabBar.svelte.d.ts +22 -0
- package/dist/components/app/PhoneTabBar.svelte.d.ts.map +1 -0
- package/dist/components/app/ShellSettingsPage.svelte +17 -2
- package/dist/components/app/ShellSettingsPage.svelte.d.ts +11 -16
- package/dist/components/app/ShellSettingsPage.svelte.d.ts.map +1 -1
- package/dist/components/app/dock-toggle.d.ts +3 -2
- package/dist/components/app/dock-toggle.d.ts.map +1 -1
- package/dist/components/app/index.d.ts +2 -1
- package/dist/components/app/index.d.ts.map +1 -1
- package/dist/components/app/index.js +1 -0
- package/dist/components/app/owner-setup-types.d.ts +5 -0
- package/dist/components/app/owner-setup-types.d.ts.map +1 -1
- package/dist/components/app/phone-tabs.d.ts +41 -0
- package/dist/components/app/phone-tabs.d.ts.map +1 -0
- package/dist/components/app/phone-tabs.js +66 -0
- package/dist/components/app/slot-item.d.ts +16 -0
- package/dist/components/app/slot-item.d.ts.map +1 -1
- package/dist/components/app/view-transition.d.ts +43 -0
- package/dist/components/app/view-transition.d.ts.map +1 -0
- package/dist/components/app/view-transition.js +76 -0
- package/dist/components/audit/AuditList.svelte +4 -1
- package/dist/components/audit/RecordHistory.svelte +4 -1
- package/dist/components/board/Board.svelte +4 -1
- package/dist/components/command-palette/CommandPalette.svelte +4 -1
- package/dist/components/command-palette/CommandPalette.svelte.d.ts +2 -0
- package/dist/components/command-palette/CommandPalette.svelte.d.ts.map +1 -1
- package/dist/components/command-palette/CommandPaletteDialog.svelte +3 -0
- package/dist/components/command-palette/CommandPaletteTrigger.svelte +3 -0
- package/dist/components/cookbook/CookbookApp.svelte +2 -1
- package/dist/components/cookbook/CookbookApp.svelte.d.ts.map +1 -1
- package/dist/components/cookbook/CookbookSectionPage.svelte +4 -1
- package/dist/components/cookbook/brand-theme.d.ts.map +1 -1
- package/dist/components/cookbook/brand-theme.js +21 -2
- package/dist/components/cookbook/build.js +1 -1
- package/dist/components/cookbook/theme.d.ts.map +1 -1
- package/dist/components/cookbook/theme.js +9 -5
- package/dist/components/cookbook/types.d.ts +5 -1
- package/dist/components/cookbook/types.d.ts.map +1 -1
- package/dist/components/forms/AddressInput.svelte +25 -22
- package/dist/components/forms/CheckboxInput.svelte +8 -5
- package/dist/components/forms/DateRangeInput.svelte +41 -38
- package/dist/components/forms/DateTimeInput.svelte +29 -26
- package/dist/components/forms/FileUpload.svelte +24 -21
- package/dist/components/forms/Form.svelte +34 -31
- package/dist/components/forms/FormMicButton.svelte +10 -7
- package/dist/components/forms/FormScope.svelte +4 -1
- package/dist/components/forms/MeasurementInput.svelte +26 -23
- package/dist/components/forms/MoneyInput.svelte +18 -15
- package/dist/components/forms/NumberInput.svelte +17 -14
- package/dist/components/forms/PhoneInput.svelte +37 -34
- package/dist/components/forms/SearchInput.svelte +16 -13
- package/dist/components/forms/SelectInput.svelte +17 -14
- package/dist/components/forms/TextInput.svelte +19 -16
- package/dist/components/forms/TextareaInput.svelte +21 -18
- package/dist/components/import-export/ImportExport.svelte +4 -1
- package/dist/components/module/ModulePanel.svelte +14 -11
- package/dist/components/notifications/NotificationBell.svelte +4 -1
- package/dist/components/overview/OverviewAssistantUndo.svelte +4 -1
- package/dist/components/overview/OverviewGrid.svelte +11 -6
- package/dist/components/overview/OverviewGrid.svelte.d.ts.map +1 -1
- package/dist/components/overview/WidgetOptionsForm.svelte +3 -0
- package/dist/components/overview/widgets/ChartWidget.svelte +7 -4
- package/dist/components/overview/widgets/MetricWidget.svelte +5 -2
- package/dist/components/overview/widgets/NoteWidget.svelte +5 -2
- package/dist/components/overview/widgets/RecordListWidget.svelte +6 -3
- package/dist/components/overview/widgets/ShortcutsWidget.svelte +12 -6
- package/dist/components/overview/widgets/ShortcutsWidget.svelte.d.ts.map +1 -1
- package/dist/components/screens/DetailScreen.svelte +6 -3
- package/dist/components/screens/EditForm.svelte +6 -3
- package/dist/components/screens/ListScreen.svelte +4 -1
- package/dist/components/screens/RecipeScreens.svelte +1 -1
- package/dist/components/settings/SettingsCatalog.svelte +4 -1
- package/dist/components/sortable/Sortable.svelte +11 -5
- package/dist/components/sortable/Sortable.svelte.d.ts.map +1 -1
- package/dist/components/workspace/Breadcrumbs.svelte +4 -1
- package/dist/components/workspace/NavTree.svelte +4 -1
- package/dist/components/workspace/RoleShell.svelte +4 -1
- package/dist/components/workspace/WorkspaceShell.svelte +43 -40
- package/dist/components/workspace/admin-shell/ActivityItem.svelte +4 -1
- package/dist/components/workspace/admin-shell/ActivityList.svelte +5 -2
- package/dist/components/workspace/admin-shell/ActivityTicker.svelte +6 -3
- package/dist/components/workspace/admin-shell/ActivityToasts.svelte +9 -4
- package/dist/components/workspace/admin-shell/AdminShell.svelte +642 -126
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts +7 -1
- package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/AppScopePanel.svelte +4 -1
- package/dist/components/workspace/admin-shell/HotkeyInput.svelte +4 -1
- package/dist/components/workspace/admin-shell/PhoneBottomBar.svelte +58 -14
- package/dist/components/workspace/admin-shell/PhoneBottomBar.svelte.d.ts +9 -2
- package/dist/components/workspace/admin-shell/PhoneBottomBar.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/PhoneTopBar.svelte +15 -6
- package/dist/components/workspace/admin-shell/ShellBrand.svelte +3 -0
- package/dist/components/workspace/admin-shell/ShellCorner.svelte +4 -1
- package/dist/components/workspace/admin-shell/ShellIconButton.svelte +11 -7
- package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte +6 -3
- package/dist/components/workspace/admin-shell/ShellNavEditor.svelte +19 -13
- package/dist/components/workspace/admin-shell/ShellNavEditor.svelte.d.ts +1 -1
- package/dist/components/workspace/admin-shell/ShellNavEditor.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/ShellNavToggle.svelte +8 -5
- package/dist/components/workspace/admin-shell/ShellSectionIcon.svelte +4 -1
- package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte +24 -17
- package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/ShellSettingsPanel.svelte +236 -48
- package/dist/components/workspace/admin-shell/ShellSettingsPanel.svelte.d.ts +11 -1
- package/dist/components/workspace/admin-shell/ShellSettingsPanel.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/ShellTitle.svelte +4 -1
- package/dist/components/workspace/admin-shell/ShortcutsOverlay.svelte +4 -1
- package/dist/components/workspace/admin-shell/SystemScopePanel.svelte +4 -1
- package/dist/components/workspace/admin-shell/SystemStatusChips.svelte +5 -2
- package/dist/components/workspace/admin-shell/TenantNav.svelte +112 -43
- package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts +4 -3
- package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte +322 -55
- package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts +15 -2
- package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/motion.d.ts +19 -0
- package/dist/components/workspace/admin-shell/motion.d.ts.map +1 -0
- package/dist/components/workspace/admin-shell/motion.js +44 -0
- package/dist/components/workspace/admin-shell/settings.d.ts +1 -0
- package/dist/components/workspace/admin-shell/settings.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/settings.js +1 -1
- package/dist/components/workspace/admin-shell/shell-icons.d.ts +8 -0
- package/dist/components/workspace/admin-shell/shell-icons.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/shell-icons.js +8 -0
- package/dist/components/workspace/admin-shell/state.svelte.d.ts +6 -0
- package/dist/components/workspace/admin-shell/state.svelte.d.ts.map +1 -1
- package/dist/components/workspace/admin-shell/state.svelte.js +15 -0
- package/dist/components/workspace/admin-shell/types.d.ts +13 -3
- package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
- package/dist/components/workspace/tools-dock/ToolsDock.svelte +41 -38
- package/dist/i18n/strings.workspace.d.ts +37 -0
- package/dist/i18n/strings.workspace.d.ts.map +1 -1
- package/dist/i18n/strings.workspace.js +42 -2
- package/dist/mcp-apps/McpAppsBridge.svelte +4 -1
- package/package.json +14 -14
|
@@ -49,16 +49,18 @@ const cards = $derived.by((): Card[] => {
|
|
|
49
49
|
</script>
|
|
50
50
|
|
|
51
51
|
{#if cards.length === 0}
|
|
52
|
-
<p class="smrt-shortcuts__empty">{t(M['ui.overview.shortcuts.empty'])}</p>
|
|
52
|
+
<p class="smrt-shortcuts__empty" data-smrt-component="ShortcutsWidget">{t(M['ui.overview.shortcuts.empty'])}</p>
|
|
53
53
|
{:else}
|
|
54
|
-
<ul class="smrt-shortcuts">
|
|
54
|
+
<ul class="smrt-shortcuts" data-smrt-component="ShortcutsWidget">
|
|
55
55
|
{#each cards as card (card.id)}
|
|
56
56
|
<li class="smrt-shortcuts__card">
|
|
57
57
|
<a class="smrt-shortcuts__link" href={card.href}>
|
|
58
|
-
<span class="smrt-
|
|
59
|
-
<
|
|
58
|
+
<span class="smrt-shortcuts__heading">
|
|
59
|
+
<span class="smrt-shortcuts__icon">
|
|
60
|
+
<ShellSectionIcon name={card.icon} size={28} {iconComponent} />
|
|
61
|
+
</span>
|
|
62
|
+
<span class="smrt-shortcuts__title">{card.label}</span>
|
|
60
63
|
</span>
|
|
61
|
-
<span class="smrt-shortcuts__title">{card.label}</span>
|
|
62
64
|
{#if card.description}<span class="smrt-shortcuts__desc">{card.description}</span>{/if}
|
|
63
65
|
</a>
|
|
64
66
|
</li>
|
|
@@ -67,14 +69,18 @@ const cards = $derived.by((): Card[] => {
|
|
|
67
69
|
{/if}
|
|
68
70
|
|
|
69
71
|
<style>
|
|
72
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
73
|
+
@layer smrt.theme {
|
|
70
74
|
.smrt-shortcuts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(12rem, 100%), 1fr)); gap: var(--smrt-spacing-3); margin: 0; padding: 0; list-style: none; }
|
|
71
75
|
.smrt-shortcuts__card { position: relative; display: flex; min-inline-size: 0; border: 1px solid var(--smrt-color-outline-variant); border-radius: var(--smrt-radius-large, var(--smrt-radius-medium)); background: var(--smrt-color-surface); transition: background-color 120ms, border-color 120ms; }
|
|
72
76
|
.smrt-shortcuts__card:hover { background: var(--smrt-color-surface-container-high); border-color: var(--smrt-color-outline); }
|
|
73
77
|
.smrt-shortcuts__link { flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--smrt-spacing-2); padding: var(--smrt-spacing-3); color: var(--smrt-color-on-surface); text-decoration: none; }
|
|
74
78
|
.smrt-shortcuts__link:focus-visible { outline: 2px solid var(--smrt-color-primary); outline-offset: 2px; border-radius: inherit; }
|
|
75
|
-
.smrt-
|
|
79
|
+
.smrt-shortcuts__heading { display: flex; align-items: center; gap: var(--smrt-spacing-2); min-inline-size: 0; }
|
|
80
|
+
.smrt-shortcuts__icon { display: inline-grid; place-items: center; flex: 0 0 28px; inline-size: 28px; block-size: 28px; color: var(--smrt-color-primary); }
|
|
76
81
|
.smrt-shortcuts__icon :global(.smrt-shell-section-icon) { inline-size: 28px; block-size: 28px; }
|
|
77
82
|
.smrt-shortcuts__title { font-weight: var(--smrt-typography-weight-medium, 500); overflow-wrap: anywhere; }
|
|
78
83
|
.smrt-shortcuts__desc { display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--smrt-color-on-surface-variant); font-size: var(--smrt-typography-body-medium-size, 0.875rem); }
|
|
79
84
|
.smrt-shortcuts__empty { margin: 0; color: var(--smrt-color-on-surface-variant); }
|
|
85
|
+
}
|
|
80
86
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortcutsWidget.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/overview/widgets/ShortcutsWidget.svelte.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ShortcutsWidget.svelte.d.ts","sourceRoot":"","sources":["../../../../src/components/overview/widgets/ShortcutsWidget.svelte.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAY,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAuE/D,QAAA,MAAM,eAAe,+EAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
|
|
@@ -152,7 +152,7 @@ async function confirmDelete(): Promise<void> {
|
|
|
152
152
|
</PageHeader>
|
|
153
153
|
{/if}
|
|
154
154
|
|
|
155
|
-
<article class="smrt-detail-screen" aria-label={heading}>
|
|
155
|
+
<article class="smrt-detail-screen" aria-label={heading} data-smrt-component="DetailScreen">
|
|
156
156
|
{#if sourceError}
|
|
157
157
|
<Alert variant="error">{sourceError}</Alert>
|
|
158
158
|
{:else}
|
|
@@ -186,6 +186,8 @@ async function confirmDelete(): Promise<void> {
|
|
|
186
186
|
{/if}
|
|
187
187
|
|
|
188
188
|
<style>
|
|
189
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
190
|
+
@layer smrt.theme {
|
|
189
191
|
.smrt-detail-screen {
|
|
190
192
|
display: flex;
|
|
191
193
|
flex-direction: column;
|
|
@@ -202,7 +204,7 @@ async function confirmDelete(): Promise<void> {
|
|
|
202
204
|
margin: 0;
|
|
203
205
|
}
|
|
204
206
|
.smrt-detail-screen__field dt {
|
|
205
|
-
color: var(--smrt-color-on-surface-variant
|
|
207
|
+
color: var(--smrt-color-on-surface-variant);
|
|
206
208
|
font-size: var(--smrt-typography-body-medium-size, 0.875rem);
|
|
207
209
|
}
|
|
208
210
|
.smrt-detail-screen__field dd {
|
|
@@ -210,11 +212,12 @@ async function confirmDelete(): Promise<void> {
|
|
|
210
212
|
overflow-wrap: anywhere;
|
|
211
213
|
}
|
|
212
214
|
.smrt-detail-screen__empty {
|
|
213
|
-
color: var(--smrt-color-on-surface-variant
|
|
215
|
+
color: var(--smrt-color-on-surface-variant);
|
|
214
216
|
}
|
|
215
217
|
.smrt-detail-screen__block {
|
|
216
218
|
margin: 0;
|
|
217
219
|
white-space: pre-wrap;
|
|
218
220
|
font-family: inherit;
|
|
219
221
|
}
|
|
222
|
+
}
|
|
220
223
|
</style>
|
|
@@ -252,7 +252,7 @@ const formError = $derived(
|
|
|
252
252
|
<PageHeader title={heading} />
|
|
253
253
|
{/if}
|
|
254
254
|
|
|
255
|
-
<section class="smrt-edit-form" aria-label={heading}>
|
|
255
|
+
<section class="smrt-edit-form" aria-label={heading} data-smrt-component="EditForm">
|
|
256
256
|
{#if sourceError}
|
|
257
257
|
<Alert variant="error">{sourceError}</Alert>
|
|
258
258
|
{:else}
|
|
@@ -284,6 +284,8 @@ const formError = $derived(
|
|
|
284
284
|
</section>
|
|
285
285
|
|
|
286
286
|
<style>
|
|
287
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
288
|
+
@layer smrt.theme {
|
|
287
289
|
.smrt-edit-form {
|
|
288
290
|
max-width: 40rem;
|
|
289
291
|
}
|
|
@@ -305,9 +307,10 @@ const formError = $derived(
|
|
|
305
307
|
gap: var(--smrt-spacing-xs, 0.25rem);
|
|
306
308
|
}
|
|
307
309
|
.smrt-edit-form__hint {
|
|
308
|
-
color: var(--smrt-color-on-surface-variant
|
|
310
|
+
color: var(--smrt-color-on-surface-variant);
|
|
309
311
|
}
|
|
310
312
|
.smrt-edit-form__error {
|
|
311
|
-
color: var(--smrt-color-error
|
|
313
|
+
color: var(--smrt-color-error);
|
|
312
314
|
}
|
|
315
|
+
}
|
|
313
316
|
</style>
|
|
@@ -132,7 +132,7 @@ function matches(row: DisplayRow): boolean {
|
|
|
132
132
|
</PageHeader>
|
|
133
133
|
{/if}
|
|
134
134
|
|
|
135
|
-
<section class="smrt-list-screen" aria-label={heading}>
|
|
135
|
+
<section class="smrt-list-screen" aria-label={heading} data-smrt-component="ListScreen">
|
|
136
136
|
{#if sourceError}
|
|
137
137
|
<Alert variant="error">{sourceError}</Alert>
|
|
138
138
|
{:else}
|
|
@@ -180,6 +180,8 @@ function matches(row: DisplayRow): boolean {
|
|
|
180
180
|
</section>
|
|
181
181
|
|
|
182
182
|
<style>
|
|
183
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
184
|
+
@layer smrt.theme {
|
|
183
185
|
.smrt-list-screen {
|
|
184
186
|
display: flex;
|
|
185
187
|
flex-direction: column;
|
|
@@ -188,4 +190,5 @@ function matches(row: DisplayRow): boolean {
|
|
|
188
190
|
.smrt-list-screen__search {
|
|
189
191
|
max-width: 24rem;
|
|
190
192
|
}
|
|
193
|
+
}
|
|
191
194
|
</style>
|
|
@@ -56,7 +56,7 @@ function catalogHref(targetPage: number, selectedId?: string): string {
|
|
|
56
56
|
}
|
|
57
57
|
</script>
|
|
58
58
|
|
|
59
|
-
<section class="smrt-settings-catalog">
|
|
59
|
+
<section class="smrt-settings-catalog" data-smrt-component="SettingsCatalog">
|
|
60
60
|
<aside class="smrt-settings-catalog__browser">
|
|
61
61
|
<Form method="GET" action={baseUrl} preventDefault={false} class="smrt-settings-catalog__search" role="search">
|
|
62
62
|
{#each Object.entries(preservedParams) as [name, value] (name)}
|
|
@@ -149,6 +149,8 @@ function catalogHref(targetPage: number, selectedId?: string): string {
|
|
|
149
149
|
</section>
|
|
150
150
|
|
|
151
151
|
<style>
|
|
152
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
153
|
+
@layer smrt.theme {
|
|
152
154
|
.smrt-settings-catalog {
|
|
153
155
|
display: grid;
|
|
154
156
|
grid-template-columns: minmax(17rem, 22rem) minmax(0, 1fr);
|
|
@@ -289,4 +291,5 @@ function catalogHref(targetPage: number, selectedId?: string): string {
|
|
|
289
291
|
max-block-size: 18rem;
|
|
290
292
|
}
|
|
291
293
|
}
|
|
294
|
+
}
|
|
292
295
|
</style>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts" generics="Item extends SortableItem, Container extends SortableContainer">
|
|
2
2
|
import { useI18n } from '@happyvertical/smrt-ui/i18n';
|
|
3
3
|
import { M } from '../../i18n/strings.sortable.js';
|
|
4
|
+
import { flipRow } from '../workspace/admin-shell/motion.js';
|
|
4
5
|
import { formatSortableAnnouncement } from './announce.js';
|
|
5
6
|
import {
|
|
6
7
|
createSortable,
|
|
@@ -163,12 +164,10 @@ function containerRank(id: string): number {
|
|
|
163
164
|
aria-label={t(M['ui.sortable.group'], { label: container.label, count })}
|
|
164
165
|
>
|
|
165
166
|
{#each list as entry, index (entry.id)}
|
|
166
|
-
{#if markerBefore(container.id, nonDraggedRank(list, index)) && entry.id !== dragged}
|
|
167
|
-
<div class="smrt-sortable__marker" aria-hidden="true"></div>
|
|
168
|
-
{/if}
|
|
169
167
|
<div
|
|
170
168
|
role="listitem"
|
|
171
169
|
class="smrt-sortable__item"
|
|
170
|
+
animate:flipRow
|
|
172
171
|
class:smrt-sortable__item--dragging={dragged === entry.id}
|
|
173
172
|
data-smrt-sortable-item-id={entry.id}
|
|
174
173
|
ondragover={(event) => event.preventDefault()}
|
|
@@ -178,6 +177,9 @@ function containerRank(id: string): number {
|
|
|
178
177
|
itemSortable.dropOnItem(event, container.id, index);
|
|
179
178
|
}}
|
|
180
179
|
>
|
|
180
|
+
{#if markerBefore(container.id, nonDraggedRank(list, index)) && entry.id !== dragged}
|
|
181
|
+
<div class="smrt-sortable__marker smrt-sortable__marker--before" aria-hidden="true"></div>
|
|
182
|
+
{/if}
|
|
181
183
|
<!-- raw-primitive-allow: native button owns keyboard pickup and HTML drag/drop -->
|
|
182
184
|
<button
|
|
183
185
|
type="button"
|
|
@@ -278,7 +280,7 @@ function containerRank(id: string): number {
|
|
|
278
280
|
bind:this={root}
|
|
279
281
|
class="smrt-sortable"
|
|
280
282
|
role="group"
|
|
281
|
-
aria-label={label ?? t(M['ui.sortable.label'])}
|
|
283
|
+
aria-label={label ?? t(M['ui.sortable.label'])} data-smrt-component="Sortable"
|
|
282
284
|
>
|
|
283
285
|
{#each fixed as container (container.id)}
|
|
284
286
|
{@render containerBlock(container, false)}
|
|
@@ -311,6 +313,8 @@ function containerRank(id: string): number {
|
|
|
311
313
|
</div>
|
|
312
314
|
|
|
313
315
|
<style>
|
|
316
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
317
|
+
@layer smrt.theme {
|
|
314
318
|
.smrt-sortable { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--smrt-spacing-3); min-width: 0; position: relative; }
|
|
315
319
|
.smrt-sortable__containers { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--smrt-spacing-3); min-width: 0; }
|
|
316
320
|
.smrt-sortable__container { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--smrt-spacing-2); padding: var(--smrt-spacing-3); border: 1px solid var(--smrt-color-outline-variant); border-radius: var(--smrt-radius-md); background: var(--smrt-color-surface-container); min-width: 0; }
|
|
@@ -319,7 +323,7 @@ function containerRank(id: string): number {
|
|
|
319
323
|
.smrt-sortable__header { display: flex; align-items: center; gap: var(--smrt-spacing-2); min-block-size: 2.25rem; }
|
|
320
324
|
.smrt-sortable__content { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: var(--smrt-spacing-2); }
|
|
321
325
|
.smrt-sortable__items { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--smrt-spacing-1); min-block-size: 2.25rem; min-width: 0; }
|
|
322
|
-
.smrt-sortable__item { display: flex; align-items: center; gap: var(--smrt-spacing-2); padding: var(--smrt-spacing-1) var(--smrt-spacing-2); border: 1px solid var(--smrt-color-outline-variant); border-radius: var(--smrt-radius-sm); background: var(--smrt-color-surface); min-width: 0; }
|
|
326
|
+
.smrt-sortable__item { display: flex; align-items: center; gap: var(--smrt-spacing-2); padding: var(--smrt-spacing-1) var(--smrt-spacing-2); border: 1px solid var(--smrt-color-outline-variant); border-radius: var(--smrt-radius-sm); background: var(--smrt-color-surface); min-width: 0; position: relative; }
|
|
323
327
|
.smrt-sortable__item--dragging { opacity: 0.55; }
|
|
324
328
|
.smrt-sortable__handle { display: inline-grid; place-items: center; flex: 0 0 auto; inline-size: 2rem; block-size: 2rem; padding: 0; border: 0; border-radius: var(--smrt-radius-sm); background: transparent; color: var(--smrt-color-on-surface-variant); cursor: grab; touch-action: none; }
|
|
325
329
|
.smrt-sortable__handle:active { cursor: grabbing; }
|
|
@@ -327,6 +331,8 @@ function containerRank(id: string): number {
|
|
|
327
331
|
.smrt-sortable__handle:focus-visible { outline: 2px solid var(--smrt-color-primary); outline-offset: 2px; }
|
|
328
332
|
.smrt-sortable__handle[aria-pressed='true'] { background: var(--smrt-color-primary-container, var(--smrt-color-surface-container-high)); color: var(--smrt-color-on-primary-container, inherit); }
|
|
329
333
|
.smrt-sortable__marker { block-size: 0.1875rem; border-radius: var(--smrt-radius-full); background: var(--smrt-color-primary); }
|
|
334
|
+
.smrt-sortable__marker--before { position: absolute; inset-inline: 0; inset-block-start: calc(-0.5 * (var(--smrt-spacing-1) + 0.1875rem)); }
|
|
330
335
|
.smrt-sortable__empty { margin: 0; padding: var(--smrt-spacing-2); color: var(--smrt-color-on-surface-variant); font: var(--smrt-typography-body-small-font); }
|
|
331
336
|
.smrt-sortable__live { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
|
|
337
|
+
}
|
|
332
338
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sortable.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/sortable/Sortable.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Sortable.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/sortable/Sortable.svelte.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,iBAAS,QAAQ,CAAC,IAAI,SAAS,YAAY,EAAE,SAAS,SAAS,iBAAiB;WAuPnD,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC;;;;;EAA4E;AACvI,cAAM,iBAAiB,CAAC,IAAI,SAAS,YAAY,EAAC,SAAS,SAAS,iBAAiB;IACjF,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,MAAM,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/D,KAAK,IAAI,UAAU,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7D,QAAQ;IACR,OAAO;CACV;AAED,UAAU,qBAAqB;IAC3B,KAAK,IAAI,SAAS,YAAY,EAAC,SAAS,SAAS,iBAAiB,EAAE,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;KAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACtgB,CAAC,IAAI,SAAS,YAAY,EAAC,SAAS,SAAS,iBAAiB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACjN,YAAY,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;CACrE;AACD,QAAA,MAAM,QAAQ,EAAE,qBAAmC,CAAC;AAClC,KAAK,QAAQ,CAAC,IAAI,SAAS,YAAY,EAAC,SAAS,SAAS,iBAAiB,IAAI,YAAY,CAAC,OAAO,QAAQ,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAC;AAC/H,eAAe,QAAQ,CAAC"}
|
|
@@ -82,6 +82,8 @@ const lastIndex = $derived(crumbs.length - 1);
|
|
|
82
82
|
</nav>
|
|
83
83
|
|
|
84
84
|
<style>
|
|
85
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
86
|
+
@layer smrt.theme {
|
|
85
87
|
.smrt-breadcrumbs {
|
|
86
88
|
width: 100%;
|
|
87
89
|
}
|
|
@@ -127,7 +129,7 @@ const lastIndex = $derived(crumbs.length - 1);
|
|
|
127
129
|
.crumb-link:focus-visible {
|
|
128
130
|
outline: 2px solid var(--smrt-color-primary);
|
|
129
131
|
outline-offset: 2px;
|
|
130
|
-
border-radius: var(--smrt-radius-sm
|
|
132
|
+
border-radius: var(--smrt-radius-sm);
|
|
131
133
|
}
|
|
132
134
|
|
|
133
135
|
@media (max-width: 640px) {
|
|
@@ -138,4 +140,5 @@ const lastIndex = $derived(crumbs.length - 1);
|
|
|
138
140
|
margin: 0 0.35rem;
|
|
139
141
|
}
|
|
140
142
|
}
|
|
143
|
+
}
|
|
141
144
|
</style>
|
|
@@ -206,6 +206,8 @@ function navChildrenId(href: string): string {
|
|
|
206
206
|
</nav>
|
|
207
207
|
|
|
208
208
|
<style>
|
|
209
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
210
|
+
@layer smrt.theme {
|
|
209
211
|
.smrt-nav-tree {
|
|
210
212
|
display: flex;
|
|
211
213
|
flex-direction: column;
|
|
@@ -277,7 +279,7 @@ function navChildrenId(href: string): string {
|
|
|
277
279
|
font-size: var(--smrt-typography-label-small-size, 0.7rem);
|
|
278
280
|
font-weight: var(--smrt-typography-weight-semibold, 600);
|
|
279
281
|
line-height: var(--smrt-typography-label-small-line-height, 1.2);
|
|
280
|
-
border-radius: var(--smrt-radius-full
|
|
282
|
+
border-radius: var(--smrt-radius-full);
|
|
281
283
|
background: var(--smrt-color-secondary-container);
|
|
282
284
|
color: var(--smrt-color-on-secondary-container);
|
|
283
285
|
}
|
|
@@ -351,4 +353,5 @@ function navChildrenId(href: string): string {
|
|
|
351
353
|
.smrt-nav-tree.collapsed .children {
|
|
352
354
|
display: none;
|
|
353
355
|
}
|
|
356
|
+
}
|
|
354
357
|
</style>
|
|
@@ -283,6 +283,8 @@ function handleNavigate(): void {
|
|
|
283
283
|
</div>
|
|
284
284
|
|
|
285
285
|
<style>
|
|
286
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
287
|
+
@layer smrt.theme {
|
|
286
288
|
/*
|
|
287
289
|
* Display: contents lets the WorkspaceShell drive the grid/layout while
|
|
288
290
|
* still giving us a single DOM node to hang `--smrt-role-color` off.
|
|
@@ -304,6 +306,7 @@ function handleNavigate(): void {
|
|
|
304
306
|
margin-right: 0.4rem;
|
|
305
307
|
font-size: var(--smrt-typography-title-medium-size, 1.1rem);
|
|
306
308
|
line-height: 1;
|
|
307
|
-
color: var(--smrt-role-color, var(--smrt-color-on-surface
|
|
309
|
+
color: var(--smrt-role-color, var(--smrt-color-on-surface));
|
|
308
310
|
}
|
|
311
|
+
}
|
|
309
312
|
</style>
|
|
@@ -433,6 +433,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
433
433
|
</div>
|
|
434
434
|
|
|
435
435
|
<style>
|
|
436
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
437
|
+
@layer smrt.theme {
|
|
436
438
|
.smrt-workspace-shell {
|
|
437
439
|
--smrt-ws-sidebar-width: 280px;
|
|
438
440
|
--smrt-ws-sidebar-collapsed-width: 96px;
|
|
@@ -446,8 +448,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
446
448
|
grid-template-columns: var(--smrt-ws-sidebar-width) 1fr;
|
|
447
449
|
min-height: 100vh;
|
|
448
450
|
min-height: 100dvh;
|
|
449
|
-
background: var(--smrt-color-surface-container-low
|
|
450
|
-
color: var(--smrt-color-on-surface
|
|
451
|
+
background: var(--smrt-color-surface-container-low);
|
|
452
|
+
color: var(--smrt-color-on-surface);
|
|
451
453
|
isolation: isolate;
|
|
452
454
|
}
|
|
453
455
|
|
|
@@ -479,8 +481,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
479
481
|
height: 100vh;
|
|
480
482
|
height: 100dvh;
|
|
481
483
|
box-sizing: border-box;
|
|
482
|
-
background: var(--smrt-color-surface
|
|
483
|
-
border-right: 1px solid var(--smrt-color-outline-variant
|
|
484
|
+
background: var(--smrt-color-surface);
|
|
485
|
+
border-right: 1px solid var(--smrt-color-outline-variant);
|
|
484
486
|
min-width: 0;
|
|
485
487
|
overflow: hidden;
|
|
486
488
|
overscroll-behavior: contain;
|
|
@@ -505,13 +507,13 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
505
507
|
margin: 0;
|
|
506
508
|
font-size: var(--smrt-typography-title-large-size, 1.25rem);
|
|
507
509
|
line-height: var(--smrt-typography-title-large-line-height, 1.1);
|
|
508
|
-
color: var(--smrt-color-on-surface
|
|
510
|
+
color: var(--smrt-color-on-surface);
|
|
509
511
|
font-weight: var(--smrt-typography-weight-semibold, 600);
|
|
510
512
|
}
|
|
511
513
|
|
|
512
514
|
.brand .subtitle {
|
|
513
515
|
margin: 0;
|
|
514
|
-
color: var(--smrt-color-on-surface-variant
|
|
516
|
+
color: var(--smrt-color-on-surface-variant);
|
|
515
517
|
line-height: var(--smrt-typography-body-medium-line-height, 1.4);
|
|
516
518
|
font-size: var(--smrt-typography-body-medium-size, 0.9rem);
|
|
517
519
|
}
|
|
@@ -521,7 +523,7 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
521
523
|
font-weight: var(--smrt-typography-weight-bold, 700);
|
|
522
524
|
letter-spacing: var(--smrt-typography-label-small-tracking, 0.12em);
|
|
523
525
|
text-transform: uppercase;
|
|
524
|
-
color: var(--smrt-color-on-surface-variant
|
|
526
|
+
color: var(--smrt-color-on-surface-variant);
|
|
525
527
|
}
|
|
526
528
|
|
|
527
529
|
/* These shell-chrome controls now render through smrt-ui <Button>; pierce
|
|
@@ -529,9 +531,9 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
529
531
|
:global(.class)` (#1589). Button owns focus-visible, so those rules are
|
|
530
532
|
dropped. The responsive `display` toggles below are preserved. */
|
|
531
533
|
.smrt-workspace-shell :global(.shell-toggle) {
|
|
532
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
533
|
-
background: var(--smrt-color-surface-container
|
|
534
|
-
color: var(--smrt-color-on-surface
|
|
534
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
535
|
+
background: var(--smrt-color-surface-container);
|
|
536
|
+
color: var(--smrt-color-on-surface);
|
|
535
537
|
border-radius: var(--smrt-radius-medium, 0.65rem);
|
|
536
538
|
width: 2rem;
|
|
537
539
|
height: 2rem;
|
|
@@ -545,7 +547,7 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
545
547
|
}
|
|
546
548
|
|
|
547
549
|
.smrt-workspace-shell :global(.shell-toggle):hover {
|
|
548
|
-
background: var(--smrt-color-surface-container-high
|
|
550
|
+
background: var(--smrt-color-surface-container-high);
|
|
549
551
|
}
|
|
550
552
|
|
|
551
553
|
.shell-toggle-glyph {
|
|
@@ -570,8 +572,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
570
572
|
display: grid;
|
|
571
573
|
gap: 0.75rem;
|
|
572
574
|
padding-top: 0.75rem;
|
|
573
|
-
background: var(--smrt-color-surface
|
|
574
|
-
border-top: 1px solid var(--smrt-color-outline-variant
|
|
575
|
+
background: var(--smrt-color-surface);
|
|
576
|
+
border-top: 1px solid var(--smrt-color-outline-variant);
|
|
575
577
|
z-index: 1;
|
|
576
578
|
}
|
|
577
579
|
|
|
@@ -594,8 +596,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
594
596
|
gap: 0.85rem;
|
|
595
597
|
padding: 0.75rem var(--smrt-ws-page-pad);
|
|
596
598
|
min-height: var(--smrt-ws-topbar-height);
|
|
597
|
-
background: var(--smrt-color-surface
|
|
598
|
-
border-bottom: 1px solid var(--smrt-color-outline-variant
|
|
599
|
+
background: var(--smrt-color-surface);
|
|
600
|
+
border-bottom: 1px solid var(--smrt-color-outline-variant);
|
|
599
601
|
box-shadow: var(--smrt-elevation-1, 0 1px 2px rgb(0 0 0 / 0.05));
|
|
600
602
|
}
|
|
601
603
|
|
|
@@ -626,7 +628,7 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
626
628
|
}
|
|
627
629
|
|
|
628
630
|
.topbar-eyebrow {
|
|
629
|
-
color: var(--smrt-color-on-surface-variant
|
|
631
|
+
color: var(--smrt-color-on-surface-variant);
|
|
630
632
|
}
|
|
631
633
|
|
|
632
634
|
.mode-title,
|
|
@@ -637,11 +639,11 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
637
639
|
.mode-title {
|
|
638
640
|
font-size: var(--smrt-typography-title-small-size, 0.9rem);
|
|
639
641
|
font-weight: var(--smrt-typography-weight-semibold, 600);
|
|
640
|
-
color: var(--smrt-color-on-surface
|
|
642
|
+
color: var(--smrt-color-on-surface);
|
|
641
643
|
}
|
|
642
644
|
|
|
643
645
|
.mode-detail {
|
|
644
|
-
color: var(--smrt-color-on-surface-variant
|
|
646
|
+
color: var(--smrt-color-on-surface-variant);
|
|
645
647
|
max-width: 18rem;
|
|
646
648
|
text-align: right;
|
|
647
649
|
font-size: var(--smrt-typography-body-medium-size, 0.85rem);
|
|
@@ -652,10 +654,10 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
652
654
|
align-items: center;
|
|
653
655
|
gap: 0.4rem;
|
|
654
656
|
padding: 0.25rem 0.65rem;
|
|
655
|
-
border-radius: var(--smrt-radius-full
|
|
656
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
657
|
-
background: var(--smrt-color-surface-container
|
|
658
|
-
color: var(--smrt-color-on-surface
|
|
657
|
+
border-radius: var(--smrt-radius-full);
|
|
658
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
659
|
+
background: var(--smrt-color-surface-container);
|
|
660
|
+
color: var(--smrt-color-on-surface);
|
|
659
661
|
font-size: var(--smrt-typography-label-medium-size, 0.78rem);
|
|
660
662
|
font-weight: var(--smrt-typography-weight-semibold, 600);
|
|
661
663
|
line-height: 1;
|
|
@@ -665,29 +667,29 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
665
667
|
.mode-dot {
|
|
666
668
|
width: 0.55rem;
|
|
667
669
|
height: 0.55rem;
|
|
668
|
-
border-radius: var(--smrt-radius-full
|
|
669
|
-
background: var(--smrt-color-on-surface-variant
|
|
670
|
+
border-radius: var(--smrt-radius-full);
|
|
671
|
+
background: var(--smrt-color-on-surface-variant);
|
|
670
672
|
flex-shrink: 0;
|
|
671
673
|
}
|
|
672
674
|
|
|
673
675
|
.mode-badge[data-status='active'] .mode-dot {
|
|
674
|
-
background: var(--smrt-color-success
|
|
676
|
+
background: var(--smrt-color-success);
|
|
675
677
|
}
|
|
676
678
|
.mode-badge[data-status='offline'] .mode-dot {
|
|
677
|
-
background: var(--smrt-color-on-surface-variant
|
|
679
|
+
background: var(--smrt-color-on-surface-variant);
|
|
678
680
|
}
|
|
679
681
|
.mode-badge[data-status='local-only'] .mode-dot {
|
|
680
|
-
background: var(--smrt-color-primary
|
|
682
|
+
background: var(--smrt-color-primary);
|
|
681
683
|
}
|
|
682
684
|
.mode-badge[data-status='attention'] .mode-dot {
|
|
683
|
-
background: var(--smrt-color-warning
|
|
685
|
+
background: var(--smrt-color-warning);
|
|
684
686
|
}
|
|
685
687
|
|
|
686
688
|
.smrt-workspace-shell :global(.mobile-menu) {
|
|
687
689
|
display: none;
|
|
688
|
-
border: 1px solid var(--smrt-color-outline-variant
|
|
689
|
-
background: var(--smrt-color-surface
|
|
690
|
-
color: var(--smrt-color-on-surface
|
|
690
|
+
border: 1px solid var(--smrt-color-outline-variant);
|
|
691
|
+
background: var(--smrt-color-surface);
|
|
692
|
+
color: var(--smrt-color-on-surface);
|
|
691
693
|
border-radius: var(--smrt-radius-medium, 0.65rem);
|
|
692
694
|
width: 2.35rem;
|
|
693
695
|
height: 2.35rem;
|
|
@@ -718,8 +720,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
718
720
|
width: var(--smrt-ws-inspector-width);
|
|
719
721
|
display: flex;
|
|
720
722
|
flex-direction: column;
|
|
721
|
-
background: var(--smrt-color-surface
|
|
722
|
-
border-left: 1px solid var(--smrt-color-outline-variant
|
|
723
|
+
background: var(--smrt-color-surface);
|
|
724
|
+
border-left: 1px solid var(--smrt-color-outline-variant);
|
|
723
725
|
box-shadow: var(--smrt-elevation-2, 0 4px 6px -1px rgb(0 0 0 / 0.1));
|
|
724
726
|
z-index: 22;
|
|
725
727
|
}
|
|
@@ -729,19 +731,19 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
729
731
|
align-items: center;
|
|
730
732
|
justify-content: space-between;
|
|
731
733
|
padding: 0.85rem 1rem;
|
|
732
|
-
border-bottom: 1px solid var(--smrt-color-outline-variant
|
|
734
|
+
border-bottom: 1px solid var(--smrt-color-outline-variant);
|
|
733
735
|
}
|
|
734
736
|
|
|
735
737
|
.inspector-title {
|
|
736
738
|
font-weight: var(--smrt-typography-weight-semibold, 600);
|
|
737
|
-
color: var(--smrt-color-on-surface
|
|
739
|
+
color: var(--smrt-color-on-surface);
|
|
738
740
|
font-size: var(--smrt-typography-title-medium-size, 0.95rem);
|
|
739
741
|
}
|
|
740
742
|
|
|
741
743
|
.smrt-workspace-shell :global(.inspector-close) {
|
|
742
744
|
border: 1px solid transparent;
|
|
743
745
|
background: transparent;
|
|
744
|
-
color: var(--smrt-color-on-surface-variant
|
|
746
|
+
color: var(--smrt-color-on-surface-variant);
|
|
745
747
|
border-radius: var(--smrt-radius-medium, 0.5rem);
|
|
746
748
|
width: 2rem;
|
|
747
749
|
height: 2rem;
|
|
@@ -756,8 +758,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
756
758
|
}
|
|
757
759
|
|
|
758
760
|
.smrt-workspace-shell :global(.inspector-close):hover {
|
|
759
|
-
background: var(--smrt-color-surface-container-high
|
|
760
|
-
color: var(--smrt-color-on-surface
|
|
761
|
+
background: var(--smrt-color-surface-container-high);
|
|
762
|
+
color: var(--smrt-color-on-surface);
|
|
761
763
|
}
|
|
762
764
|
|
|
763
765
|
.inspector-body {
|
|
@@ -778,8 +780,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
778
780
|
align-items: center;
|
|
779
781
|
gap: 0.4rem;
|
|
780
782
|
padding: 0.75rem 0.25rem;
|
|
781
|
-
background: var(--smrt-color-surface
|
|
782
|
-
border-left: 1px solid var(--smrt-color-outline-variant
|
|
783
|
+
background: var(--smrt-color-surface);
|
|
784
|
+
border-left: 1px solid var(--smrt-color-outline-variant);
|
|
783
785
|
z-index: 18;
|
|
784
786
|
}
|
|
785
787
|
|
|
@@ -941,4 +943,5 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
|
|
|
941
943
|
text-align: left;
|
|
942
944
|
}
|
|
943
945
|
}
|
|
946
|
+
}
|
|
944
947
|
</style>
|
|
@@ -13,7 +13,7 @@ let { activity }: Props = $props();
|
|
|
13
13
|
const { t } = useI18n();
|
|
14
14
|
</script>
|
|
15
15
|
|
|
16
|
-
<article class="smrt-activity-item" data-status={activity.status}>
|
|
16
|
+
<article class="smrt-activity-item" data-status={activity.status} data-smrt-component="ActivityItem">
|
|
17
17
|
<div class="smrt-activity-item__main">
|
|
18
18
|
<strong>{activity.label}</strong>
|
|
19
19
|
<span>{activity.status}</span>
|
|
@@ -41,6 +41,8 @@ const { t } = useI18n();
|
|
|
41
41
|
</article>
|
|
42
42
|
|
|
43
43
|
<style>
|
|
44
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
45
|
+
@layer smrt.theme {
|
|
44
46
|
.smrt-activity-item {
|
|
45
47
|
display: flex;
|
|
46
48
|
align-items: flex-start;
|
|
@@ -83,4 +85,5 @@ const { t } = useI18n();
|
|
|
83
85
|
gap: var(--smrt-spacing-2);
|
|
84
86
|
justify-content: flex-end;
|
|
85
87
|
}
|
|
88
|
+
}
|
|
86
89
|
</style>
|
|
@@ -21,18 +21,20 @@ const activities = $derived(shell.listActivities(filter));
|
|
|
21
21
|
</script>
|
|
22
22
|
|
|
23
23
|
{#if activities.length > 0}
|
|
24
|
-
<div class="smrt-activity-list">
|
|
24
|
+
<div class="smrt-activity-list" data-smrt-component="ActivityList">
|
|
25
25
|
{#each activities as activity (activity.id)}
|
|
26
26
|
<ActivityItem {activity} />
|
|
27
27
|
{/each}
|
|
28
28
|
</div>
|
|
29
29
|
{:else if !hideWhenEmpty}
|
|
30
|
-
<p class="smrt-activity-list__empty">
|
|
30
|
+
<p class="smrt-activity-list__empty" data-smrt-component="ActivityList">
|
|
31
31
|
{emptyLabel ?? t(M['ui.activity_list.empty'])}
|
|
32
32
|
</p>
|
|
33
33
|
{/if}
|
|
34
34
|
|
|
35
35
|
<style>
|
|
36
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
37
|
+
@layer smrt.theme {
|
|
36
38
|
.smrt-activity-list {
|
|
37
39
|
display: grid;
|
|
38
40
|
}
|
|
@@ -41,4 +43,5 @@ const activities = $derived(shell.listActivities(filter));
|
|
|
41
43
|
margin: 0;
|
|
42
44
|
color: var(--smrt-color-on-surface-variant);
|
|
43
45
|
}
|
|
46
|
+
}
|
|
44
47
|
</style>
|
|
@@ -41,8 +41,8 @@ function activityLabel(activity: ShellActivity): string {
|
|
|
41
41
|
}
|
|
42
42
|
</script>
|
|
43
43
|
|
|
44
|
-
<div class="smrt-activity-ticker-shell">
|
|
45
|
-
<div class="smrt-activity-ticker" class:multiple class:paused role="region" aria-label={label ?? t(M['ui.activity_ticker.label'])} style:--activity-ticker-duration={`${Math.max(20, running.length * 10)}s`}>
|
|
44
|
+
<div class="smrt-activity-ticker-shell" data-smrt-component="ActivityTicker">
|
|
45
|
+
<div class="smrt-activity-ticker" class:multiple class:paused role="region" aria-label={label ?? t(M['ui.activity_ticker.label'])} style:--smrt-activity-ticker-duration={`${Math.max(20, running.length * 10)}s`}>
|
|
46
46
|
{#if running.length === 0}
|
|
47
47
|
<span class="smrt-activity-ticker__empty">{emptyLabel ?? t(M['ui.activity_ticker.empty'])}</span>
|
|
48
48
|
{:else}
|
|
@@ -73,12 +73,14 @@ function activityLabel(activity: ShellActivity): string {
|
|
|
73
73
|
</div>
|
|
74
74
|
|
|
75
75
|
<style>
|
|
76
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
77
|
+
@layer smrt.theme {
|
|
76
78
|
.smrt-activity-ticker-shell { display:flex; align-items:center; flex:1; min-width:0; gap:var(--smrt-spacing-2); }
|
|
77
79
|
.smrt-activity-ticker { flex:1; min-width:0; overflow:hidden; color:var(--smrt-color-on-surface-variant); font-size:var(--smrt-typography-body-small-size); white-space:nowrap; }
|
|
78
80
|
.smrt-activity-ticker__track { display:flex; width:max-content; }
|
|
79
81
|
.smrt-activity-ticker__group { display:flex; gap:var(--smrt-spacing-6); flex-shrink:0; }
|
|
80
82
|
.multiple .smrt-activity-ticker__group { padding-inline-end:var(--smrt-spacing-6); }
|
|
81
|
-
.multiple .smrt-activity-ticker__track { animation:smrt-activity-scroll var(--activity-ticker-duration) linear infinite; }
|
|
83
|
+
.multiple .smrt-activity-ticker__track { animation:smrt-activity-scroll var(--smrt-activity-ticker-duration) linear infinite; }
|
|
82
84
|
.smrt-activity-ticker.paused .smrt-activity-ticker__track,
|
|
83
85
|
.smrt-activity-ticker:hover .smrt-activity-ticker__track,
|
|
84
86
|
.smrt-activity-ticker-shell:focus-within .smrt-activity-ticker__track { animation-play-state:paused; }
|
|
@@ -89,4 +91,5 @@ function activityLabel(activity: ShellActivity): string {
|
|
|
89
91
|
.multiple .smrt-activity-ticker__track { animation:none; }
|
|
90
92
|
.smrt-activity-ticker__copy, .smrt-activity-ticker__control { display:none; }
|
|
91
93
|
}
|
|
94
|
+
}
|
|
92
95
|
</style>
|