@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
@@ -433,6 +433,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
433
433
  </div>
434
434
 
435
435
  <style>
436
+ @layer smrt.reset, smrt.structure, smrt.theme;
437
+ @layer smrt.theme {
436
438
  .smrt-workspace-shell {
437
439
  --smrt-ws-sidebar-width: 280px;
438
440
  --smrt-ws-sidebar-collapsed-width: 96px;
@@ -446,8 +448,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
446
448
  grid-template-columns: var(--smrt-ws-sidebar-width) 1fr;
447
449
  min-height: 100vh;
448
450
  min-height: 100dvh;
449
- background: var(--smrt-color-surface-container-low, #f8fafc);
450
- color: var(--smrt-color-on-surface, #1f2937);
451
+ background: var(--smrt-color-surface-container-low);
452
+ color: var(--smrt-color-on-surface);
451
453
  isolation: isolate;
452
454
  }
453
455
 
@@ -479,8 +481,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
479
481
  height: 100vh;
480
482
  height: 100dvh;
481
483
  box-sizing: border-box;
482
- background: var(--smrt-color-surface, #ffffff);
483
- border-right: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
484
+ background: var(--smrt-color-surface);
485
+ border-right: 1px solid var(--smrt-color-outline-variant);
484
486
  min-width: 0;
485
487
  overflow: hidden;
486
488
  overscroll-behavior: contain;
@@ -505,13 +507,13 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
505
507
  margin: 0;
506
508
  font-size: var(--smrt-typography-title-large-size, 1.25rem);
507
509
  line-height: var(--smrt-typography-title-large-line-height, 1.1);
508
- color: var(--smrt-color-on-surface, #111827);
510
+ color: var(--smrt-color-on-surface);
509
511
  font-weight: var(--smrt-typography-weight-semibold, 600);
510
512
  }
511
513
 
512
514
  .brand .subtitle {
513
515
  margin: 0;
514
- color: var(--smrt-color-on-surface-variant, #6b7280);
516
+ color: var(--smrt-color-on-surface-variant);
515
517
  line-height: var(--smrt-typography-body-medium-line-height, 1.4);
516
518
  font-size: var(--smrt-typography-body-medium-size, 0.9rem);
517
519
  }
@@ -521,7 +523,7 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
521
523
  font-weight: var(--smrt-typography-weight-bold, 700);
522
524
  letter-spacing: var(--smrt-typography-label-small-tracking, 0.12em);
523
525
  text-transform: uppercase;
524
- color: var(--smrt-color-on-surface-variant, #6b7280);
526
+ color: var(--smrt-color-on-surface-variant);
525
527
  }
526
528
 
527
529
  /* These shell-chrome controls now render through smrt-ui <Button>; pierce
@@ -529,9 +531,9 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
529
531
  :global(.class)` (#1589). Button owns focus-visible, so those rules are
530
532
  dropped. The responsive `display` toggles below are preserved. */
531
533
  .smrt-workspace-shell :global(.shell-toggle) {
532
- border: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
533
- background: var(--smrt-color-surface-container, #f3f4f6);
534
- color: var(--smrt-color-on-surface, #111827);
534
+ border: 1px solid var(--smrt-color-outline-variant);
535
+ background: var(--smrt-color-surface-container);
536
+ color: var(--smrt-color-on-surface);
535
537
  border-radius: var(--smrt-radius-medium, 0.65rem);
536
538
  width: 2rem;
537
539
  height: 2rem;
@@ -545,7 +547,7 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
545
547
  }
546
548
 
547
549
  .smrt-workspace-shell :global(.shell-toggle):hover {
548
- background: var(--smrt-color-surface-container-high, #e5e7eb);
550
+ background: var(--smrt-color-surface-container-high);
549
551
  }
550
552
 
551
553
  .shell-toggle-glyph {
@@ -570,8 +572,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
570
572
  display: grid;
571
573
  gap: 0.75rem;
572
574
  padding-top: 0.75rem;
573
- background: var(--smrt-color-surface, #ffffff);
574
- border-top: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
575
+ background: var(--smrt-color-surface);
576
+ border-top: 1px solid var(--smrt-color-outline-variant);
575
577
  z-index: 1;
576
578
  }
577
579
 
@@ -594,8 +596,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
594
596
  gap: 0.85rem;
595
597
  padding: 0.75rem var(--smrt-ws-page-pad);
596
598
  min-height: var(--smrt-ws-topbar-height);
597
- background: var(--smrt-color-surface, #ffffff);
598
- border-bottom: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
599
+ background: var(--smrt-color-surface);
600
+ border-bottom: 1px solid var(--smrt-color-outline-variant);
599
601
  box-shadow: var(--smrt-elevation-1, 0 1px 2px rgb(0 0 0 / 0.05));
600
602
  }
601
603
 
@@ -626,7 +628,7 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
626
628
  }
627
629
 
628
630
  .topbar-eyebrow {
629
- color: var(--smrt-color-on-surface-variant, #6b7280);
631
+ color: var(--smrt-color-on-surface-variant);
630
632
  }
631
633
 
632
634
  .mode-title,
@@ -637,11 +639,11 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
637
639
  .mode-title {
638
640
  font-size: var(--smrt-typography-title-small-size, 0.9rem);
639
641
  font-weight: var(--smrt-typography-weight-semibold, 600);
640
- color: var(--smrt-color-on-surface, #111827);
642
+ color: var(--smrt-color-on-surface);
641
643
  }
642
644
 
643
645
  .mode-detail {
644
- color: var(--smrt-color-on-surface-variant, #6b7280);
646
+ color: var(--smrt-color-on-surface-variant);
645
647
  max-width: 18rem;
646
648
  text-align: right;
647
649
  font-size: var(--smrt-typography-body-medium-size, 0.85rem);
@@ -652,10 +654,10 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
652
654
  align-items: center;
653
655
  gap: 0.4rem;
654
656
  padding: 0.25rem 0.65rem;
655
- border-radius: var(--smrt-radius-full, 999px);
656
- border: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
657
- background: var(--smrt-color-surface-container, #f3f4f6);
658
- color: var(--smrt-color-on-surface, #111827);
657
+ border-radius: var(--smrt-radius-full);
658
+ border: 1px solid var(--smrt-color-outline-variant);
659
+ background: var(--smrt-color-surface-container);
660
+ color: var(--smrt-color-on-surface);
659
661
  font-size: var(--smrt-typography-label-medium-size, 0.78rem);
660
662
  font-weight: var(--smrt-typography-weight-semibold, 600);
661
663
  line-height: 1;
@@ -665,29 +667,29 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
665
667
  .mode-dot {
666
668
  width: 0.55rem;
667
669
  height: 0.55rem;
668
- border-radius: var(--smrt-radius-full, 9999px);
669
- background: var(--smrt-color-on-surface-variant, #9ca3af);
670
+ border-radius: var(--smrt-radius-full);
671
+ background: var(--smrt-color-on-surface-variant);
670
672
  flex-shrink: 0;
671
673
  }
672
674
 
673
675
  .mode-badge[data-status='active'] .mode-dot {
674
- background: var(--smrt-color-success, #16a34a);
676
+ background: var(--smrt-color-success);
675
677
  }
676
678
  .mode-badge[data-status='offline'] .mode-dot {
677
- background: var(--smrt-color-on-surface-variant, #9ca3af);
679
+ background: var(--smrt-color-on-surface-variant);
678
680
  }
679
681
  .mode-badge[data-status='local-only'] .mode-dot {
680
- background: var(--smrt-color-primary, #2563eb);
682
+ background: var(--smrt-color-primary);
681
683
  }
682
684
  .mode-badge[data-status='attention'] .mode-dot {
683
- background: var(--smrt-color-warning, #f59e0b);
685
+ background: var(--smrt-color-warning);
684
686
  }
685
687
 
686
688
  .smrt-workspace-shell :global(.mobile-menu) {
687
689
  display: none;
688
- border: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
689
- background: var(--smrt-color-surface, #ffffff);
690
- color: var(--smrt-color-on-surface, #111827);
690
+ border: 1px solid var(--smrt-color-outline-variant);
691
+ background: var(--smrt-color-surface);
692
+ color: var(--smrt-color-on-surface);
691
693
  border-radius: var(--smrt-radius-medium, 0.65rem);
692
694
  width: 2.35rem;
693
695
  height: 2.35rem;
@@ -718,8 +720,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
718
720
  width: var(--smrt-ws-inspector-width);
719
721
  display: flex;
720
722
  flex-direction: column;
721
- background: var(--smrt-color-surface, #ffffff);
722
- border-left: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
723
+ background: var(--smrt-color-surface);
724
+ border-left: 1px solid var(--smrt-color-outline-variant);
723
725
  box-shadow: var(--smrt-elevation-2, 0 4px 6px -1px rgb(0 0 0 / 0.1));
724
726
  z-index: 22;
725
727
  }
@@ -729,19 +731,19 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
729
731
  align-items: center;
730
732
  justify-content: space-between;
731
733
  padding: 0.85rem 1rem;
732
- border-bottom: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
734
+ border-bottom: 1px solid var(--smrt-color-outline-variant);
733
735
  }
734
736
 
735
737
  .inspector-title {
736
738
  font-weight: var(--smrt-typography-weight-semibold, 600);
737
- color: var(--smrt-color-on-surface, #111827);
739
+ color: var(--smrt-color-on-surface);
738
740
  font-size: var(--smrt-typography-title-medium-size, 0.95rem);
739
741
  }
740
742
 
741
743
  .smrt-workspace-shell :global(.inspector-close) {
742
744
  border: 1px solid transparent;
743
745
  background: transparent;
744
- color: var(--smrt-color-on-surface-variant, #6b7280);
746
+ color: var(--smrt-color-on-surface-variant);
745
747
  border-radius: var(--smrt-radius-medium, 0.5rem);
746
748
  width: 2rem;
747
749
  height: 2rem;
@@ -756,8 +758,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
756
758
  }
757
759
 
758
760
  .smrt-workspace-shell :global(.inspector-close):hover {
759
- background: var(--smrt-color-surface-container-high, #e5e7eb);
760
- color: var(--smrt-color-on-surface, #111827);
761
+ background: var(--smrt-color-surface-container-high);
762
+ color: var(--smrt-color-on-surface);
761
763
  }
762
764
 
763
765
  .inspector-body {
@@ -778,8 +780,8 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
778
780
  align-items: center;
779
781
  gap: 0.4rem;
780
782
  padding: 0.75rem 0.25rem;
781
- background: var(--smrt-color-surface, #ffffff);
782
- border-left: 1px solid var(--smrt-color-outline-variant, #e5e7eb);
783
+ background: var(--smrt-color-surface);
784
+ border-left: 1px solid var(--smrt-color-outline-variant);
783
785
  z-index: 18;
784
786
  }
785
787
 
@@ -941,4 +943,5 @@ const sidebarInert = $derived(isMobileViewport && !mobileNavOpen);
941
943
  text-align: left;
942
944
  }
943
945
  }
946
+ }
944
947
  </style>
@@ -13,7 +13,7 @@ let { activity }: Props = $props();
13
13
  const { t } = useI18n();
14
14
  </script>
15
15
 
16
- <article class="smrt-activity-item" data-status={activity.status}>
16
+ <article class="smrt-activity-item" data-status={activity.status} data-smrt-component="ActivityItem">
17
17
  <div class="smrt-activity-item__main">
18
18
  <strong>{activity.label}</strong>
19
19
  <span>{activity.status}</span>
@@ -41,6 +41,8 @@ const { t } = useI18n();
41
41
  </article>
42
42
 
43
43
  <style>
44
+ @layer smrt.reset, smrt.structure, smrt.theme;
45
+ @layer smrt.theme {
44
46
  .smrt-activity-item {
45
47
  display: flex;
46
48
  align-items: flex-start;
@@ -83,4 +85,5 @@ const { t } = useI18n();
83
85
  gap: var(--smrt-spacing-2);
84
86
  justify-content: flex-end;
85
87
  }
88
+ }
86
89
  </style>
@@ -21,18 +21,20 @@ const activities = $derived(shell.listActivities(filter));
21
21
  </script>
22
22
 
23
23
  {#if activities.length > 0}
24
- <div class="smrt-activity-list">
24
+ <div class="smrt-activity-list" data-smrt-component="ActivityList">
25
25
  {#each activities as activity (activity.id)}
26
26
  <ActivityItem {activity} />
27
27
  {/each}
28
28
  </div>
29
29
  {:else if !hideWhenEmpty}
30
- <p class="smrt-activity-list__empty">
30
+ <p class="smrt-activity-list__empty" data-smrt-component="ActivityList">
31
31
  {emptyLabel ?? t(M['ui.activity_list.empty'])}
32
32
  </p>
33
33
  {/if}
34
34
 
35
35
  <style>
36
+ @layer smrt.reset, smrt.structure, smrt.theme;
37
+ @layer smrt.theme {
36
38
  .smrt-activity-list {
37
39
  display: grid;
38
40
  }
@@ -41,4 +43,5 @@ const activities = $derived(shell.listActivities(filter));
41
43
  margin: 0;
42
44
  color: var(--smrt-color-on-surface-variant);
43
45
  }
46
+ }
44
47
  </style>
@@ -41,8 +41,8 @@ function activityLabel(activity: ShellActivity): string {
41
41
  }
42
42
  </script>
43
43
 
44
- <div class="smrt-activity-ticker-shell">
45
- <div class="smrt-activity-ticker" class:multiple class:paused role="region" aria-label={label ?? t(M['ui.activity_ticker.label'])} style:--activity-ticker-duration={`${Math.max(20, running.length * 10)}s`}>
44
+ <div class="smrt-activity-ticker-shell" data-smrt-component="ActivityTicker">
45
+ <div class="smrt-activity-ticker" class:multiple class:paused role="region" aria-label={label ?? t(M['ui.activity_ticker.label'])} style:--smrt-activity-ticker-duration={`${Math.max(20, running.length * 10)}s`}>
46
46
  {#if running.length === 0}
47
47
  <span class="smrt-activity-ticker__empty">{emptyLabel ?? t(M['ui.activity_ticker.empty'])}</span>
48
48
  {:else}
@@ -73,12 +73,14 @@ function activityLabel(activity: ShellActivity): string {
73
73
  </div>
74
74
 
75
75
  <style>
76
+ @layer smrt.reset, smrt.structure, smrt.theme;
77
+ @layer smrt.theme {
76
78
  .smrt-activity-ticker-shell { display:flex; align-items:center; flex:1; min-width:0; gap:var(--smrt-spacing-2); }
77
79
  .smrt-activity-ticker { flex:1; min-width:0; overflow:hidden; color:var(--smrt-color-on-surface-variant); font-size:var(--smrt-typography-body-small-size); white-space:nowrap; }
78
80
  .smrt-activity-ticker__track { display:flex; width:max-content; }
79
81
  .smrt-activity-ticker__group { display:flex; gap:var(--smrt-spacing-6); flex-shrink:0; }
80
82
  .multiple .smrt-activity-ticker__group { padding-inline-end:var(--smrt-spacing-6); }
81
- .multiple .smrt-activity-ticker__track { animation:smrt-activity-scroll var(--activity-ticker-duration) linear infinite; }
83
+ .multiple .smrt-activity-ticker__track { animation:smrt-activity-scroll var(--smrt-activity-ticker-duration) linear infinite; }
82
84
  .smrt-activity-ticker.paused .smrt-activity-ticker__track,
83
85
  .smrt-activity-ticker:hover .smrt-activity-ticker__track,
84
86
  .smrt-activity-ticker-shell:focus-within .smrt-activity-ticker__track { animation-play-state:paused; }
@@ -89,4 +91,5 @@ function activityLabel(activity: ShellActivity): string {
89
91
  .multiple .smrt-activity-ticker__track { animation:none; }
90
92
  .smrt-activity-ticker__copy, .smrt-activity-ticker__control { display:none; }
91
93
  }
94
+ }
92
95
  </style>
@@ -60,7 +60,7 @@ onDestroy(() => {
60
60
  </script>
61
61
 
62
62
  {#if toasts.length > 0}
63
- <div class="smrt-activity-toasts" aria-live="polite">
63
+ <div class="smrt-activity-toasts" aria-live="polite" data-smrt-component="ActivityToasts">
64
64
  {#each toasts as toast (toast.id)}
65
65
  <article class="smrt-activity-toast" data-status={toast.activity.status}>
66
66
  <div>
@@ -81,6 +81,8 @@ onDestroy(() => {
81
81
  {/if}
82
82
 
83
83
  <style>
84
+ @layer smrt.reset, smrt.structure, smrt.theme;
85
+ @layer smrt.theme {
84
86
  .smrt-activity-toasts {
85
87
  position: fixed;
86
88
  inset-block-start: var(--smrt-spacing-4);
@@ -138,4 +140,5 @@ onDestroy(() => {
138
140
  transform: translateY(0);
139
141
  }
140
142
  }
143
+ }
141
144
  </style>