@happyvertical/smrt-svelte 0.55.16 → 0.55.17
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 +145 -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 +274 -9
- 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 +27 -1
- 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 +4 -1
- package/dist/components/workspace/admin-shell/AdminShell.svelte +502 -72
- 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 +21 -8
- 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 +4 -1
- 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 +4 -1
- package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte +4 -1
- package/dist/components/workspace/admin-shell/ShellNavEditor.svelte +13 -7
- 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 +4 -1
- package/dist/components/workspace/admin-shell/ShellSectionIcon.svelte +4 -1
- package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte +15 -10
- 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 +81 -36
- 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 +305 -53
- 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
|
@@ -44,7 +44,7 @@ $effect(() => {
|
|
|
44
44
|
});
|
|
45
45
|
</script>
|
|
46
46
|
|
|
47
|
-
<div class="smrt-overview-assistant-undo {className}" data-active={batch ? '' : undefined}>
|
|
47
|
+
<div class="smrt-overview-assistant-undo {className}" data-active={batch ? '' : undefined} data-smrt-component="OverviewAssistantUndo">
|
|
48
48
|
<!-- The live region stays mounted so each new message is announced. -->
|
|
49
49
|
<span class="smrt-overview-assistant-undo__message" role="status" aria-live="polite">
|
|
50
50
|
{#if batch}
|
|
@@ -64,6 +64,8 @@ $effect(() => {
|
|
|
64
64
|
</div>
|
|
65
65
|
|
|
66
66
|
<style>
|
|
67
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
68
|
+
@layer smrt.theme {
|
|
67
69
|
.smrt-overview-assistant-undo {
|
|
68
70
|
display: flex;
|
|
69
71
|
flex-wrap: wrap;
|
|
@@ -74,4 +76,5 @@ $effect(() => {
|
|
|
74
76
|
.smrt-overview-assistant-undo__message {
|
|
75
77
|
flex: 1 1 12rem;
|
|
76
78
|
}
|
|
79
|
+
}
|
|
77
80
|
</style>
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
type SortableAnnouncement,
|
|
27
27
|
} from '../sortable/controller.svelte.js';
|
|
28
28
|
import { tryUseShellLayout } from '../workspace/admin-shell/layout-context.js';
|
|
29
|
+
import { flipRow } from '../workspace/admin-shell/motion.js';
|
|
29
30
|
import ShellIconButton from '../workspace/admin-shell/ShellIconButton.svelte';
|
|
30
31
|
import ShellSectionIcon from '../workspace/admin-shell/ShellSectionIcon.svelte';
|
|
31
32
|
import type { OverviewOpResult } from './controller.svelte.js';
|
|
@@ -378,7 +379,7 @@ const headingTag = $derived(`h${headingLevel}`);
|
|
|
378
379
|
</article>
|
|
379
380
|
{/snippet}
|
|
380
381
|
|
|
381
|
-
<div class="smrt-overview" bind:this={rootEl} data-editing={editing ? '' : undefined} data-presentation={presentation}>
|
|
382
|
+
<div class="smrt-overview" bind:this={rootEl} data-editing={editing ? '' : undefined} data-presentation={presentation} data-smrt-component="OverviewGrid">
|
|
382
383
|
{#if editing}
|
|
383
384
|
<div class="smrt-overview__toolbar" role="toolbar" aria-label={t(M['ui.overview.toolbar'])}>
|
|
384
385
|
<ShellIconButton
|
|
@@ -415,11 +416,12 @@ const headingTag = $derived(`h${headingLevel}`);
|
|
|
415
416
|
<div
|
|
416
417
|
role="listitem"
|
|
417
418
|
class="smrt-overview__item"
|
|
419
|
+
animate:flipRow
|
|
418
420
|
data-span={spanOf(row)}
|
|
419
421
|
data-smrt-overview-item={row.widget.id}
|
|
420
422
|
data-dragging={dragged === row.widget.id ? '' : undefined}
|
|
421
423
|
data-drop={mark}
|
|
422
|
-
style:--span={spanOf(row)}
|
|
424
|
+
style:--smrt-overview-grid-span={spanOf(row)}
|
|
423
425
|
ondragover={(event) => event.preventDefault()}
|
|
424
426
|
ondrop={(event) => {
|
|
425
427
|
if (!sortable.drag) return;
|
|
@@ -537,15 +539,17 @@ const headingTag = $derived(`h${headingLevel}`);
|
|
|
537
539
|
{/if}
|
|
538
540
|
|
|
539
541
|
<style>
|
|
542
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
543
|
+
@layer smrt.theme {
|
|
540
544
|
.smrt-overview { container-type: inline-size; min-inline-size: 0; }
|
|
541
545
|
.smrt-overview__toolbar { display: flex; gap: var(--smrt-spacing-1); margin-block-end: var(--smrt-spacing-2); }
|
|
542
546
|
.smrt-overview__empty { margin: 0; color: var(--smrt-color-on-surface-variant); }
|
|
543
547
|
/* Gaps are tile padding, not grid gap, so a pointer never crosses a dead
|
|
544
548
|
zone between tiles while dragging. */
|
|
545
|
-
.smrt-overview__list { --
|
|
546
|
-
.smrt-overview__item { position: relative; grid-column: span var(--span, 1); min-inline-size: 0; padding: var(--
|
|
549
|
+
.smrt-overview__list { --smrt-overview-grid-pad: var(--smrt-spacing-2); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: calc(-1 * var(--smrt-overview-grid-pad)); }
|
|
550
|
+
.smrt-overview__item { position: relative; grid-column: span var(--smrt-overview-grid-span, 1); min-inline-size: 0; padding: var(--smrt-overview-grid-pad); }
|
|
547
551
|
.smrt-overview__item[data-dragging] { opacity: 0.5; }
|
|
548
|
-
.smrt-overview__item[data-drop]::before { content: ''; position: absolute; inset-block: var(--
|
|
552
|
+
.smrt-overview__item[data-drop]::before { content: ''; position: absolute; inset-block: var(--smrt-overview-grid-pad); inline-size: 0.1875rem; border-radius: var(--smrt-radius-full); background: var(--smrt-color-primary); }
|
|
549
553
|
.smrt-overview__item[data-drop='before']::before { inset-inline-start: 0; }
|
|
550
554
|
.smrt-overview__item[data-drop='after']::before { inset-inline-end: 0; }
|
|
551
555
|
.smrt-overview__tile { position: relative; block-size: 100%; box-sizing: border-box; padding: var(--smrt-spacing-3); border: 1px solid var(--smrt-color-outline-variant); border-radius: var(--smrt-radius-large, var(--smrt-radius-medium)); background: var(--smrt-color-surface); color: var(--smrt-color-on-surface); }
|
|
@@ -561,7 +565,7 @@ const headingTag = $derived(`h${headingLevel}`);
|
|
|
561
565
|
.smrt-overview__handle:hover { background: var(--smrt-color-surface-container-high); }
|
|
562
566
|
.smrt-overview__handle:focus-visible { outline: 2px solid var(--smrt-color-primary); outline-offset: 2px; }
|
|
563
567
|
.smrt-overview__handle[aria-pressed='true'] { background: var(--smrt-color-primary-container); color: var(--smrt-color-on-primary-container); }
|
|
564
|
-
.smrt-overview__resize { position: absolute; inset-block-start: 50%; inset-inline-end: -0.4375rem; inline-size: 0.875rem; block-size: 2.75rem; transform: translateY(-50%); border: 1px solid var(--smrt-color-outline); border-radius: var(--smrt-radius-full
|
|
568
|
+
.smrt-overview__resize { position: absolute; inset-block-start: 50%; inset-inline-end: -0.4375rem; inline-size: 0.875rem; block-size: 2.75rem; transform: translateY(-50%); border: 1px solid var(--smrt-color-outline); border-radius: var(--smrt-radius-full); background: var(--smrt-color-surface-container-high); cursor: ew-resize; touch-action: none; }
|
|
565
569
|
.smrt-overview__resize:hover { background: var(--smrt-color-primary-container); }
|
|
566
570
|
.smrt-overview__resize:focus-visible { outline: 2px solid var(--smrt-color-primary); outline-offset: 2px; }
|
|
567
571
|
.smrt-overview__choices { display: grid; gap: var(--smrt-spacing-1); margin: 0; padding: 0; list-style: none; }
|
|
@@ -579,4 +583,5 @@ const headingTag = $derived(`h${headingLevel}`);
|
|
|
579
583
|
.smrt-overview__list { grid-template-columns: minmax(0, 1fr); }
|
|
580
584
|
.smrt-overview__list .smrt-overview__item[data-span] { grid-column: span 1; }
|
|
581
585
|
}
|
|
586
|
+
}
|
|
582
587
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverviewGrid.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/overview/OverviewGrid.svelte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OverviewGrid.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/overview/OverviewGrid.svelte.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA6bzD,QAAA,MAAM,YAAY,uDAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
|
|
@@ -186,8 +186,11 @@ const modelValues = $derived(
|
|
|
186
186
|
</Form>
|
|
187
187
|
|
|
188
188
|
<style>
|
|
189
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
190
|
+
@layer smrt.theme {
|
|
189
191
|
.smrt-widget-form__check { display: flex; flex-direction: column; gap: var(--smrt-spacing-1); }
|
|
190
192
|
.smrt-widget-form__hint { color: var(--smrt-color-on-surface-variant); }
|
|
191
193
|
.smrt-widget-form__error { color: var(--smrt-color-error); }
|
|
192
194
|
.smrt-widget-form__none { margin: 0; color: var(--smrt-color-on-surface-variant); }
|
|
195
|
+
}
|
|
193
196
|
</style>
|
|
@@ -57,9 +57,9 @@ const summary = $derived(
|
|
|
57
57
|
</script>
|
|
58
58
|
|
|
59
59
|
{#if points.length === 0}
|
|
60
|
-
<p class="smrt-chart__empty">{t(M['ui.overview.no_data'])}</p>
|
|
60
|
+
<p class="smrt-chart__empty" data-smrt-component="ChartWidget">{t(M['ui.overview.no_data'])}</p>
|
|
61
61
|
{:else if style === 'line'}
|
|
62
|
-
<div class="smrt-chart">
|
|
62
|
+
<div class="smrt-chart" data-smrt-component="ChartWidget">
|
|
63
63
|
<svg class="smrt-chart__line" viewBox="0 0 100 40" preserveAspectRatio="none" role="img" aria-label={summary}>
|
|
64
64
|
<polyline points={polyline} fill="none" stroke="currentColor" stroke-width="2" vector-effect="non-scaling-stroke" />
|
|
65
65
|
</svg>
|
|
@@ -83,7 +83,7 @@ const summary = $derived(
|
|
|
83
83
|
</table>
|
|
84
84
|
</div>
|
|
85
85
|
{:else}
|
|
86
|
-
<ul class="smrt-chart__bars" aria-label={summary}>
|
|
86
|
+
<ul class="smrt-chart__bars" aria-label={summary} data-smrt-component="ChartWidget">
|
|
87
87
|
{#each points as point, index (index)}
|
|
88
88
|
<li class="smrt-chart__row">
|
|
89
89
|
<span class="smrt-chart__label">{point.label}</span>
|
|
@@ -97,15 +97,18 @@ const summary = $derived(
|
|
|
97
97
|
{/if}
|
|
98
98
|
|
|
99
99
|
<style>
|
|
100
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
101
|
+
@layer smrt.theme {
|
|
100
102
|
.smrt-chart { display: grid; gap: var(--smrt-spacing-1); color: var(--smrt-color-primary); }
|
|
101
103
|
.smrt-chart__line { inline-size: 100%; block-size: 7rem; overflow: visible; }
|
|
102
104
|
.smrt-chart__axis { display: flex; justify-content: space-between; margin: 0; color: var(--smrt-color-on-surface-variant); font-size: var(--smrt-typography-label-large-size, 0.75rem); }
|
|
103
105
|
.smrt-chart__bars { display: grid; gap: var(--smrt-spacing-2); margin: 0; padding: 0; list-style: none; }
|
|
104
106
|
.smrt-chart__row { display: grid; grid-template-columns: minmax(4rem, 30%) minmax(0, 1fr) auto; align-items: center; gap: var(--smrt-spacing-2); font-size: var(--smrt-typography-body-medium-size, 0.875rem); color: var(--smrt-color-on-surface); }
|
|
105
107
|
.smrt-chart__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
106
|
-
.smrt-chart__track { display: block; block-size: 0.625rem; border-radius: var(--smrt-radius-full
|
|
108
|
+
.smrt-chart__track { display: block; block-size: 0.625rem; border-radius: var(--smrt-radius-full); background: var(--smrt-color-surface-container-high); overflow: hidden; }
|
|
107
109
|
.smrt-chart__bar { display: block; block-size: 100%; border-radius: inherit; background: var(--smrt-color-primary); }
|
|
108
110
|
.smrt-chart__value { font-variant-numeric: tabular-nums; color: var(--smrt-color-on-surface-variant); }
|
|
109
111
|
.smrt-chart__empty { margin: 0; color: var(--smrt-color-on-surface-variant); }
|
|
110
112
|
.smrt-chart__table { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
|
|
113
|
+
}
|
|
111
114
|
</style>
|
|
@@ -56,7 +56,7 @@ const href = $derived(
|
|
|
56
56
|
</script>
|
|
57
57
|
|
|
58
58
|
{#if valid && metric}
|
|
59
|
-
<div class="smrt-metric">
|
|
59
|
+
<div class="smrt-metric" data-smrt-component="MetricWidget">
|
|
60
60
|
{#if href}
|
|
61
61
|
<a class="smrt-metric__value" {href}>{text}</a>
|
|
62
62
|
{:else}
|
|
@@ -73,14 +73,17 @@ const href = $derived(
|
|
|
73
73
|
{/if}
|
|
74
74
|
</div>
|
|
75
75
|
{:else}
|
|
76
|
-
<p class="smrt-metric__label">{t(M['ui.overview.no_data'])}</p>
|
|
76
|
+
<p class="smrt-metric__label" data-smrt-component="MetricWidget">{t(M['ui.overview.no_data'])}</p>
|
|
77
77
|
{/if}
|
|
78
78
|
|
|
79
79
|
<style>
|
|
80
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
81
|
+
@layer smrt.theme {
|
|
80
82
|
.smrt-metric { display: grid; gap: var(--smrt-spacing-1); }
|
|
81
83
|
.smrt-metric__value { margin: 0; color: var(--smrt-color-on-surface); font-size: var(--smrt-typography-display-small-size, 2rem); font-weight: var(--smrt-typography-weight-medium, 500); line-height: 1.1; text-decoration: none; font-variant-numeric: tabular-nums; }
|
|
82
84
|
a.smrt-metric__value:hover { text-decoration: underline; }
|
|
83
85
|
a.smrt-metric__value:focus-visible { outline: 2px solid var(--smrt-color-primary); outline-offset: 2px; border-radius: var(--smrt-radius-small, 0.25rem); }
|
|
84
86
|
.smrt-metric__label { margin: 0; color: var(--smrt-color-on-surface-variant); font-size: var(--smrt-typography-body-medium-size, 0.875rem); }
|
|
85
87
|
.smrt-metric__change { margin: 0; color: var(--smrt-color-on-surface-variant); font-size: var(--smrt-typography-label-large-size, 0.875rem); }
|
|
88
|
+
}
|
|
86
89
|
</style>
|
|
@@ -24,9 +24,9 @@ const blocks = $derived(
|
|
|
24
24
|
{/snippet}
|
|
25
25
|
|
|
26
26
|
{#if blocks.length === 0}
|
|
27
|
-
<p class="smrt-note__empty">{t(M['ui.overview.no_data'])}</p>
|
|
27
|
+
<p class="smrt-note__empty" data-smrt-component="NoteWidget">{t(M['ui.overview.no_data'])}</p>
|
|
28
28
|
{:else}
|
|
29
|
-
<div class="smrt-note">
|
|
29
|
+
<div class="smrt-note" data-smrt-component="NoteWidget">
|
|
30
30
|
{#each blocks as block, index (index)}
|
|
31
31
|
{#if block.type === 'heading'}
|
|
32
32
|
<p class="smrt-note__heading" data-level={block.level}><strong>{@render inline(block.children)}</strong></p>
|
|
@@ -48,6 +48,8 @@ const blocks = $derived(
|
|
|
48
48
|
{/if}
|
|
49
49
|
|
|
50
50
|
<style>
|
|
51
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
52
|
+
@layer smrt.theme {
|
|
51
53
|
.smrt-note { display: grid; gap: var(--smrt-spacing-2); color: var(--smrt-color-on-surface); font-size: var(--smrt-typography-body-medium-size, 0.875rem); overflow-wrap: anywhere; }
|
|
52
54
|
.smrt-note p, .smrt-note ul, .smrt-note ol, .smrt-note blockquote, .smrt-note pre { margin: 0; }
|
|
53
55
|
.smrt-note ul, .smrt-note ol { padding-inline-start: var(--smrt-spacing-5, 1.25rem); }
|
|
@@ -58,4 +60,5 @@ const blocks = $derived(
|
|
|
58
60
|
.smrt-note__heading[data-level='1'] { font-size: var(--smrt-typography-title-large-size, 1.25rem); }
|
|
59
61
|
.smrt-note__heading[data-level='2'] { font-size: var(--smrt-typography-title-medium-size, 1.125rem); }
|
|
60
62
|
.smrt-note__empty { margin: 0; color: var(--smrt-color-on-surface-variant); }
|
|
63
|
+
}
|
|
61
64
|
</style>
|
|
@@ -49,9 +49,9 @@ const viewAll = $derived(
|
|
|
49
49
|
</script>
|
|
50
50
|
|
|
51
51
|
{#if rows.length === 0}
|
|
52
|
-
<p class="smrt-records__empty">{t(M['ui.overview.records.empty'])}</p>
|
|
52
|
+
<p class="smrt-records__empty" data-smrt-component="RecordListWidget">{t(M['ui.overview.records.empty'])}</p>
|
|
53
53
|
{:else}
|
|
54
|
-
<ul class="smrt-records">
|
|
54
|
+
<ul class="smrt-records" data-smrt-component="RecordListWidget">
|
|
55
55
|
{#each rows as row (row.id)}
|
|
56
56
|
<li class="smrt-records__row">
|
|
57
57
|
<span class="smrt-records__main">
|
|
@@ -68,7 +68,7 @@ const viewAll = $derived(
|
|
|
68
68
|
</ul>
|
|
69
69
|
{/if}
|
|
70
70
|
{#if total !== null || viewAll}
|
|
71
|
-
<p class="smrt-records__foot">
|
|
71
|
+
<p class="smrt-records__foot" data-smrt-component="RecordListWidget">
|
|
72
72
|
{#if total !== null}
|
|
73
73
|
<span>{t(M['ui.overview.records.total'], { count: new Intl.NumberFormat(locale).format(total) })}</span>
|
|
74
74
|
{/if}
|
|
@@ -77,6 +77,8 @@ const viewAll = $derived(
|
|
|
77
77
|
{/if}
|
|
78
78
|
|
|
79
79
|
<style>
|
|
80
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
81
|
+
@layer smrt.theme {
|
|
80
82
|
.smrt-records { display: grid; margin: 0; padding: 0; list-style: none; }
|
|
81
83
|
.smrt-records__row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--smrt-spacing-3); padding: var(--smrt-spacing-2) 0; border-block-end: 1px solid var(--smrt-color-outline-variant); }
|
|
82
84
|
.smrt-records__row:last-child { border-block-end: 0; }
|
|
@@ -88,4 +90,5 @@ const viewAll = $derived(
|
|
|
88
90
|
.smrt-records__foot { display: flex; justify-content: space-between; gap: var(--smrt-spacing-3); margin: var(--smrt-spacing-2) 0 0; color: var(--smrt-color-on-surface-variant); font-size: var(--smrt-typography-body-medium-size, 0.875rem); }
|
|
89
91
|
.smrt-records__foot a { color: var(--smrt-color-primary); }
|
|
90
92
|
.smrt-records__empty { margin: 0; color: var(--smrt-color-on-surface-variant); }
|
|
93
|
+
}
|
|
91
94
|
</style>
|
|
@@ -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>
|