@happyvertical/smrt-svelte 0.55.15 → 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
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/** Default number of navigation and dock tabs. */
|
|
2
|
+
export const PHONE_TAB_DEFAULT_ITEMS = 4;
|
|
3
|
+
/** Normalise the `phoneTabBar` prop: `null` when off, else the item budget. */
|
|
4
|
+
export function resolvePhoneTabBar(value) {
|
|
5
|
+
if (!value)
|
|
6
|
+
return null;
|
|
7
|
+
const items = typeof value === 'object' ? value.items : undefined;
|
|
8
|
+
const n = Number.isFinite(items)
|
|
9
|
+
? Math.floor(items)
|
|
10
|
+
: PHONE_TAB_DEFAULT_ITEMS;
|
|
11
|
+
return { items: Math.max(1, n) };
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Top-level navigation destinations in order: the flat items, then either each
|
|
15
|
+
* group's entries (`items` mode) or one entry per group (`sections` modes),
|
|
16
|
+
* the way the left sidebar lists them.
|
|
17
|
+
*/
|
|
18
|
+
export function phoneTabNavEntries(nav, groups, navMode = 'items', sectionHref) {
|
|
19
|
+
const out = [];
|
|
20
|
+
const add = (entry) => {
|
|
21
|
+
if (!out.some((existing) => existing.id === entry.id))
|
|
22
|
+
out.push(entry);
|
|
23
|
+
};
|
|
24
|
+
for (const item of nav) {
|
|
25
|
+
add({
|
|
26
|
+
id: item.id ?? item.href,
|
|
27
|
+
label: item.label,
|
|
28
|
+
href: item.href,
|
|
29
|
+
icon: item.icon,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
for (const group of groups) {
|
|
33
|
+
if (navMode === 'items') {
|
|
34
|
+
for (const item of group.items) {
|
|
35
|
+
add({
|
|
36
|
+
id: item.id ?? item.href,
|
|
37
|
+
label: item.label,
|
|
38
|
+
href: item.href,
|
|
39
|
+
icon: item.icon,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const id = group.id ?? group.heading;
|
|
45
|
+
const href = group.href ?? sectionHref?.(id) ?? group.items[0]?.href;
|
|
46
|
+
if (href)
|
|
47
|
+
add({ id, label: group.heading, href, icon: group.icon });
|
|
48
|
+
}
|
|
49
|
+
return out;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Choose the tabs: `budget` counts navigation and dock tabs together (the
|
|
53
|
+
* dock tab takes one place when present); "More" is added on top only when
|
|
54
|
+
* navigation overflows.
|
|
55
|
+
*/
|
|
56
|
+
export function planPhoneTabs(entries, budget, hasDockTab) {
|
|
57
|
+
const slots = Math.max(0, budget - (hasDockTab ? 1 : 0));
|
|
58
|
+
return {
|
|
59
|
+
nav: entries.slice(0, slots),
|
|
60
|
+
more: entries.length > slots,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** True when `href` is the current page or an ancestor of it. */
|
|
64
|
+
export function isTabCurrent(href, currentHref) {
|
|
65
|
+
return href === currentHref || currentHref.startsWith(`${href}/`);
|
|
66
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { PaletteProvider } from '../command-palette/types.js';
|
|
2
3
|
import type { ShellSlot } from '../workspace/admin-shell/slots.js';
|
|
3
4
|
/**
|
|
4
5
|
* A host item that lives in a shell slot and that users can move to another
|
|
@@ -18,4 +19,19 @@ export interface ShellSlotItem {
|
|
|
18
19
|
/** The content. */
|
|
19
20
|
render: Snippet;
|
|
20
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* `AppShell` `accountMenu`: `false` opts out of the built-in `item:account`;
|
|
24
|
+
* `{ slot }` sets its default slot (default `leftSidebar.footer`, the end of
|
|
25
|
+
* the header band on phones).
|
|
26
|
+
*/
|
|
27
|
+
export type AppShellAccountMenu = boolean | {
|
|
28
|
+
slot?: ShellSlot;
|
|
29
|
+
};
|
|
30
|
+
/** `AppShell` `commandPalette`: the built-in `item:command-palette`. */
|
|
31
|
+
export interface AppShellCommandPalette {
|
|
32
|
+
/** Providers for the palette (navigation, records, commands). */
|
|
33
|
+
providers: PaletteProvider[];
|
|
34
|
+
/** Search box placeholder in the palette dialog. */
|
|
35
|
+
placeholder?: string;
|
|
36
|
+
}
|
|
21
37
|
//# sourceMappingURL=slot-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot-item.d.ts","sourceRoot":"","sources":["../../../src/components/app/slot-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB"}
|
|
1
|
+
{"version":3,"file":"slot-item.d.ts","sourceRoot":"","sources":["../../../src/components/app/slot-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAEnE;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG;IAAE,IAAI,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC;AAEjE,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View Transitions helpers for hosts. Plain functions: no SvelteKit, no
|
|
3
|
+
* `$app/*`, usable from a hash router or any non-SvelteKit host.
|
|
4
|
+
*
|
|
5
|
+
* While a transition runs, `<html data-smrt-view-transition>` is set. The
|
|
6
|
+
* shell assigns these `view-transition-name`s only during that window (so the
|
|
7
|
+
* names never create containing blocks the rest of the time), and each must be
|
|
8
|
+
* unique per document: hosts must not reuse them.
|
|
9
|
+
*
|
|
10
|
+
* - `smrt-shell-brand` the brand
|
|
11
|
+
* - `smrt-shell-nav` the left sidebar navigation
|
|
12
|
+
* - `smrt-shell-dock` the right dock
|
|
13
|
+
*/
|
|
14
|
+
export declare const VIEW_TRANSITION_ATTRIBUTE = "data-smrt-view-transition";
|
|
15
|
+
export interface RunViewTransitionOptions {
|
|
16
|
+
/** Run `update` without a transition. */
|
|
17
|
+
skip?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Runs `update` inside `document.startViewTransition` when the API exists and
|
|
21
|
+
* reduced motion is off; otherwise just awaits `update()`. Resolves once the
|
|
22
|
+
* DOM update has been applied (not when the animation ends). An aborted or
|
|
23
|
+
* skipped transition never throws; an error thrown by `update` itself does.
|
|
24
|
+
*/
|
|
25
|
+
export declare function runViewTransition(update: () => void | Promise<void>, options?: RunViewTransitionOptions): Promise<void>;
|
|
26
|
+
/** The slice of SvelteKit's `Navigation` the adapter needs. */
|
|
27
|
+
export interface ViewTransitionNavigation {
|
|
28
|
+
complete: Promise<unknown>;
|
|
29
|
+
type?: string;
|
|
30
|
+
willUnload?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Adapter for SvelteKit's `onNavigate`:
|
|
34
|
+
*
|
|
35
|
+
* ```ts
|
|
36
|
+
* onNavigate(createOnNavigateViewTransition());
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* Returns a promise that resolves once the transition has captured the old
|
|
40
|
+
* view, which is what `onNavigate` awaits before updating the DOM.
|
|
41
|
+
*/
|
|
42
|
+
export declare function createOnNavigateViewTransition(options?: RunViewTransitionOptions): (navigation: ViewTransitionNavigation) => Promise<void> | void;
|
|
43
|
+
//# sourceMappingURL=view-transition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-transition.d.ts","sourceRoot":"","sources":["../../../src/components/app/view-transition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAErE,MAAM,WAAW,wBAAwB;IACvC,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAsBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAClC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,+DAA+D;AAC/D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,wBAA6B,GACrC,CAAC,UAAU,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAUhE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View Transitions helpers for hosts. Plain functions: no SvelteKit, no
|
|
3
|
+
* `$app/*`, usable from a hash router or any non-SvelteKit host.
|
|
4
|
+
*
|
|
5
|
+
* While a transition runs, `<html data-smrt-view-transition>` is set. The
|
|
6
|
+
* shell assigns these `view-transition-name`s only during that window (so the
|
|
7
|
+
* names never create containing blocks the rest of the time), and each must be
|
|
8
|
+
* unique per document: hosts must not reuse them.
|
|
9
|
+
*
|
|
10
|
+
* - `smrt-shell-brand` the brand
|
|
11
|
+
* - `smrt-shell-nav` the left sidebar navigation
|
|
12
|
+
* - `smrt-shell-dock` the right dock
|
|
13
|
+
*/
|
|
14
|
+
export const VIEW_TRANSITION_ATTRIBUTE = 'data-smrt-view-transition';
|
|
15
|
+
let active = 0;
|
|
16
|
+
function reducedMotion() {
|
|
17
|
+
return (typeof window !== 'undefined' &&
|
|
18
|
+
typeof window.matchMedia === 'function' &&
|
|
19
|
+
window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Runs `update` inside `document.startViewTransition` when the API exists and
|
|
23
|
+
* reduced motion is off; otherwise just awaits `update()`. Resolves once the
|
|
24
|
+
* DOM update has been applied (not when the animation ends). An aborted or
|
|
25
|
+
* skipped transition never throws; an error thrown by `update` itself does.
|
|
26
|
+
*/
|
|
27
|
+
export async function runViewTransition(update, options = {}) {
|
|
28
|
+
const doc = typeof document === 'undefined' ? undefined : document;
|
|
29
|
+
const start = doc?.startViewTransition;
|
|
30
|
+
if (!doc || options.skip || typeof start !== 'function' || reducedMotion()) {
|
|
31
|
+
await update();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
let transition;
|
|
35
|
+
active += 1;
|
|
36
|
+
doc.documentElement.setAttribute(VIEW_TRANSITION_ATTRIBUTE, '');
|
|
37
|
+
const release = () => {
|
|
38
|
+
active = Math.max(0, active - 1);
|
|
39
|
+
if (active === 0)
|
|
40
|
+
doc.documentElement.removeAttribute(VIEW_TRANSITION_ATTRIBUTE);
|
|
41
|
+
};
|
|
42
|
+
try {
|
|
43
|
+
transition = start.call(doc, update);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
release();
|
|
47
|
+
await update();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
// Aborts reject `ready` / `finished`; they are not errors.
|
|
51
|
+
transition.ready?.catch(() => { });
|
|
52
|
+
void Promise.resolve(transition.finished).then(release, release);
|
|
53
|
+
await transition.updateCallbackDone;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Adapter for SvelteKit's `onNavigate`:
|
|
57
|
+
*
|
|
58
|
+
* ```ts
|
|
59
|
+
* onNavigate(createOnNavigateViewTransition());
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* Returns a promise that resolves once the transition has captured the old
|
|
63
|
+
* view, which is what `onNavigate` awaits before updating the DOM.
|
|
64
|
+
*/
|
|
65
|
+
export function createOnNavigateViewTransition(options = {}) {
|
|
66
|
+
return (navigation) => {
|
|
67
|
+
if (navigation.willUnload || navigation.type === 'leave')
|
|
68
|
+
return;
|
|
69
|
+
return new Promise((resolve) => {
|
|
70
|
+
runViewTransition(async () => {
|
|
71
|
+
resolve();
|
|
72
|
+
await navigation.complete;
|
|
73
|
+
}, options).then(resolve, resolve);
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -80,7 +80,7 @@ function apply() {
|
|
|
80
80
|
}
|
|
81
81
|
</script>
|
|
82
82
|
|
|
83
|
-
<section aria-label={t(M['ui.audit.list'])}>
|
|
83
|
+
<section aria-label={t(M['ui.audit.list'])} data-smrt-component="AuditList">
|
|
84
84
|
{#if showFilters}
|
|
85
85
|
<Form onsubmit={apply} class="smrt-audit-filters">
|
|
86
86
|
<FormGroup label={t(M['ui.audit.person'])}><Input bind:value={profileId} /></FormGroup>
|
|
@@ -103,5 +103,8 @@ function apply() {
|
|
|
103
103
|
</section>
|
|
104
104
|
|
|
105
105
|
<style>
|
|
106
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
107
|
+
@layer smrt.theme {
|
|
106
108
|
.smrt-audit-filters { display: flex; flex-wrap: wrap; gap: var(--smrt-spacing-3); align-items: end; }
|
|
109
|
+
}
|
|
107
110
|
</style>
|
|
@@ -146,7 +146,7 @@ function date(value: string): string {
|
|
|
146
146
|
}
|
|
147
147
|
</script>
|
|
148
148
|
|
|
149
|
-
<section aria-label={label ?? t(M['ui.audit.history'])} aria-busy={loading} class="smrt-record-history">
|
|
149
|
+
<section aria-label={label ?? t(M['ui.audit.history'])} aria-busy={loading} class="smrt-record-history" data-smrt-component="RecordHistory">
|
|
150
150
|
{#if error}<p role="alert">{error}</p>{/if}
|
|
151
151
|
{#if loading}<p role="status">{t(M['ui.audit.loading'])}</p>{/if}
|
|
152
152
|
{#if !loading && visible.length === 0}<p>{t(M['ui.audit.empty'])}</p>{/if}
|
|
@@ -180,6 +180,8 @@ function date(value: string): string {
|
|
|
180
180
|
</section>
|
|
181
181
|
|
|
182
182
|
<style>
|
|
183
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
184
|
+
@layer smrt.theme {
|
|
183
185
|
.smrt-record-history > ol {
|
|
184
186
|
display: grid;
|
|
185
187
|
margin: 0;
|
|
@@ -231,4 +233,5 @@ function date(value: string): string {
|
|
|
231
233
|
background: var(--smrt-color-surface-container-low);
|
|
232
234
|
list-style: none;
|
|
233
235
|
}
|
|
236
|
+
}
|
|
234
237
|
</style>
|
|
@@ -212,7 +212,7 @@ function toggleColumn(columnId: string): void {
|
|
|
212
212
|
}
|
|
213
213
|
</script>
|
|
214
214
|
|
|
215
|
-
<section bind:this={root} class="smrt-board" aria-label={label ?? t(M['ui.board.label'])} aria-roledescription="board">
|
|
215
|
+
<section bind:this={root} class="smrt-board" aria-label={label ?? t(M['ui.board.label'])} aria-roledescription="board" data-smrt-component="Board">
|
|
216
216
|
<div class="smrt-board__lanes">
|
|
217
217
|
{#each columns as column, columnIndex (column.id)}
|
|
218
218
|
{@const items = cardsInColumn(column.id)}
|
|
@@ -291,6 +291,8 @@ function toggleColumn(columnId: string): void {
|
|
|
291
291
|
</section>
|
|
292
292
|
|
|
293
293
|
<style>
|
|
294
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
295
|
+
@layer smrt.theme {
|
|
294
296
|
.smrt-board { min-width: 0; }
|
|
295
297
|
.smrt-board__lanes { display: flex; gap: var(--smrt-spacing-4); overflow-x: auto; overscroll-behavior-x: contain; padding-block-end: var(--smrt-spacing-2); }
|
|
296
298
|
.smrt-board__lane { display: grid; grid-template-rows: auto minmax(0, 1fr); flex: 0 0 min(18rem, 82vw); min-block-size: 12rem; max-block-size: min(42rem, 70vh); border: 1px solid var(--smrt-color-outline-variant); border-radius: var(--smrt-radius-md); background: var(--smrt-color-surface-container); overflow: hidden; }
|
|
@@ -307,4 +309,5 @@ function toggleColumn(columnId: string): void {
|
|
|
307
309
|
.smrt-board__empty { margin: 0; color: var(--smrt-color-on-surface-variant); font: var(--smrt-typography-body-small-font); }
|
|
308
310
|
.smrt-board__live { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
|
|
309
311
|
@media (prefers-reduced-motion: reduce) { .smrt-board__card { scroll-behavior: auto; } }
|
|
312
|
+
}
|
|
310
313
|
</style>
|
|
@@ -34,6 +34,8 @@ interface Props {
|
|
|
34
34
|
hotkeys?: readonly string[] | false;
|
|
35
35
|
/** Trigger text and dialog name (default "Search"). */
|
|
36
36
|
label?: string;
|
|
37
|
+
/** Search box placeholder in the dialog. */
|
|
38
|
+
placeholder?: string;
|
|
37
39
|
/** Show only the glyph in the trigger. */
|
|
38
40
|
compact?: boolean;
|
|
39
41
|
/** Render the dialog and shortcut without a trigger. */
|
|
@@ -46,6 +48,7 @@ let {
|
|
|
46
48
|
navigate,
|
|
47
49
|
hotkeys = DEFAULT_PALETTE_HOTKEYS,
|
|
48
50
|
label,
|
|
51
|
+
placeholder,
|
|
49
52
|
compact = false,
|
|
50
53
|
hideTrigger = false,
|
|
51
54
|
}: Props = $props();
|
|
@@ -72,4 +75,4 @@ const palette = $derived(
|
|
|
72
75
|
hotkeys={hotkeys === false ? [] : hotkeys}
|
|
73
76
|
/>
|
|
74
77
|
{/if}
|
|
75
|
-
<CommandPaletteDialog {palette} {hotkeys} {label} />
|
|
78
|
+
<CommandPaletteDialog {palette} {hotkeys} {label} {placeholder} />
|
|
@@ -11,6 +11,8 @@ interface Props {
|
|
|
11
11
|
hotkeys?: readonly string[] | false;
|
|
12
12
|
/** Trigger text and dialog name (default "Search"). */
|
|
13
13
|
label?: string;
|
|
14
|
+
/** Search box placeholder in the dialog. */
|
|
15
|
+
placeholder?: string;
|
|
14
16
|
/** Show only the glyph in the trigger. */
|
|
15
17
|
compact?: boolean;
|
|
16
18
|
/** Render the dialog and shortcut without a trigger. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPalette.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/command-palette/CommandPalette.svelte.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,wBAAwB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,UAAU,KAAK;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC7C,2DAA2D;IAC3D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"CommandPalette.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/command-palette/CommandPalette.svelte.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,wBAAwB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,UAAU,KAAK;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC7C,2DAA2D;IAC3D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,KAAK,CAAC;IACpC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA4CD,QAAA,MAAM,cAAc,2CAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
|
|
@@ -256,6 +256,8 @@ const inputLabel = $derived(label ?? t(M['ui.command_palette.input_label']));
|
|
|
256
256
|
</Modal>
|
|
257
257
|
|
|
258
258
|
<style>
|
|
259
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
260
|
+
@layer smrt.theme {
|
|
259
261
|
.smrt-command-palette {
|
|
260
262
|
display: flex;
|
|
261
263
|
flex-direction: column;
|
|
@@ -403,4 +405,5 @@ const inputLabel = $derived(label ?? t(M['ui.command_palette.input_label']));
|
|
|
403
405
|
clip-path: inset(50%);
|
|
404
406
|
white-space: nowrap;
|
|
405
407
|
}
|
|
408
|
+
}
|
|
406
409
|
</style>
|
|
@@ -69,6 +69,8 @@ const hint = $derived(hotkeys[0] ? formatPaletteHotkey(hotkeys[0], apple) : '');
|
|
|
69
69
|
</Button>
|
|
70
70
|
|
|
71
71
|
<style>
|
|
72
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
73
|
+
@layer smrt.theme {
|
|
72
74
|
:global(.smrt-command-palette-trigger) {
|
|
73
75
|
gap: 0.5rem;
|
|
74
76
|
}
|
|
@@ -88,4 +90,5 @@ const hint = $derived(hotkeys[0] ? formatPaletteHotkey(hotkeys[0], apple) : '');
|
|
|
88
90
|
display: none;
|
|
89
91
|
}
|
|
90
92
|
}
|
|
93
|
+
}
|
|
91
94
|
</style>
|
|
@@ -41,6 +41,7 @@ let {
|
|
|
41
41
|
sectionPath,
|
|
42
42
|
href,
|
|
43
43
|
title,
|
|
44
|
+
navMode = 'sections-with-items',
|
|
44
45
|
slotItems = [],
|
|
45
46
|
children,
|
|
46
47
|
...shellProps
|
|
@@ -220,7 +221,7 @@ setCookbookContext({
|
|
|
220
221
|
<AppShell
|
|
221
222
|
{...shellProps}
|
|
222
223
|
title={shell.title}
|
|
223
|
-
navMode
|
|
224
|
+
{navMode}
|
|
224
225
|
navGroups={shell.navGroups}
|
|
225
226
|
{layout}
|
|
226
227
|
onlayoutchange={(next) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CookbookApp.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/CookbookApp.svelte.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"CookbookApp.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/CookbookApp.svelte.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAuNnD,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
|
|
@@ -43,7 +43,7 @@ const store = {
|
|
|
43
43
|
{#if title}<title>{title}</title>{/if}
|
|
44
44
|
</svelte:head>
|
|
45
45
|
|
|
46
|
-
<main class="cookbook-section">
|
|
46
|
+
<main class="cookbook-section" data-smrt-component="CookbookSectionPage">
|
|
47
47
|
{#if section}
|
|
48
48
|
<header>
|
|
49
49
|
<span class="mark"><ShellSectionIcon name={icon} size={28} /></span>
|
|
@@ -82,6 +82,8 @@ const store = {
|
|
|
82
82
|
</main>
|
|
83
83
|
|
|
84
84
|
<style>
|
|
85
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
86
|
+
@layer smrt.theme {
|
|
85
87
|
.cookbook-section {
|
|
86
88
|
display: grid;
|
|
87
89
|
gap: var(--smrt-spacing-6);
|
|
@@ -130,4 +132,5 @@ const store = {
|
|
|
130
132
|
margin: 0;
|
|
131
133
|
font-size: var(--smrt-typography-title-medium-size, 1rem);
|
|
132
134
|
}
|
|
135
|
+
}
|
|
133
136
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brand-theme.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/brand-theme.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"brand-theme.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/brand-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,GAAG,WAAW,CAqC5E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createThemeFromColor, isValidPreset, registerTheme, } from '@happyvertical/smrt-ui/themes';
|
|
1
|
+
import { createThemeFromColor, getTheme, isValidPreset, registerTheme, } from '@happyvertical/smrt-ui/themes';
|
|
2
2
|
import { DEFAULT_THEME_PRESET, THEME_FONTS } from './theme.js';
|
|
3
3
|
const registered = new Set();
|
|
4
4
|
/**
|
|
@@ -20,5 +20,24 @@ export function applyCookbookTheme(theme) {
|
|
|
20
20
|
}
|
|
21
21
|
return theme.preset;
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
const basePreset = (isValidPreset(theme.preset) ? theme.preset : DEFAULT_THEME_PRESET);
|
|
24
|
+
const font = theme.fontFamily && THEME_FONTS[theme.fontFamily];
|
|
25
|
+
if (!font)
|
|
26
|
+
return basePreset;
|
|
27
|
+
const id = `cookbook-preset-${basePreset}-${theme.fontFamily?.toLowerCase().replace(/[^a-z0-9]/g, '')}`;
|
|
28
|
+
if (!registered.has(id)) {
|
|
29
|
+
const base = getTheme(basePreset);
|
|
30
|
+
const typography = Object.fromEntries(Object.entries(base.typography).map(([key, token]) => [
|
|
31
|
+
key,
|
|
32
|
+
{ ...token, fontFamily: 'var(--smrt-font-family)' },
|
|
33
|
+
]));
|
|
34
|
+
registerTheme({
|
|
35
|
+
...base,
|
|
36
|
+
id: id,
|
|
37
|
+
fontFamily: font,
|
|
38
|
+
typography,
|
|
39
|
+
});
|
|
40
|
+
registered.add(id);
|
|
41
|
+
}
|
|
42
|
+
return id;
|
|
24
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAC3C,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AAEtD,gGAAgG;AAChG,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxD,CAAC;AAIF,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO1D;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,GAAG,SAAS,GAC/B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/theme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAC3C,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AAEtD,gGAAgG;AAChG,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxD,CAAC;AAIF,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAO1D;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,GAAG,SAAS,GAC/B,qBAAqB,CAuBvB"}
|
|
@@ -38,16 +38,20 @@ export function resolveCookbookTheme(theme) {
|
|
|
38
38
|
? theme.colorScheme
|
|
39
39
|
: DEFAULT_COLOR_SCHEME;
|
|
40
40
|
const primary = theme?.custom ? normalizeHex(theme.custom.primary) : null;
|
|
41
|
+
const font = theme?.fontFamily ?? theme?.custom?.fontFamily;
|
|
42
|
+
const fontFamily = typeof font === 'string' && Object.hasOwn(THEME_FONTS, font)
|
|
43
|
+
? font
|
|
44
|
+
: undefined;
|
|
41
45
|
if (theme?.custom && primary) {
|
|
42
|
-
const font = theme.custom.fontFamily;
|
|
43
|
-
const fontFamily = typeof font === 'string' && Object.hasOwn(THEME_FONTS, font)
|
|
44
|
-
? font
|
|
45
|
-
: undefined;
|
|
46
46
|
return {
|
|
47
47
|
preset: brandThemeId(primary, fontFamily),
|
|
48
48
|
colorScheme,
|
|
49
49
|
brand: { primary, ...(fontFamily ? { fontFamily } : {}) },
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
return {
|
|
52
|
+
return {
|
|
53
|
+
preset: theme?.preset || DEFAULT_THEME_PRESET,
|
|
54
|
+
colorScheme,
|
|
55
|
+
...(fontFamily ? { fontFamily } : {}),
|
|
56
|
+
};
|
|
53
57
|
}
|
|
@@ -96,6 +96,8 @@ export interface ResolvedCookbookTheme {
|
|
|
96
96
|
/** Preset id: a built-in smrt-ui preset, or the brand theme's id. */
|
|
97
97
|
preset: string;
|
|
98
98
|
colorScheme: 'light' | 'dark' | 'system';
|
|
99
|
+
/** Known font key applied without changing a built-in preset's palette. */
|
|
100
|
+
fontFamily?: string;
|
|
99
101
|
/** Present when the cookbook names a brand colour (it wins over `preset`). */
|
|
100
102
|
brand?: {
|
|
101
103
|
primary: string;
|
|
@@ -142,7 +144,7 @@ export interface BuildCookbookShellOptions {
|
|
|
142
144
|
/** Everything `AppShell` and the section pages need, derived from a cookbook. */
|
|
143
145
|
export interface CookbookShell {
|
|
144
146
|
title: string;
|
|
145
|
-
navMode: 'sections';
|
|
147
|
+
navMode: 'sections-with-items';
|
|
146
148
|
/** Sections as the shell takes them (layout is applied by the shell). */
|
|
147
149
|
navGroups: ShellNavGroup[];
|
|
148
150
|
/** The cookbook's layout, or `null` when it has none. */
|
|
@@ -183,6 +185,8 @@ export interface CookbookSectionPageProps {
|
|
|
183
185
|
export interface CookbookAppProps extends Omit<ComponentProps<typeof AppShell>, 'navGroups' | 'nav' | 'navMode' | 'layout' | 'onlayoutchange' | 'preset' | 'colorScheme' | 'sectionHref' | 'title' | 'children'>, Pick<BuildCookbookShellOptions, 'recipeOrder' | 'entryPath' | 'sectionPath' | 'href' | 'title'> {
|
|
184
186
|
cookbook: Cookbook;
|
|
185
187
|
catalog: CookbookCatalog;
|
|
188
|
+
/** Expanded section entries are the default; use `sections` for headings only. */
|
|
189
|
+
navMode?: 'sections' | 'sections-with-items';
|
|
186
190
|
/**
|
|
187
191
|
* Data loaders for the `metric`, `records` and `chart` widgets. With
|
|
188
192
|
* `metric` and `records`, section pages also show a record count and the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/cookbook/types.ts"],"names":[],"mappings":"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"}
|