@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.
Files changed (153) hide show
  1. package/README.md +5 -3
  2. package/agents/cookbook-shell.md +7 -1
  3. package/agents/overview-surfaces.md +5 -0
  4. package/agents/workspace.md +145 -11
  5. package/dist/browser-ai/svelte/components/DownloadProgress.svelte +22 -19
  6. package/dist/browser-ai/svelte/components/ModelStatusControl.svelte +16 -13
  7. package/dist/browser-ai/svelte/components/STTTest.svelte +41 -38
  8. package/dist/browser-ai/svelte/components/VoiceInput.svelte +17 -14
  9. package/dist/components/activity/ActivityList.svelte +1 -1
  10. package/dist/components/app/AppShell.svelte +274 -9
  11. package/dist/components/app/AppShell.svelte.d.ts +63 -2
  12. package/dist/components/app/AppShell.svelte.d.ts.map +1 -1
  13. package/dist/components/app/DockToggles.svelte +27 -1
  14. package/dist/components/app/DockToggles.svelte.d.ts.map +1 -1
  15. package/dist/components/app/OwnerSetupForm.svelte +98 -34
  16. package/dist/components/app/OwnerSetupForm.svelte.d.ts +4 -0
  17. package/dist/components/app/OwnerSetupForm.svelte.d.ts.map +1 -1
  18. package/dist/components/app/PhoneTabBar.svelte +136 -0
  19. package/dist/components/app/PhoneTabBar.svelte.d.ts +22 -0
  20. package/dist/components/app/PhoneTabBar.svelte.d.ts.map +1 -0
  21. package/dist/components/app/ShellSettingsPage.svelte +17 -2
  22. package/dist/components/app/ShellSettingsPage.svelte.d.ts +11 -16
  23. package/dist/components/app/ShellSettingsPage.svelte.d.ts.map +1 -1
  24. package/dist/components/app/dock-toggle.d.ts +3 -2
  25. package/dist/components/app/dock-toggle.d.ts.map +1 -1
  26. package/dist/components/app/index.d.ts +2 -1
  27. package/dist/components/app/index.d.ts.map +1 -1
  28. package/dist/components/app/index.js +1 -0
  29. package/dist/components/app/owner-setup-types.d.ts +5 -0
  30. package/dist/components/app/owner-setup-types.d.ts.map +1 -1
  31. package/dist/components/app/phone-tabs.d.ts +41 -0
  32. package/dist/components/app/phone-tabs.d.ts.map +1 -0
  33. package/dist/components/app/phone-tabs.js +66 -0
  34. package/dist/components/app/slot-item.d.ts +16 -0
  35. package/dist/components/app/slot-item.d.ts.map +1 -1
  36. package/dist/components/app/view-transition.d.ts +43 -0
  37. package/dist/components/app/view-transition.d.ts.map +1 -0
  38. package/dist/components/app/view-transition.js +76 -0
  39. package/dist/components/audit/AuditList.svelte +4 -1
  40. package/dist/components/audit/RecordHistory.svelte +4 -1
  41. package/dist/components/board/Board.svelte +4 -1
  42. package/dist/components/command-palette/CommandPalette.svelte +4 -1
  43. package/dist/components/command-palette/CommandPalette.svelte.d.ts +2 -0
  44. package/dist/components/command-palette/CommandPalette.svelte.d.ts.map +1 -1
  45. package/dist/components/command-palette/CommandPaletteDialog.svelte +3 -0
  46. package/dist/components/command-palette/CommandPaletteTrigger.svelte +3 -0
  47. package/dist/components/cookbook/CookbookApp.svelte +2 -1
  48. package/dist/components/cookbook/CookbookApp.svelte.d.ts.map +1 -1
  49. package/dist/components/cookbook/CookbookSectionPage.svelte +4 -1
  50. package/dist/components/cookbook/brand-theme.d.ts.map +1 -1
  51. package/dist/components/cookbook/brand-theme.js +21 -2
  52. package/dist/components/cookbook/build.js +1 -1
  53. package/dist/components/cookbook/theme.d.ts.map +1 -1
  54. package/dist/components/cookbook/theme.js +9 -5
  55. package/dist/components/cookbook/types.d.ts +5 -1
  56. package/dist/components/cookbook/types.d.ts.map +1 -1
  57. package/dist/components/forms/AddressInput.svelte +25 -22
  58. package/dist/components/forms/CheckboxInput.svelte +8 -5
  59. package/dist/components/forms/DateRangeInput.svelte +41 -38
  60. package/dist/components/forms/DateTimeInput.svelte +29 -26
  61. package/dist/components/forms/FileUpload.svelte +24 -21
  62. package/dist/components/forms/Form.svelte +34 -31
  63. package/dist/components/forms/FormMicButton.svelte +10 -7
  64. package/dist/components/forms/FormScope.svelte +4 -1
  65. package/dist/components/forms/MeasurementInput.svelte +26 -23
  66. package/dist/components/forms/MoneyInput.svelte +18 -15
  67. package/dist/components/forms/NumberInput.svelte +17 -14
  68. package/dist/components/forms/PhoneInput.svelte +37 -34
  69. package/dist/components/forms/SearchInput.svelte +16 -13
  70. package/dist/components/forms/SelectInput.svelte +17 -14
  71. package/dist/components/forms/TextInput.svelte +19 -16
  72. package/dist/components/forms/TextareaInput.svelte +21 -18
  73. package/dist/components/import-export/ImportExport.svelte +4 -1
  74. package/dist/components/module/ModulePanel.svelte +14 -11
  75. package/dist/components/notifications/NotificationBell.svelte +4 -1
  76. package/dist/components/overview/OverviewAssistantUndo.svelte +4 -1
  77. package/dist/components/overview/OverviewGrid.svelte +11 -6
  78. package/dist/components/overview/OverviewGrid.svelte.d.ts.map +1 -1
  79. package/dist/components/overview/WidgetOptionsForm.svelte +3 -0
  80. package/dist/components/overview/widgets/ChartWidget.svelte +7 -4
  81. package/dist/components/overview/widgets/MetricWidget.svelte +5 -2
  82. package/dist/components/overview/widgets/NoteWidget.svelte +5 -2
  83. package/dist/components/overview/widgets/RecordListWidget.svelte +6 -3
  84. package/dist/components/overview/widgets/ShortcutsWidget.svelte +12 -6
  85. package/dist/components/overview/widgets/ShortcutsWidget.svelte.d.ts.map +1 -1
  86. package/dist/components/screens/DetailScreen.svelte +6 -3
  87. package/dist/components/screens/EditForm.svelte +6 -3
  88. package/dist/components/screens/ListScreen.svelte +4 -1
  89. package/dist/components/screens/RecipeScreens.svelte +1 -1
  90. package/dist/components/settings/SettingsCatalog.svelte +4 -1
  91. package/dist/components/sortable/Sortable.svelte +11 -5
  92. package/dist/components/sortable/Sortable.svelte.d.ts.map +1 -1
  93. package/dist/components/workspace/Breadcrumbs.svelte +4 -1
  94. package/dist/components/workspace/NavTree.svelte +4 -1
  95. package/dist/components/workspace/RoleShell.svelte +4 -1
  96. package/dist/components/workspace/WorkspaceShell.svelte +43 -40
  97. package/dist/components/workspace/admin-shell/ActivityItem.svelte +4 -1
  98. package/dist/components/workspace/admin-shell/ActivityList.svelte +5 -2
  99. package/dist/components/workspace/admin-shell/ActivityTicker.svelte +6 -3
  100. package/dist/components/workspace/admin-shell/ActivityToasts.svelte +4 -1
  101. package/dist/components/workspace/admin-shell/AdminShell.svelte +502 -72
  102. package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts +7 -1
  103. package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
  104. package/dist/components/workspace/admin-shell/AppScopePanel.svelte +4 -1
  105. package/dist/components/workspace/admin-shell/HotkeyInput.svelte +4 -1
  106. package/dist/components/workspace/admin-shell/PhoneBottomBar.svelte +21 -8
  107. package/dist/components/workspace/admin-shell/PhoneBottomBar.svelte.d.ts +9 -2
  108. package/dist/components/workspace/admin-shell/PhoneBottomBar.svelte.d.ts.map +1 -1
  109. package/dist/components/workspace/admin-shell/PhoneTopBar.svelte +4 -1
  110. package/dist/components/workspace/admin-shell/ShellBrand.svelte +3 -0
  111. package/dist/components/workspace/admin-shell/ShellCorner.svelte +4 -1
  112. package/dist/components/workspace/admin-shell/ShellIconButton.svelte +4 -1
  113. package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte +4 -1
  114. package/dist/components/workspace/admin-shell/ShellNavEditor.svelte +13 -7
  115. package/dist/components/workspace/admin-shell/ShellNavEditor.svelte.d.ts +1 -1
  116. package/dist/components/workspace/admin-shell/ShellNavEditor.svelte.d.ts.map +1 -1
  117. package/dist/components/workspace/admin-shell/ShellNavToggle.svelte +4 -1
  118. package/dist/components/workspace/admin-shell/ShellSectionIcon.svelte +4 -1
  119. package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte +15 -10
  120. package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte.d.ts.map +1 -1
  121. package/dist/components/workspace/admin-shell/ShellSettingsPanel.svelte +236 -48
  122. package/dist/components/workspace/admin-shell/ShellSettingsPanel.svelte.d.ts +11 -1
  123. package/dist/components/workspace/admin-shell/ShellSettingsPanel.svelte.d.ts.map +1 -1
  124. package/dist/components/workspace/admin-shell/ShellTitle.svelte +4 -1
  125. package/dist/components/workspace/admin-shell/ShortcutsOverlay.svelte +4 -1
  126. package/dist/components/workspace/admin-shell/SystemScopePanel.svelte +4 -1
  127. package/dist/components/workspace/admin-shell/SystemStatusChips.svelte +5 -2
  128. package/dist/components/workspace/admin-shell/TenantNav.svelte +81 -36
  129. package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts +4 -3
  130. package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts.map +1 -1
  131. package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte +305 -53
  132. package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts +15 -2
  133. package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte.d.ts.map +1 -1
  134. package/dist/components/workspace/admin-shell/motion.d.ts +19 -0
  135. package/dist/components/workspace/admin-shell/motion.d.ts.map +1 -0
  136. package/dist/components/workspace/admin-shell/motion.js +44 -0
  137. package/dist/components/workspace/admin-shell/settings.d.ts +1 -0
  138. package/dist/components/workspace/admin-shell/settings.d.ts.map +1 -1
  139. package/dist/components/workspace/admin-shell/settings.js +1 -1
  140. package/dist/components/workspace/admin-shell/shell-icons.d.ts +8 -0
  141. package/dist/components/workspace/admin-shell/shell-icons.d.ts.map +1 -1
  142. package/dist/components/workspace/admin-shell/shell-icons.js +8 -0
  143. package/dist/components/workspace/admin-shell/state.svelte.d.ts +6 -0
  144. package/dist/components/workspace/admin-shell/state.svelte.d.ts.map +1 -1
  145. package/dist/components/workspace/admin-shell/state.svelte.js +15 -0
  146. package/dist/components/workspace/admin-shell/types.d.ts +13 -3
  147. package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
  148. package/dist/components/workspace/tools-dock/ToolsDock.svelte +41 -38
  149. package/dist/i18n/strings.workspace.d.ts +37 -0
  150. package/dist/i18n/strings.workspace.d.ts.map +1 -1
  151. package/dist/i18n/strings.workspace.js +42 -2
  152. package/dist/mcp-apps/McpAppsBridge.svelte +4 -1
  153. 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 { --_pad: var(--smrt-spacing-2); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: calc(-1 * var(--_pad)); }
