@happyvertical/smrt-svelte 0.55.19 → 0.55.21
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/agents/cookbook-shell.md +6 -0
- package/agents/workspace.md +4 -0
- package/dist/components/app/AppShell.svelte +24 -1
- package/dist/components/app/AppShell.svelte.d.ts +7 -1
- package/dist/components/app/AppShell.svelte.d.ts.map +1 -1
- package/dist/components/app/DockToggles.svelte +5 -0
- package/dist/components/cookbook/CookbookApp.svelte +3 -0
- package/dist/components/cookbook/theme.d.ts.map +1 -1
- package/dist/components/cookbook/theme.js +17 -0
- package/dist/components/cookbook/types.d.ts +7 -1
- package/dist/components/cookbook/types.d.ts.map +1 -1
- package/dist/components/overview/widgets/ChartWidget.svelte +18 -0
- package/dist/components/workspace/admin-shell/AdminShell.svelte +5 -0
- package/dist/components/workspace/admin-shell/PhoneBottomBar.svelte +9 -0
- package/dist/components/workspace/admin-shell/ShellIconButton.svelte +5 -0
- package/dist/components/workspace/admin-shell/TenantNav.svelte +8 -0
- package/dist/components/workspace/admin-shell/WorkspaceAccountMenu.svelte +5 -0
- package/package.json +14 -14
package/agents/cookbook-shell.md
CHANGED
|
@@ -69,6 +69,12 @@ sample data source are not part of it.
|
|
|
69
69
|
`validateCookbook` is where it is rejected). A brand colour becomes the preset
|
|
70
70
|
id `cookbook-brand-<hex>[-<font>]`; the colour/font pair is encoded in the id
|
|
71
71
|
because `ThemeProvider` looks a registered theme up once per id.
|
|
72
|
+
`borderRadius`, `density` and `contrast` pass through (also leniently: an
|
|
73
|
+
unknown value is dropped) to `AppShell`'s props of the same names, which hand
|
|
74
|
+
them to `ThemeProvider`. As with `preset` and `colorScheme`, a user's persisted
|
|
75
|
+
`ThemeProvider` preference wins after mount. The brand colour is
|
|
76
|
+
`createThemeFromColor` and replaces the preset; it is not `ThemeProvider`'s
|
|
77
|
+
`primaryColor`, which tints the current preset and which the cookbook never sets.
|
|
72
78
|
A top-level `fontFamily` keeps the built-in preset's palette, spacing and
|
|
73
79
|
shape while replacing its typography. It takes precedence over the legacy
|
|
74
80
|
`custom.fontFamily` when both are present.
|
package/agents/workspace.md
CHANGED
|
@@ -678,3 +678,7 @@ The shell only consumes theme tokens; CSS and tokens changed, DOM and behaviour
|
|
|
678
678
|
- Glass: the header, phone top bar, phone tab bar, dock, drawers, sheet and popovers set `backdrop-filter: blur(var(--smrt-glass-blur)) saturate(var(--smrt-glass-saturation))` over `--smrt-glass-surface` (`-strong` for raised regions). Outside the Glass preset the tokens are opaque with blur 0. `backdrop-filter` makes the element a containing block for fixed descendants; the e2e suite covers the account menu and the floating layout toggle.
|
|
679
679
|
- State layers: rows, tabs, rail buttons, toggles and the account trigger use one `::after` veil (`background: currentColor`, opacity from `--smrt-state-hover` / `-pressed` / `-selected`); transparent icon buttons use the equivalent `color-mix`. The selected nav row keeps its container fill and start indicator under the veil. Disabled uses `--smrt-state-disabled`. Focus rings come from `--smrt-focus-ring-*`; control radius and heights from `--smrt-control-*`.
|
|
680
680
|
- E2E fixture: `ShellFixture` accepts `?theme=glass|material|studio|smrt` and `?scheme=dark` (all presets are imported) for per-preset screenshots.
|
|
681
|
+
|
|
682
|
+
## Forced colors
|
|
683
|
+
|
|
684
|
+
Under `forced-colors: active` the shell follows the smrt-ui token layer (CanvasText hairlines, no shadows or blur, Highlight focus ring; see `packages/smrt-ui/src/themes/README.md#forced-colors`). Style blocks add `@media (forced-colors: active)` rules only where selection carried meaning by colour alone: the tenant nav start bar (Highlight) and bold row, phone tab bar current tab, dock toggles, focus tools, pressed shell icon buttons and the open account trigger. Chart series cycle system colours. Verified by `e2e/forced-colors.spec.ts`; the fixture (`forced-colors.html`) imports `base.css`, which carries the token layer.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
type ColorScheme,
|
|
4
4
|
ColorSchemeToggle,
|
|
5
|
+
type ContrastPreference,
|
|
6
|
+
type ThemeConfig,
|
|
5
7
|
type ThemePreset,
|
|
6
8
|
ThemeProvider,
|
|
7
9
|
} from '@happyvertical/smrt-ui/themes';
|
|
@@ -168,6 +170,12 @@ interface Props {
|
|
|
168
170
|
preset?: ThemePreset;
|
|
169
171
|
/** Light, dark or system color scheme; the user's persisted choice wins. */
|
|
170
172
|
colorScheme?: ColorScheme;
|
|
173
|
+
/** Corner radius scale passed to the ThemeProvider; the user's persisted choice wins. */
|
|
174
|
+
borderRadius?: ThemeConfig['borderRadius'];
|
|
175
|
+
/** Control target density passed to the ThemeProvider; the user's persisted choice wins. */
|
|
176
|
+
density?: ThemeConfig['density'];
|
|
177
|
+
/** Contrast preference passed to the ThemeProvider (`auto` follows the OS); the user's persisted choice wins. */
|
|
178
|
+
contrast?: ContrastPreference;
|
|
171
179
|
/** Extra app-panel content (e.g. selected-tenant notes). */
|
|
172
180
|
appPanelDocs?: Snippet;
|
|
173
181
|
/**
|
|
@@ -301,6 +309,9 @@ let {
|
|
|
301
309
|
onlayoutchange,
|
|
302
310
|
preset = 'smrt',
|
|
303
311
|
colorScheme = 'system',
|
|
312
|
+
borderRadius,
|
|
313
|
+
density,
|
|
314
|
+
contrast,
|
|
304
315
|
appPanelDocs,
|
|
305
316
|
dock,
|
|
306
317
|
dockToggles = [],
|
|
@@ -973,7 +984,14 @@ const EDGE_OF_REGION: Record<ShellRegion, PanelEdge> = {
|
|
|
973
984
|
|
|
974
985
|
<Provider {webmcp} user={providerUser} {permissions}>
|
|
975
986
|
<RuntimeDiagnosticsWebMcp enabled={runtimeDiagnostics} />
|
|
976
|
-
<ThemeProvider
|
|
987
|
+
<ThemeProvider
|
|
988
|
+
{preset}
|
|
989
|
+
{colorScheme}
|
|
990
|
+
{borderRadius}
|
|
991
|
+
{density}
|
|
992
|
+
{contrast}
|
|
993
|
+
persist={true}
|
|
994
|
+
>
|
|
977
995
|
{#if !chrome}
|
|
978
996
|
{@render children()}
|
|
979
997
|
{:else}
|
|
@@ -1092,5 +1110,10 @@ const EDGE_OF_REGION: Record<ShellRegion, PanelEdge> = {
|
|
|
1092
1110
|
.smrt-edit-item__grip:hover { background: color-mix(in srgb, currentColor calc(var(--smrt-state-hover) * 100%), transparent); }
|
|
1093
1111
|
.smrt-edit-item__grip:focus-visible { outline: var(--smrt-focus-ring-width) solid var(--smrt-focus-ring-color); outline-offset: var(--smrt-focus-ring-offset); }
|
|
1094
1112
|
.smrt-edit-item__grip[aria-pressed='true'] { background: var(--smrt-color-primary-container); color: var(--smrt-color-on-primary-container); }
|
|
1113
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
1114
|
+
@media (forced-colors: active) {
|
|
1115
|
+
.smrt-layout-toggle :global(.smrt-shell-icon-button[aria-pressed='true']) { background: Highlight; color: HighlightText; }
|
|
1116
|
+
.smrt-edit-item__grip[aria-pressed='true'] { background: Highlight; color: HighlightText; }
|
|
1117
|
+
}
|
|
1095
1118
|
}
|
|
1096
1119
|
</style>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ColorScheme, type ThemePreset } from '@happyvertical/smrt-ui/themes';
|
|
1
|
+
import { type ColorScheme, type ContrastPreference, type ThemeConfig, type ThemePreset } from '@happyvertical/smrt-ui/themes';
|
|
2
2
|
import '@happyvertical/smrt-ui/themes/styles/all.css';
|
|
3
3
|
import '@happyvertical/smrt-ui/themes/styles/base.css';
|
|
4
4
|
import '@happyvertical/smrt-ui/themes/styles/fonts.css';
|
|
@@ -104,6 +104,12 @@ interface Props {
|
|
|
104
104
|
preset?: ThemePreset;
|
|
105
105
|
/** Light, dark or system color scheme; the user's persisted choice wins. */
|
|
106
106
|
colorScheme?: ColorScheme;
|
|
107
|
+
/** Corner radius scale passed to the ThemeProvider; the user's persisted choice wins. */
|
|
108
|
+
borderRadius?: ThemeConfig['borderRadius'];
|
|
109
|
+
/** Control target density passed to the ThemeProvider; the user's persisted choice wins. */
|
|
110
|
+
density?: ThemeConfig['density'];
|
|
111
|
+
/** Contrast preference passed to the ThemeProvider (`auto` follows the OS); the user's persisted choice wins. */
|
|
112
|
+
contrast?: ContrastPreference;
|
|
107
113
|
/** Extra app-panel content (e.g. selected-tenant notes). */
|
|
108
114
|
appPanelDocs?: Snippet;
|
|
109
115
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppShell.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/app/AppShell.svelte.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AppShell.svelte.d.ts","sourceRoot":"","sources":["../../../src/components/app/AppShell.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,8CAA8C,CAAC;AACtD,OAAO,+CAA+C,CAAC;AACvD,OAAO,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAiB,MAAM,QAAQ,CAAC;AAKrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAMzE,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAY5C,OAAO,EAKL,KAAK,SAAS,EAIf,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,KAAK,eAAe,EAGpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAChC,MAAM,mCAAmC,CAAC;AAI3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAIxB,UAAU,KAAK;IACb,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;IACrB,uEAAuE;IACvE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IACnD;;;;;OAKG;IACH,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;IACxC;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sEAAsE;IACtE,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,gFAAgF;IAChF,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,iDAAiD;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,yFAAyF;IACzF,YAAY,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IAC3C,4FAA4F;IAC5F,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,iHAAiH;IACjH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACtC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C;;;;OAIG;IACH,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnE;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACvD;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,qBAAqB,CAAC;IACvD,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxD,wDAAwD;IACxD,aAAa,CAAC,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IAC3C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC/B;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA0tBD,QAAA,MAAM,QAAQ,0BAAwC,CAAC;AACvD,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC5C,eAAe,QAAQ,CAAC"}
|
|
@@ -182,5 +182,10 @@ function press(event: MouseEvent, toggle: DockToggle): void {
|
|
|
182
182
|
opacity: var(--smrt-state-disabled);
|
|
183
183
|
cursor: default;
|
|
184
184
|
}
|
|
185
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
186
|
+
@media (forced-colors: active) {
|
|
187
|
+
.smrt-dock-toggles__button.active { background: Highlight; color: HighlightText; border-color: Highlight; }
|
|
188
|
+
.smrt-dock-toggles__button[aria-disabled='true'] { opacity: 1; color: GrayText; }
|
|
189
|
+
}
|
|
185
190
|
}
|
|
186
191
|
</style>
|
|
@@ -230,6 +230,9 @@ setCookbookContext({
|
|
|
230
230
|
}}
|
|
231
231
|
{preset}
|
|
232
232
|
colorScheme={shell.theme.colorScheme}
|
|
233
|
+
borderRadius={shell.theme.borderRadius}
|
|
234
|
+
density={shell.theme.density}
|
|
235
|
+
contrast={shell.theme.contrast}
|
|
233
236
|
sectionHref={(id) => shell.sectionPath(id)}
|
|
234
237
|
slotItems={[...slotItems, ...recipeSlotItems]}
|
|
235
238
|
>
|
|
@@ -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;
|
|
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;AAiBF,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,CAkCvB"}
|
|
@@ -8,6 +8,12 @@ export const THEME_FONTS = {
|
|
|
8
8
|
'ui-rounded': 'ui-rounded, "SF Pro Rounded", system-ui, sans-serif',
|
|
9
9
|
'ui-monospace': 'ui-monospace, "SF Mono", Menlo, monospace',
|
|
10
10
|
};
|
|
11
|
+
const RADII = ['none', 'sm', 'md', 'lg', 'xl', 'full'];
|
|
12
|
+
const DENSITIES = ['comfortable', 'touch'];
|
|
13
|
+
const CONTRASTS = ['auto', 'standard', 'more'];
|
|
14
|
+
function isOneOf(allowed, value) {
|
|
15
|
+
return (typeof value === 'string' && allowed.includes(value));
|
|
16
|
+
}
|
|
11
17
|
const HEX = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;
|
|
12
18
|
/** `#rgb` or `#rrggbb` (with or without `#`) as lowercase `#rrggbb`; else null. */
|
|
13
19
|
export function normalizeHex(value) {
|
|
@@ -37,6 +43,15 @@ export function resolveCookbookTheme(theme) {
|
|
|
37
43
|
const colorScheme = theme?.colorScheme === 'light' || theme?.colorScheme === 'dark'
|
|
38
44
|
? theme.colorScheme
|
|
39
45
|
: DEFAULT_COLOR_SCHEME;
|
|
46
|
+
const shape = {
|
|
47
|
+
...(isOneOf(RADII, theme?.borderRadius)
|
|
48
|
+
? { borderRadius: theme.borderRadius }
|
|
49
|
+
: {}),
|
|
50
|
+
...(isOneOf(DENSITIES, theme?.density) ? { density: theme.density } : {}),
|
|
51
|
+
...(isOneOf(CONTRASTS, theme?.contrast)
|
|
52
|
+
? { contrast: theme.contrast }
|
|
53
|
+
: {}),
|
|
54
|
+
};
|
|
40
55
|
const primary = theme?.custom ? normalizeHex(theme.custom.primary) : null;
|
|
41
56
|
const font = theme?.fontFamily ?? theme?.custom?.fontFamily;
|
|
42
57
|
const fontFamily = typeof font === 'string' && Object.hasOwn(THEME_FONTS, font)
|
|
@@ -46,12 +61,14 @@ export function resolveCookbookTheme(theme) {
|
|
|
46
61
|
return {
|
|
47
62
|
preset: brandThemeId(primary, fontFamily),
|
|
48
63
|
colorScheme,
|
|
64
|
+
...shape,
|
|
49
65
|
brand: { primary, ...(fontFamily ? { fontFamily } : {}) },
|
|
50
66
|
};
|
|
51
67
|
}
|
|
52
68
|
return {
|
|
53
69
|
preset: theme?.preset || DEFAULT_THEME_PRESET,
|
|
54
70
|
colorScheme,
|
|
71
|
+
...shape,
|
|
55
72
|
...(fontFamily ? { fontFamily } : {}),
|
|
56
73
|
};
|
|
57
74
|
}
|
|
@@ -97,6 +97,12 @@ export interface ResolvedCookbookTheme {
|
|
|
97
97
|
/** Preset id: a built-in smrt-ui preset, or the brand theme's id. */
|
|
98
98
|
preset: string;
|
|
99
99
|
colorScheme: 'light' | 'dark' | 'system';
|
|
100
|
+
/** Corner radius scale; absent keeps the preset's own. */
|
|
101
|
+
borderRadius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
102
|
+
/** Control target density; absent keeps the preset's own. */
|
|
103
|
+
density?: 'comfortable' | 'touch';
|
|
104
|
+
/** Contrast preference; absent means `auto`. */
|
|
105
|
+
contrast?: 'auto' | 'standard' | 'more';
|
|
100
106
|
/** Known font key applied without changing a built-in preset's palette. */
|
|
101
107
|
fontFamily?: string;
|
|
102
108
|
/** Present when the cookbook names a brand colour (it wins over `preset`). */
|
|
@@ -206,7 +212,7 @@ export interface CookbookSectionPageProps extends CookbookSectionPresentationPro
|
|
|
206
212
|
children?: import('svelte').Snippet;
|
|
207
213
|
}
|
|
208
214
|
/** Props of `CookbookApp`; anything else is passed to `AppShell` unchanged. */
|
|
209
|
-
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'> {
|
|
215
|
+
export interface CookbookAppProps extends Omit<ComponentProps<typeof AppShell>, 'navGroups' | 'nav' | 'navMode' | 'layout' | 'onlayoutchange' | 'preset' | 'colorScheme' | 'borderRadius' | 'density' | 'contrast' | 'sectionHref' | 'title' | 'children'>, Pick<BuildCookbookShellOptions, 'recipeOrder' | 'entryPath' | 'sectionPath' | 'href' | 'title'> {
|
|
210
216
|
cookbook: Cookbook;
|
|
211
217
|
catalog: CookbookCatalog;
|
|
212
218
|
/** Expanded section entries are the default; use `sections` for headings only. */
|
|
@@ -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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"}
|
|
@@ -250,5 +250,23 @@ const summary = $derived(
|
|
|
250
250
|
.smrt-chart__bar { transition: inline-size var(--smrt-duration-normal) var(--smrt-easing-standard); }
|
|
251
251
|
}
|
|
252
252
|
.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; }
|
|
253
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
254
|
+
@media (forced-colors: active) {
|
|
255
|
+
/* Series keys: system colours cycle by slot (the user's own palette), so
|
|
256
|
+
slices and legend swatches stay distinguishable without author colours.
|
|
257
|
+
The legend always carries label, value and share as text. */
|
|
258
|
+
.smrt-chart__slice[data-slot='0'], .smrt-chart__swatch[data-slot='0'] { stroke: CanvasText; background: CanvasText; }
|
|
259
|
+
.smrt-chart__slice[data-slot='1'], .smrt-chart__swatch[data-slot='1'] { stroke: Highlight; background: Highlight; }
|
|
260
|
+
.smrt-chart__slice[data-slot='2'], .smrt-chart__swatch[data-slot='2'] { stroke: LinkText; background: LinkText; }
|
|
261
|
+
.smrt-chart__slice[data-slot='3'], .smrt-chart__swatch[data-slot='3'] { stroke: VisitedText; background: VisitedText; }
|
|
262
|
+
.smrt-chart__slice[data-slot='4'], .smrt-chart__swatch[data-slot='4'] { stroke: ActiveText; background: ActiveText; }
|
|
263
|
+
.smrt-chart__slice[data-slot='5'], .smrt-chart__swatch[data-slot='5'] { stroke: GrayText; background: GrayText; }
|
|
264
|
+
.smrt-chart__slice[data-slot='6'], .smrt-chart__swatch[data-slot='6'] { stroke: ButtonText; background: ButtonText; }
|
|
265
|
+
.smrt-chart__slice[data-slot='7'], .smrt-chart__swatch[data-slot='7'] { stroke: MarkText; background: MarkText; }
|
|
266
|
+
.smrt-chart__swatch { border: var(--smrt-hairline-strong); }
|
|
267
|
+
.smrt-chart__slice { stroke-linecap: butt; }
|
|
268
|
+
.smrt-chart__track { background: Canvas; border: var(--smrt-hairline-strong); }
|
|
269
|
+
.smrt-chart__bar { background: Highlight; }
|
|
270
|
+
}
|
|
253
271
|
}
|
|
254
272
|
</style>
|
|
@@ -3003,5 +3003,10 @@ function buildLayoutStyle(shell: ModuleShellState): string {
|
|
|
3003
3003
|
animation: none;
|
|
3004
3004
|
}
|
|
3005
3005
|
}
|
|
3006
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
3007
|
+
@media (forced-colors: active) {
|
|
3008
|
+
.smrt-admin-shell__focus-tool.active { background: Highlight; color: HighlightText; border-color: Highlight; }
|
|
3009
|
+
.smrt-admin-shell__focus-tool:disabled, .smrt-admin-shell__focus-tool.active:disabled { opacity: 1; background: Canvas; color: GrayText; border-color: GrayText; }
|
|
3010
|
+
}
|
|
3006
3011
|
}
|
|
3007
3012
|
</style>
|
|
@@ -210,5 +210,14 @@ function accessibleName(item: PhoneBottomBarEntry): string {
|
|
|
210
210
|
border-radius: var(--smrt-radius-full);
|
|
211
211
|
background: var(--smrt-color-primary);
|
|
212
212
|
}
|
|
213
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
214
|
+
@media (forced-colors: active) {
|
|
215
|
+
.smrt-phone-bottom-bar__item.active { color: CanvasText; font-weight: var(--smrt-typography-weight-bold); }
|
|
216
|
+
.smrt-phone-bottom-bar__item.active .smrt-phone-bottom-bar__icon { background: Highlight; color: HighlightText; }
|
|
217
|
+
.smrt-phone-bottom-bar__badge { background: CanvasText; color: Canvas; }
|
|
218
|
+
.smrt-phone-bottom-bar__dot { background: Highlight; border-color: Canvas; }
|
|
219
|
+
.smrt-phone-bottom-bar__item:disabled, .smrt-phone-bottom-bar__item.active:disabled { opacity: 1; color: GrayText; font-weight: inherit; }
|
|
220
|
+
.smrt-phone-bottom-bar__item.active:disabled .smrt-phone-bottom-bar__icon { background: Canvas; color: GrayText; }
|
|
221
|
+
}
|
|
213
222
|
}
|
|
214
223
|
</style>
|
|
@@ -77,5 +77,10 @@ let {
|
|
|
77
77
|
.smrt-shell-icon-button[aria-pressed='true'] { color: var(--smrt-color-on-surface); }
|
|
78
78
|
.smrt-shell-icon-button:focus-visible { outline: var(--smrt-focus-ring-width) solid var(--smrt-focus-ring-color); outline-offset: var(--smrt-focus-ring-offset); }
|
|
79
79
|
.smrt-shell-icon-button:disabled { opacity: var(--smrt-state-disabled); cursor: not-allowed; }
|
|
80
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
81
|
+
@media (forced-colors: active) {
|
|
82
|
+
.smrt-shell-icon-button[aria-pressed='true'] { background: Highlight; color: HighlightText; }
|
|
83
|
+
.smrt-shell-icon-button:disabled, .smrt-shell-icon-button[aria-pressed='true']:disabled { opacity: 1; background: Canvas; color: GrayText; }
|
|
84
|
+
}
|
|
80
85
|
}
|
|
81
86
|
</style>
|
|
@@ -491,5 +491,13 @@ function fallbackIcon(label: string): string {
|
|
|
491
491
|
white-space: nowrap;
|
|
492
492
|
border: 0;
|
|
493
493
|
}
|
|
494
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
495
|
+
@media (forced-colors: active) {
|
|
496
|
+
.smrt-tenant-nav a[aria-current='page'],
|
|
497
|
+
.smrt-tenant-nav a.smrt-tenant-nav__link--visible-active { background: Canvas; color: CanvasText; font-weight: var(--smrt-typography-weight-bold); }
|
|
498
|
+
.smrt-tenant-nav a[aria-current='page']::before,
|
|
499
|
+
.smrt-tenant-nav a.smrt-tenant-nav__link--visible-active::before { background: Highlight; }
|
|
500
|
+
.smrt-tenant-nav a[aria-disabled='true'] { opacity: 1; color: GrayText; }
|
|
501
|
+
}
|
|
494
502
|
}
|
|
495
503
|
</style>
|
|
@@ -542,5 +542,10 @@ $effect(() => {
|
|
|
542
542
|
white-space: nowrap;
|
|
543
543
|
border: 0;
|
|
544
544
|
}
|
|
545
|
+
/* Forced colors (#3908): selected and open states keep a non-colour indicator. */
|
|
546
|
+
@media (forced-colors: active) {
|
|
547
|
+
.smrt-workspace-account-menu__trigger[aria-expanded='true']:not(:focus-visible) { outline: var(--smrt-focus-ring-width) solid Highlight; outline-offset: calc(-1 * var(--smrt-focus-ring-width)); }
|
|
548
|
+
.smrt-workspace-account-menu__trigger:disabled { opacity: 1; color: GrayText; }
|
|
549
|
+
}
|
|
545
550
|
}
|
|
546
551
|
</style>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@happyvertical/smrt-svelte",
|
|
3
|
-
"version": "0.55.
|
|
3
|
+
"version": "0.55.21",
|
|
4
4
|
"smrtJsdoc": "strict",
|
|
5
5
|
"description": "Svelte 5 components for SMRT user management - auth, users, tenants, roles, permissions, groups",
|
|
6
6
|
"type": "module",
|
|
@@ -205,11 +205,11 @@
|
|
|
205
205
|
},
|
|
206
206
|
"dependencies": {
|
|
207
207
|
"@happyvertical/logger": "^0.103.5",
|
|
208
|
-
"@happyvertical/smrt-languages": "0.55.
|
|
209
|
-
"@happyvertical/smrt-mcp-apps": "0.55.
|
|
210
|
-
"@happyvertical/smrt-types": "0.55.
|
|
211
|
-
"@happyvertical/smrt-ui": "0.55.
|
|
212
|
-
"@happyvertical/smrt-web": "0.55.
|
|
208
|
+
"@happyvertical/smrt-languages": "0.55.21",
|
|
209
|
+
"@happyvertical/smrt-mcp-apps": "0.55.21",
|
|
210
|
+
"@happyvertical/smrt-types": "0.55.21",
|
|
211
|
+
"@happyvertical/smrt-ui": "0.55.21",
|
|
212
|
+
"@happyvertical/smrt-web": "0.55.21",
|
|
213
213
|
"@tanstack/db": "^0.6.14",
|
|
214
214
|
"@tanstack/svelte-db": "^0.1.91",
|
|
215
215
|
"esm-env": "^1.2.2"
|
|
@@ -244,14 +244,14 @@
|
|
|
244
244
|
}
|
|
245
245
|
},
|
|
246
246
|
"devDependencies": {
|
|
247
|
-
"@happyvertical/smrt-agents": "0.55.
|
|
248
|
-
"@happyvertical/smrt-chat": "0.55.
|
|
249
|
-
"@happyvertical/smrt-content": "0.55.
|
|
250
|
-
"@happyvertical/smrt-core": "0.55.
|
|
251
|
-
"@happyvertical/smrt-reports": "0.55.
|
|
252
|
-
"@happyvertical/smrt-scanner": "0.55.
|
|
253
|
-
"@happyvertical/smrt-tenancy": "0.55.
|
|
254
|
-
"@happyvertical/smrt-users": "0.55.
|
|
247
|
+
"@happyvertical/smrt-agents": "0.55.21",
|
|
248
|
+
"@happyvertical/smrt-chat": "0.55.21",
|
|
249
|
+
"@happyvertical/smrt-content": "0.55.21",
|
|
250
|
+
"@happyvertical/smrt-core": "0.55.21",
|
|
251
|
+
"@happyvertical/smrt-reports": "0.55.21",
|
|
252
|
+
"@happyvertical/smrt-scanner": "0.55.21",
|
|
253
|
+
"@happyvertical/smrt-tenancy": "0.55.21",
|
|
254
|
+
"@happyvertical/smrt-users": "0.55.21",
|
|
255
255
|
"@happyvertical/speech": "^0.103.5",
|
|
256
256
|
"@sveltejs/package": "^2.5.8",
|
|
257
257
|
"@sveltejs/vite-plugin-svelte": "^7.3.0",
|