@synopackageland/ui 0.13.0 → 0.13.1
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/CHANGELOG.md +9 -0
- package/README.md +25 -0
- package/dist/components/app/app-layout/AppLayout.vue.d.ts +8 -1
- package/dist/components/app/app-sidebar/AppTopNavItems.vue.d.ts +12 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7820 -7695
- package/dist/json/catalog.d.ts +8 -0
- package/dist/json/registry.d.ts +136 -0
- package/dist/json-ai-prompt.md +1 -1
- package/dist/json-catalog.schema.json +15 -1
- package/dist/json-preview/preview.js +12110 -9639
- package/dist/json.js +157 -155
- package/dist/lib/adaptiveLayout.d.ts +4 -0
- package/dist/reka-runtime.json +1 -1
- package/dist/theme.css +1 -1
- package/dist/themes/dsm7-embedded-theme.css +1 -1
- package/dist/themes/dsm7-embedded.css +1 -1
- package/dist/themes/dsm7.css +1 -1
- package/docs/adaptive-layout.md +5 -0
- package/docs/json-ui.md +2 -0
- package/docs/theme-hooks.md +142 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.1 (2026-10-21)
|
|
4
|
+
|
|
5
|
+
Additive only: existing props, default appearance and DOM structure are unchanged (new attributes only), so this is a patch release within the 0.13 line.
|
|
6
|
+
|
|
7
|
+
- Add `AppLayout navigation="top"` (also JSON `AppShell`): the `sidebar` slot becomes one bar above the page in the DSM-window and web presentations, with the brand, the `AppSidebar` items in a row (a row with children opens them in a menu; the bar scrolls sideways when the items run out of room) and `sidebar-footer`. There is no collapse or resize in this mode. A phone keeps the drawer. The default `"sidebar"` is unchanged. The SDK's `AppShell` has to forward the prop before an app can choose it through that shell (#19).
|
|
8
|
+
- Add theme tokens `--ui-icon-size` (navigation icons), `--ui-heading-weight` (`PageHeader`, `Card`, `TypoHeader` and web toolbar titles) and `--ui-card-padding` (a regular `Card`'s inset), plus `--ui-top-nav-height/-bg/-border` for the top bar and `--ui-mobile-bar-bg/-fg/-border` for the phone bar. Each is read with a fallback equal to the previous value: unset, nothing changes (#19).
|
|
9
|
+
- `Button`, `IconButton` and `SplitButton`'s group expose their variant as `data-variant`; the phone bar's menu button has `data-ui-mobile-menu` (#19).
|
|
10
|
+
- `docs/theme-hooks.md` (shipped in the package) makes the listed `data-ui-*`/`data-*` attributes and layout tokens public API, with stability rules: names, elements and listed values hold until a release marked breaking; values may be added in a patch; classes and nesting are not API (#19).
|
|
11
|
+
|
|
3
12
|
## 0.13.0 (2026-10-20)
|
|
4
13
|
|
|
5
14
|
- Fix `SegmentControl variant="sheet"`: the selected tab keeps the content surface and accent text. Unselected background and text classes now apply only to unselected tabs, so stylesheet order cannot make the selected tab grey again (#16).
|
package/README.md
CHANGED
|
@@ -350,6 +350,22 @@ import { AppLayout, Button, PageHeader } from '@synopackageland/ui'
|
|
|
350
350
|
|
|
351
351
|
`AppLayout` also accepts `sidebar`, `toolbar`, and `footer` slots.
|
|
352
352
|
|
|
353
|
+
`navigation="top"` (0.13.1+) lays the `sidebar` slot out as one bar above the
|
|
354
|
+
page instead of a left column: the brand, then the `AppSidebar` items in a row
|
|
355
|
+
(a row with children opens them in a menu; the bar scrolls sideways when the
|
|
356
|
+
items run out of room), then `sidebar-footer`. It applies in the DSM-window
|
|
357
|
+
and web presentations; a phone keeps the drawer. The default `"sidebar"` is
|
|
358
|
+
unchanged. The JSON `AppShell` accepts the same prop; the SDK's `AppShell` must
|
|
359
|
+
forward it before an app can choose it through that shell.
|
|
360
|
+
|
|
361
|
+
```vue
|
|
362
|
+
<AppLayout navigation="top" wide-layout="web">
|
|
363
|
+
<template #sidebar><AppSidebar v-model="page" :groups="groups" /></template>
|
|
364
|
+
<template #sidebar-footer><AppSidebarUser name="Ada Lin" /></template>
|
|
365
|
+
<PageContent>…</PageContent>
|
|
366
|
+
</AppLayout>
|
|
367
|
+
```
|
|
368
|
+
|
|
353
369
|
For standalone content that owns its layout, use `<PageContent surface="none" height="fill">`.
|
|
354
370
|
It removes the page's horizontal gutters and adds no surface in web, DSM-window
|
|
355
371
|
or phone layouts. The default `surface="auto"` remains unchanged; `flat` keeps
|
|
@@ -431,6 +447,15 @@ Status tones come in pairs, a soft fill and the text that reads on it:
|
|
|
431
447
|
`StatusDot`, `StepList` and `ConnectionTopology` use only these and the base
|
|
432
448
|
tones (`--ui-success`, …).
|
|
433
449
|
|
|
450
|
+
**Theme hooks.** The `data-ui-*` and `data-*` attributes and the layout tokens
|
|
451
|
+
listed in [docs/theme-hooks.md](docs/theme-hooks.md) are public API with
|
|
452
|
+
stability rules (0.13.1+): `--ui-icon-size`, `--ui-heading-weight`,
|
|
453
|
+
`--ui-card-padding`, the top bar's `--ui-top-nav-*` and the phone bar's
|
|
454
|
+
`--ui-mobile-bar-*`, `Button`'s `data-variant`, the layout regions
|
|
455
|
+
(`data-ui-layout-sidebar`, `data-ui-layout-main`, `data-ui-mobile-navigation`,
|
|
456
|
+
…). Each token is unset by default and the component then looks as before.
|
|
457
|
+
Everything else (classes, nesting) is an implementation detail.
|
|
458
|
+
|
|
434
459
|
Density can be switched per application subtree:
|
|
435
460
|
|
|
436
461
|
```html
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { WideLayout } from '../../../lib/adaptiveLayout';
|
|
1
|
+
import { AppNavigation, WideLayout } from '../../../lib/adaptiveLayout';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
sidebarWidth?: string;
|
|
4
4
|
minHeight?: string;
|
|
@@ -18,6 +18,12 @@ type __VLS_Props = {
|
|
|
18
18
|
* page can keep its header and pager in view.
|
|
19
19
|
*/
|
|
20
20
|
height?: 'auto' | 'fill';
|
|
21
|
+
/**
|
|
22
|
+
* `'top'` lays the `sidebar` slot out as a bar across the top: brand,
|
|
23
|
+
* then the navigation in one row, then `sidebar-footer`. A phone keeps the
|
|
24
|
+
* drawer. Defaults to the left sidebar.
|
|
25
|
+
*/
|
|
26
|
+
navigation?: AppNavigation;
|
|
21
27
|
};
|
|
22
28
|
type __VLS_Slots = {
|
|
23
29
|
sidebar?: () => unknown;
|
|
@@ -36,6 +42,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
36
42
|
sidebarStorageKey: string;
|
|
37
43
|
brandName: string;
|
|
38
44
|
brandIcon: string;
|
|
45
|
+
navigation: AppNavigation;
|
|
39
46
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
40
47
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
41
48
|
declare const _default: typeof __VLS_export;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AppSidebarItem } from './types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
items: AppSidebarItem[];
|
|
4
|
+
modelValue?: string;
|
|
5
|
+
};
|
|
6
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
7
|
+
select: (item: AppSidebarItem) => any;
|
|
8
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
|
+
onSelect?: ((item: AppSidebarItem) => any) | undefined;
|
|
10
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
package/dist/index.d.ts
CHANGED
|
@@ -183,7 +183,7 @@ export type { AccentScale } from './lib/accent';
|
|
|
183
183
|
export { default as AppLayout } from './components/app/app-layout/AppLayout.vue';
|
|
184
184
|
export { default as ResponsiveView } from './components/app/responsive-view/ResponsiveView.vue';
|
|
185
185
|
export { appPresentationForWidth, MOBILE_LAYOUT_MAX, WEB_LAYOUT_MIN } from './lib/adaptiveLayout';
|
|
186
|
-
export type { AppPresentation, WideLayout } from './lib/adaptiveLayout';
|
|
186
|
+
export type { AppNavigation, AppPresentation, WideLayout } from './lib/adaptiveLayout';
|
|
187
187
|
export { ensureDeviceViewport } from './lib/deviceViewport';
|
|
188
188
|
export { default as AppSidebar } from './components/app/app-sidebar/AppSidebar.vue';
|
|
189
189
|
export { default as AppSidebarUser } from './components/app/app-sidebar/AppSidebarUser.vue';
|