546
- .smrt-overview__item { position: relative; grid-column: span var(--span, 1); min-inline-size: 0; padding: var(--_pad); }
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(--_pad); inline-size: 0.1875rem; border-radius: var(--smrt-radius-full, 9999px); background: var(--smrt-color-primary); }
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, 9999px); background: var(--smrt-color-surface-container-high); cursor: ew-resize; touch-action: none; }
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":"AAiCA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA4bzD,QAAA,MAAM,YAAY,uDAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
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, 9999px); background: var(--smrt-color-surface-container-high); overflow: hidden; }
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-shortcuts__icon">
59
- <ShellSectionIcon name={card.icon} size={28} {iconComponent} />
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-shortcuts__icon { display: inline-grid; place-items: center; inline-size: 3rem; block-size: 3rem; border-radius: var(--smrt-radius-full, 9999px); background: var(--smrt-color-primary-container); color: var(--smrt-color-on-primary-container); }
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;AAqE/D,QAAA,MAAM,eAAe,+EAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,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, #5f6368);
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, #5f6368);
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, #5f6368);
310
+ color: var(--smrt-color-on-surface-variant);
309
311
  }
310
312
  .smrt-edit-form__error {
311
- color: var(--smrt-color-error, #b42318);
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>
@@ -169,7 +169,7 @@ async function remove(): Promise<void> {
169
169
  }
170
170
  </script>
171
171
 
172
- <div class="smrt-recipe-screens">
172
+ <div class="smrt-recipe-screens" data-smrt-component="RecipeScreens">
173
173
  {#if view === 'create' && allowCreate}
174
174
  <EditForm
175
175
  {definition}
@@ -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":"AAUA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,iBAAS,QAAQ,CAAC,IAAI,SAAS,YAAY,EAAE,SAAS,SAAS,iBAAiB;WAsPnD,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"}
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, 4px);
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, 9999px);
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, #111827));
309
+ color: var(--smrt-role-color, var(--smrt-color-on-surface));
308
310
  }
311
+ }
309
312
  </style>