@synopackageland/ui 0.12.5 → 0.13.0
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 +27 -0
- package/dist/components/advanced-panel/AdvancePanelGrid.vue.d.ts +5 -5
- package/dist/components/composite/about-dialog/AboutDialog.vue.d.ts +5 -4
- package/dist/components/composite/about-dialog/types.d.ts +3 -2
- package/dist/components/composite/connection-topology/ConnectionTopology.vue.d.ts +3 -0
- package/dist/components/composite/data-grid/DataGrid.vue.d.ts +1 -1
- package/dist/components/composite/data-table/DataTable.vue.d.ts +6 -3
- package/dist/components/composite/overflow-toolbar/overflow.d.ts +3 -1
- package/dist/components/composite/scroll-edges/ScrollEdges.vue.d.ts +8 -1
- package/dist/components/composite/tree-view/TreeView.vue.d.ts +7 -5
- package/dist/components/composite/virtual-list/VirtualList.vue.d.ts +2 -0
- package/dist/components/containers/card-grid/cardGrid.d.ts +2 -2
- package/dist/components/containers/expandable-item/ExpandableItem.vue.d.ts +7 -7
- package/dist/components/primitives/color-picker/ColorPicker.vue.d.ts +4 -4
- package/dist/components/primitives/context-menu/ContextMenu.vue.d.ts +2 -2
- package/dist/components/primitives/context-menu/ContextMenuItems.vue.d.ts +5 -1
- package/dist/components/primitives/dropdown-menu/DropdownMenu.vue.d.ts +3 -0
- package/dist/components/primitives/dropdown-menu/DropdownMenuItems.vue.d.ts +3 -0
- package/dist/components/primitives/pagination/Pagination.vue.d.ts +3 -0
- package/dist/components/primitives/segment-control/SegmentItem.vue.d.ts +1 -1
- package/dist/components/primitives/spinner/Spinner.vue.d.ts +3 -0
- package/dist/components/primitives/tooltip/OverflowTooltip.vue.d.ts +3 -0
- package/dist/components/primitives/tooltip/Tooltip.vue.d.ts +5 -2
- package/dist/components/primitives/tooltip/tooltipStyle.d.ts +1 -1
- package/dist/components/primitives/typography/TypoHeader.vue.d.ts +3 -0
- package/dist/composables/formControl.d.ts +1 -0
- package/dist/composables/scrollEdges.d.ts +8 -4
- package/dist/i18n/text.d.ts +1 -0
- package/dist/index.js +17975 -21895
- package/dist/json/catalog.d.ts +10 -10
- package/dist/json/registry.d.ts +170 -170
- package/dist/json-preview/preview.js +9895 -10908
- package/dist/json.js +204 -222
- 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/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.13.0 (2026-10-20)
|
|
4
|
+
|
|
5
|
+
- 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).
|
|
6
|
+
- Component visual audit (#17): address 194 findings across controls, navigation, menus, feedback, containers and app layouts, and add a state gallery and checklist. The changes include clearer focus, disabled, invalid and selected states, long-label handling, spacing and narrow layouts. The audit's fixes passed automated checks; they were not rechecked with screenshots.
|
|
7
|
+
- Add opt-in `Spinner inline`, `TypoHeader anchorPlacement`, `ScrollEdges axis`, `ConnectionTopology selectedLane` and `Tooltip openOnTap`; add `#empty` slots to `VirtualList` and `TreeView`. `DataTable mobileView="container"` chooses cards from its measured container width, with `containerBreakpoint` (default 480px). Existing defaults for these additions stay unchanged.
|
|
8
|
+
- `AboutDialog fetchVersion` can return `{ upToDate: true }` for a successful check with no newer version; the message is available in all nine built-in languages. An empty result still means the check failed.
|
|
9
|
+
- Fix DSM-window CSS rescoping: selectors beginning with a tag name, such as `label:has(...)`, remain valid instead of losing their rules during the build.
|
|
10
|
+
|
|
11
|
+
### Visible changes for apps
|
|
12
|
+
|
|
13
|
+
These defaults change from 0.12.5, so this release advances the minor version. Existing opt-outs are listed below; changes without a compatibility switch need an app-owned layout, event handler or CSS override.
|
|
14
|
+
|
|
15
|
+
- `Pagination` groups numbers using the active locale. Use `:group-digits="false"` for ungrouped digits.
|
|
16
|
+
- `DropdownMenu` radio entries use a dot. Set `radio-indicator="check"` to keep the previous check mark.
|
|
17
|
+
- `OverflowTooltip` opens the full text on a touch or pen tap on truncated text; a second tap or a tap elsewhere closes it. Use `:open-on-tap="false"` to keep hover and keyboard focus only. Plain `Tooltip` still defaults to `openOnTap: false`.
|
|
18
|
+
- Vertical `ToggleButtonGroup` buttons stretch to equal widths. Add `class="items-start"` to restore content-sized buttons.
|
|
19
|
+
- `Dialog` initially focuses the first enabled focusable element other than its header close button, or the panel when none exists. To restore close-button focus, handle `@open-auto-focus`, call `event.preventDefault()` and focus `event.target.querySelector('[data-dialog-close]')` in the handler.
|
|
20
|
+
- `Combobox` with `allowCreate` creates a typed label without an exact match on Enter instead of accepting the automatically highlighted first result. Moving the highlight deliberately still selects that result. There is no legacy Enter switch; use `:allow-create="false"` to disable creation, or provide app-owned keyboard handling when both creation and the old selection rule are required. Reopening a selected combobox also shows the full list instead of filtering by its mirrored label.
|
|
21
|
+
- Empty `AdvancePanelGrid` now displays the localized “No data” message. Supply `<template #empty-body><span /></template>` to retain a blank message area, or put an app-owned empty message in that slot.
|
|
22
|
+
- Height-constrained `Panel` bodies scroll even with `scrollable` unset or false. There is no legacy switch; app code can use the exposed `getScrollEl()` to restore `overflow: visible; min-height: auto` if an outer container must own scrolling.
|
|
23
|
+
- In a collapsed `AppSidebar`, rows without icons are hidden and a hidden selection marks its nearest visible ancestor. Supply an icon on every row that must remain reachable in the rail, or keep the sidebar expanded. Group headings now use `--ui-text-secondary`; an app stylesheet can restore `color: rgba(65,75,85,0.5)` on its `[data-nav-group-label]` elements.
|
|
24
|
+
- `DataGrid` cells reserve `calc(var(--ui-grid-row-height) + 1px)`, changing the default desktop row from 28px to 29px. To retain a 28px minimum, set `--ui-grid-row-height: 27px` on the grid; rows with taller content can still grow. The theme token itself remains 28px by default.
|
|
25
|
+
- `Button` wraps its slot in a label span and truncates long labels. Update selectors that assumed a direct-child label or icon. There is no legacy DOM switch; app CSS can restore label `overflow: visible; text-overflow: clip` and override the button's `max-width` when overflow is intentional.
|
|
26
|
+
- With a coarse pointer and no explicit `data-ui-density`, small/medium control tokens become 32px and grid row/header tokens become 36px; text inputs and textareas use the 16px title font tier. Set `data-ui-density="default"` on the theme root to retain desktop control/grid tokens and input font sizing. Slider touch padding and mobile Dialog/Sheet header/footer hit areas have separate rules; those need targeted app CSS if the old sizes are required.
|
|
27
|
+
- `Footbar` stacks its three regions below 28rem of container width and lets buttons wrap. There is no legacy layout prop; use app-owned footer markup to retain three columns at narrow widths.
|
|
28
|
+
- The popups changed by the audit (including menus, selects, date/color pickers, popovers, tooltips and validation tips) use `z-index: 1450` to share a layer. There is no global legacy-layer token; adjust the specific popup in app CSS if it must interleave with app-owned overlays. This is not a change to every overlay: `ContextMenu`, Dialog/Sheet, notifications and toasts retain their separate layers.
|
|
29
|
+
|
|
3
30
|
## 0.12.5 (2026-10-20)
|
|
4
31
|
|
|
5
32
|
- `DropdownMenu` label column: a plain action menu no longer reserves an empty check-mark slot before every label, so its labels start at the left edge. The slot is kept, for every entry of that level, when any entry can show a check mark, an indicator or an icon; an unchecked checkbox or radio now keeps its slot, so its label lines up with the rest. All entries share the same 10px side padding. The menu's 11rem minimum width now holds (it resolved against a content-sized popper and collapsed short menus to their labels), still capped by the viewport.
|
|
@@ -9,12 +9,12 @@ type __VLS_Props = {
|
|
|
9
9
|
declare function deactivateRow(): void;
|
|
10
10
|
declare var __VLS_2: `header-${string}`, __VLS_3: {
|
|
11
11
|
column: AdvancePanelGridColumn;
|
|
12
|
-
},
|
|
12
|
+
}, __VLS_36: {}, __VLS_39: string, __VLS_40: {
|
|
13
13
|
cell: AdvancePanelGridCell;
|
|
14
14
|
item: AdvancePanelGridRow;
|
|
15
15
|
column: AdvancePanelGridColumn;
|
|
16
16
|
index: number;
|
|
17
|
-
},
|
|
17
|
+
}, __VLS_42: {
|
|
18
18
|
item: AdvancePanelGridRow;
|
|
19
19
|
column: AdvancePanelGridColumn;
|
|
20
20
|
index: number;
|
|
@@ -24,11 +24,11 @@ declare var __VLS_2: `header-${string}`, __VLS_3: {
|
|
|
24
24
|
type __VLS_Slots = {} & {
|
|
25
25
|
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
26
26
|
} & {
|
|
27
|
-
[K in NonNullable<typeof
|
|
27
|
+
[K in NonNullable<typeof __VLS_39>]?: (props: typeof __VLS_40) => any;
|
|
28
28
|
} & {
|
|
29
|
-
'empty-body'?: (props: typeof
|
|
29
|
+
'empty-body'?: (props: typeof __VLS_36) => any;
|
|
30
30
|
} & {
|
|
31
|
-
'row-hover-action'?: (props: typeof
|
|
31
|
+
'row-hover-action'?: (props: typeof __VLS_42) => any;
|
|
32
32
|
};
|
|
33
33
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
34
34
|
"update:sort": (sort: AdvancePanelGridSort) => any;
|
|
@@ -6,6 +6,7 @@ type __VLS_Props = {
|
|
|
6
6
|
checking: string;
|
|
7
7
|
available: string;
|
|
8
8
|
betaAvailable: string;
|
|
9
|
+
upToDate: string;
|
|
9
10
|
failed: string;
|
|
10
11
|
retry: string;
|
|
11
12
|
releaseNotes: string;
|
|
@@ -27,22 +28,22 @@ type __VLS_Props = {
|
|
|
27
28
|
/** App-provided Privacy Policy URL. Omitted or empty hides the link. */
|
|
28
29
|
privacyUrl?: string;
|
|
29
30
|
releaseNotesUrl?: string;
|
|
30
|
-
/** Runs on open. Return `newVersion` for an update, `betaVersion` for beta info, `{}`/undefined for failure. */
|
|
31
|
+
/** Runs on open. Return `newVersion` for an update, `betaVersion` for beta info, `upToDate: true` when nothing newer exists, `{}`/undefined for failure. */
|
|
31
32
|
fetchVersion?: () => Promise<AboutVersionInfo>;
|
|
32
33
|
checkUpdates?: boolean;
|
|
33
34
|
width?: string;
|
|
34
35
|
closeLabel?: string;
|
|
35
36
|
};
|
|
36
37
|
declare function checkForUpdates(): Promise<AboutVersionInfo | null>;
|
|
37
|
-
declare var __VLS_11: {}, __VLS_13: {},
|
|
38
|
+
declare var __VLS_11: {}, __VLS_13: {}, __VLS_63: {}, __VLS_66: {};
|
|
38
39
|
type __VLS_Slots = {} & {
|
|
39
40
|
trigger?: (props: typeof __VLS_11) => any;
|
|
40
41
|
} & {
|
|
41
42
|
icon?: (props: typeof __VLS_13) => any;
|
|
42
43
|
} & {
|
|
43
|
-
default?: (props: typeof
|
|
44
|
+
default?: (props: typeof __VLS_63) => any;
|
|
44
45
|
} & {
|
|
45
|
-
copyright?: (props: typeof
|
|
46
|
+
copyright?: (props: typeof __VLS_66) => any;
|
|
46
47
|
};
|
|
47
48
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
48
49
|
checkForUpdates: typeof checkForUpdates;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
/** Result of the optional `fetchVersion` request. An empty result means the check failed. */
|
|
1
|
+
/** Result of the optional `fetchVersion` request. An empty result means the check failed; `upToDate` reports a successful check with nothing newer. */
|
|
2
2
|
export type AboutVersionInfo = {
|
|
3
3
|
newVersion?: string;
|
|
4
4
|
betaVersion?: string;
|
|
5
|
+
upToDate?: boolean;
|
|
5
6
|
};
|
|
6
|
-
export type AboutCheckState = 'idle' | 'checking' | 'update-available' | 'beta-available' | 'failed';
|
|
7
|
+
export type AboutCheckState = 'idle' | 'checking' | 'update-available' | 'beta-available' | 'up-to-date' | 'failed';
|
|
@@ -14,6 +14,8 @@ type __VLS_Props = {
|
|
|
14
14
|
/** Render lanes as buttons that emit `select-lane`. */
|
|
15
15
|
selectable?: boolean;
|
|
16
16
|
emptyLabel?: string;
|
|
17
|
+
/** The `id` of the lane shown as selected (a pressed button); `select-lane` still only reports clicks. */
|
|
18
|
+
selectedLane?: string | number;
|
|
17
19
|
/** State words for links without a label. */
|
|
18
20
|
text?: Partial<Record<LinkState, string>>;
|
|
19
21
|
};
|
|
@@ -29,6 +31,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
29
31
|
}>, {
|
|
30
32
|
compact: boolean;
|
|
31
33
|
selectable: boolean;
|
|
34
|
+
selectedLane: string | number;
|
|
32
35
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
33
36
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
34
37
|
declare const _default: typeof __VLS_export;
|
|
@@ -30,7 +30,7 @@ export type DataGridColumn = {
|
|
|
30
30
|
/**
|
|
31
31
|
* Leaves the column out when the grid is too narrow for every column's
|
|
32
32
|
* minimum width: the lowest priority goes first. Without one the column
|
|
33
|
-
* always shows. The column chooser still lists it, to show it anyway.
|
|
33
|
+
* always shows (a `hideable: false` column only drops with an explicit one). The column chooser still lists it, to show it anyway.
|
|
34
34
|
*/
|
|
35
35
|
priority?: number;
|
|
36
36
|
/** `false` leaves the column out of the quick filter. */
|
|
@@ -14,8 +14,10 @@ type __VLS_Props = {
|
|
|
14
14
|
rowKey?: string;
|
|
15
15
|
emptyText?: string;
|
|
16
16
|
compact?: boolean;
|
|
17
|
-
/** Simple tables become fully labeled cards in mobile mode unless set to table. */
|
|
18
|
-
mobileView?: 'auto' | 'cards' | 'table';
|
|
17
|
+
/** Simple tables become fully labeled cards in mobile mode unless set to table. `container` picks cards from the measured width (see `containerBreakpoint`) whatever the app presentation. */
|
|
18
|
+
mobileView?: 'auto' | 'cards' | 'table' | 'container';
|
|
19
|
+
/** Width in px under which `mobileView="container"` shows cards. */
|
|
20
|
+
containerBreakpoint?: number;
|
|
19
21
|
};
|
|
20
22
|
declare var __VLS_2: `cell-${string}`, __VLS_3: {
|
|
21
23
|
row: Record<string, unknown>;
|
|
@@ -40,7 +42,8 @@ type __VLS_Slots = {} & {
|
|
|
40
42
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
41
43
|
compact: boolean;
|
|
42
44
|
rowKey: string;
|
|
43
|
-
mobileView: "auto" | "cards" | "table";
|
|
45
|
+
mobileView: "auto" | "cards" | "table" | "container";
|
|
46
|
+
containerBreakpoint: number;
|
|
44
47
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
45
48
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
46
49
|
declare const _default: typeof __VLS_export;
|
|
@@ -9,6 +9,8 @@ export type OverflowFitInput = {
|
|
|
9
9
|
moreWidth: number;
|
|
10
10
|
gap: number;
|
|
11
11
|
minVisibleItems: number;
|
|
12
|
+
/** Which items are dividers; a divider never ends the visible run, since it would separate nothing from More. */
|
|
13
|
+
dividers?: boolean[];
|
|
12
14
|
};
|
|
13
15
|
export type OverflowFit = {
|
|
14
16
|
visibleCount: number;
|
|
@@ -22,4 +24,4 @@ export type OverflowFit = {
|
|
|
22
24
|
* `More` is reserved as soon as the row cannot hold everything, and at least
|
|
23
25
|
* `minVisibleItems` items stay out of it even when they do not fit.
|
|
24
26
|
*/
|
|
25
|
-
export declare function computeOverflowFit({ widths, availableWidth, moreWidth, gap, minVisibleItems }: OverflowFitInput): OverflowFit;
|
|
27
|
+
export declare function computeOverflowFit({ widths, availableWidth, moreWidth, gap, minVisibleItems, dividers }: OverflowFitInput): OverflowFit;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { StyleValue } from 'vue';
|
|
2
|
+
import { ScrollEdgesAxis } from '../../../composables/scrollEdges';
|
|
2
3
|
type __VLS_Props = {
|
|
3
4
|
viewportClass?: string;
|
|
4
5
|
viewportStyle?: StyleValue;
|
|
6
|
+
/** Which edges are shaded: the left and right (`x`, default), the top and bottom (`y`) or all four. */
|
|
7
|
+
axis?: ScrollEdgesAxis;
|
|
5
8
|
};
|
|
6
9
|
declare var __VLS_1: {};
|
|
7
10
|
type __VLS_Slots = {} & {
|
|
@@ -9,7 +12,11 @@ type __VLS_Slots = {} & {
|
|
|
9
12
|
};
|
|
10
13
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
11
14
|
viewport: Readonly<import('vue').ShallowRef<HTMLElement | null>>;
|
|
12
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
15
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
16
|
+
axis: ScrollEdgesAxis;
|
|
17
|
+
viewportClass: string;
|
|
18
|
+
viewportStyle: string | false | import('vue').CSSProperties | StyleValue[] | null;
|
|
19
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
13
20
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
14
21
|
declare const _default: typeof __VLS_export;
|
|
15
22
|
export default _default;
|
|
@@ -24,12 +24,14 @@ declare function getCheckedNodes(includeHalf?: boolean): TreeNode[];
|
|
|
24
24
|
/** Moves a node among its siblings; used by the Alt+Arrow keys and the exposed API. */
|
|
25
25
|
declare function moveSiblingBy(node: TreeNode, delta: number): void;
|
|
26
26
|
declare function moveNode(sourceId: string, targetId: string, position: TreeViewPosition): void;
|
|
27
|
-
declare var
|
|
27
|
+
declare var __VLS_64: {
|
|
28
28
|
node: TreeNode;
|
|
29
29
|
selected: boolean;
|
|
30
|
-
};
|
|
30
|
+
}, __VLS_66: {};
|
|
31
31
|
type __VLS_Slots = {} & {
|
|
32
|
-
trailing?: (props: typeof
|
|
32
|
+
trailing?: (props: typeof __VLS_64) => any;
|
|
33
|
+
} & {
|
|
34
|
+
empty?: (props: typeof __VLS_66) => any;
|
|
33
35
|
};
|
|
34
36
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
35
37
|
getNodes: () => TreeNode[];
|
|
@@ -46,6 +48,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
46
48
|
node: TreeNode;
|
|
47
49
|
children: TreeNode[];
|
|
48
50
|
}) => any;
|
|
51
|
+
check: (payload: TreeViewCheckPayload) => any;
|
|
49
52
|
"update:checkedKeys": (value: string[]) => any;
|
|
50
53
|
reorder: (payload: {
|
|
51
54
|
node: TreeNode;
|
|
@@ -56,7 +59,6 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
56
59
|
expand: (node: TreeNode) => any;
|
|
57
60
|
"update:expanded": (value: string[]) => any;
|
|
58
61
|
"update:nodes": (value: TreeNode[]) => any;
|
|
59
|
-
check: (payload: TreeViewCheckPayload) => any;
|
|
60
62
|
collapse: (node: TreeNode) => any;
|
|
61
63
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
62
64
|
onSelect?: ((node: TreeNode) => any) | undefined;
|
|
@@ -65,6 +67,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
65
67
|
node: TreeNode;
|
|
66
68
|
children: TreeNode[];
|
|
67
69
|
}) => any) | undefined;
|
|
70
|
+
onCheck?: ((payload: TreeViewCheckPayload) => any) | undefined;
|
|
68
71
|
"onUpdate:checkedKeys"?: ((value: string[]) => any) | undefined;
|
|
69
72
|
onReorder?: ((payload: {
|
|
70
73
|
node: TreeNode;
|
|
@@ -75,7 +78,6 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
75
78
|
onExpand?: ((node: TreeNode) => any) | undefined;
|
|
76
79
|
"onUpdate:expanded"?: ((value: string[]) => any) | undefined;
|
|
77
80
|
"onUpdate:nodes"?: ((value: TreeNode[]) => any) | undefined;
|
|
78
|
-
onCheck?: ((payload: TreeViewCheckPayload) => any) | undefined;
|
|
79
81
|
onCollapse?: ((node: TreeNode) => any) | undefined;
|
|
80
82
|
}>, {
|
|
81
83
|
multiple: boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Columns for `count` cards in a `width`-wide grid, all in px: as many as fit
|
|
3
3
|
* at the minimum width, or one more if every card keeps 90% of it, then spread
|
|
4
|
-
* evenly over the rows it takes,
|
|
5
|
-
* (3 → 3, 4 → 2 + 2, 5 → 3 + 2). Unknown without a width or cards.
|
|
4
|
+
* evenly over the rows it takes, which avoids a lone card when the count
|
|
5
|
+
* allows it (3 → 3, 4 → 2 + 2, 5 → 3 + 2); 7 cards may still leave one orphan. Unknown without a width or cards.
|
|
6
6
|
*/
|
|
7
7
|
export declare function cardGridColumns({ width, count, minItemWidth, gap }: {
|
|
8
8
|
width: number;
|
|
@@ -31,23 +31,23 @@ type __VLS_Props = {
|
|
|
31
31
|
/** Emits `select` when the summary row is clicked. */
|
|
32
32
|
selectable?: boolean;
|
|
33
33
|
};
|
|
34
|
-
declare var __VLS_1: {}, __VLS_8: {},
|
|
34
|
+
declare var __VLS_1: {}, __VLS_8: {}, __VLS_20: {}, __VLS_22: {}, __VLS_24: {}, __VLS_26: {}, __VLS_28: {}, __VLS_30: {};
|
|
35
35
|
type __VLS_Slots = {} & {
|
|
36
36
|
icon?: (props: typeof __VLS_1) => any;
|
|
37
37
|
} & {
|
|
38
38
|
'icon-status'?: (props: typeof __VLS_8) => any;
|
|
39
39
|
} & {
|
|
40
|
-
title?: (props: typeof
|
|
40
|
+
title?: (props: typeof __VLS_20) => any;
|
|
41
41
|
} & {
|
|
42
|
-
status?: (props: typeof
|
|
42
|
+
status?: (props: typeof __VLS_22) => any;
|
|
43
43
|
} & {
|
|
44
|
-
label?: (props: typeof
|
|
44
|
+
label?: (props: typeof __VLS_24) => any;
|
|
45
45
|
} & {
|
|
46
|
-
block?: (props: typeof
|
|
46
|
+
block?: (props: typeof __VLS_26) => any;
|
|
47
47
|
} & {
|
|
48
|
-
detail?: (props: typeof
|
|
48
|
+
detail?: (props: typeof __VLS_28) => any;
|
|
49
49
|
} & {
|
|
50
|
-
'toggle-icon'?: (props: typeof
|
|
50
|
+
'toggle-icon'?: (props: typeof __VLS_30) => any;
|
|
51
51
|
};
|
|
52
52
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
53
53
|
select: (event: MouseEvent) => any;
|
|
@@ -34,13 +34,13 @@ type __VLS_Props = {
|
|
|
34
34
|
declare function reset(): void;
|
|
35
35
|
declare function showCustom(): void;
|
|
36
36
|
declare function closeDropdown(): void;
|
|
37
|
-
declare var
|
|
37
|
+
declare var __VLS_36: {}, __VLS_38: {}, __VLS_40: {};
|
|
38
38
|
type __VLS_Slots = {} & {
|
|
39
|
-
'top-custom'?: (props: typeof
|
|
39
|
+
'top-custom'?: (props: typeof __VLS_36) => any;
|
|
40
40
|
} & {
|
|
41
|
-
'bottom-custom'?: (props: typeof
|
|
41
|
+
'bottom-custom'?: (props: typeof __VLS_38) => any;
|
|
42
42
|
} & {
|
|
43
|
-
bottom?: (props: typeof
|
|
43
|
+
bottom?: (props: typeof __VLS_40) => any;
|
|
44
44
|
};
|
|
45
45
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
46
46
|
reset: typeof reset;
|
|
@@ -3,9 +3,9 @@ type __VLS_Props = {
|
|
|
3
3
|
items: ContextMenuEntry[];
|
|
4
4
|
disabled?: boolean;
|
|
5
5
|
};
|
|
6
|
-
declare var
|
|
6
|
+
declare var __VLS_18: {};
|
|
7
7
|
type __VLS_Slots = {} & {
|
|
8
|
-
default?: (props: typeof
|
|
8
|
+
default?: (props: typeof __VLS_18) => any;
|
|
9
9
|
};
|
|
10
10
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
11
|
select: (key: string) => any;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ContextMenuEntry } from './types';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
items: ContextMenuEntry[];
|
|
4
|
+
/** Where submenus must stay; see useCollisionBoundary. */
|
|
5
|
+
collisionBoundary?: HTMLElement | HTMLElement[];
|
|
4
6
|
};
|
|
5
7
|
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
6
8
|
select: (key: string) => any;
|
|
@@ -8,6 +10,8 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {
|
|
|
8
10
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
9
11
|
onSelect?: ((key: string) => any) | undefined;
|
|
10
12
|
onToggle?: ((key: string, checked: boolean) => any) | undefined;
|
|
11
|
-
}>, {
|
|
13
|
+
}>, {
|
|
14
|
+
collisionBoundary: HTMLElement | HTMLElement[];
|
|
15
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
16
|
declare const _default: typeof __VLS_export;
|
|
13
17
|
export default _default;
|
|
@@ -9,6 +9,8 @@ type __VLS_Props = {
|
|
|
9
9
|
radioValue?: string;
|
|
10
10
|
/** Controlled values of named radio groups, keyed by `group`. */
|
|
11
11
|
radioValues?: Record<string, string>;
|
|
12
|
+
/** Mark of the selected radio entry: a filled dot (default) or a check. */
|
|
13
|
+
radioIndicator?: 'dot' | 'check';
|
|
12
14
|
};
|
|
13
15
|
declare var __VLS_16: {};
|
|
14
16
|
type __VLS_Slots = {} & {
|
|
@@ -30,6 +32,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
30
32
|
onRadioSelect?: ((value: string, key: string, group: string) => any) | undefined;
|
|
31
33
|
}>, {
|
|
32
34
|
align: "start" | "center" | "end";
|
|
35
|
+
radioIndicator: "dot" | "check";
|
|
33
36
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
34
37
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
35
38
|
declare const _default: typeof __VLS_export;
|
|
@@ -5,6 +5,8 @@ type __VLS_Props = {
|
|
|
5
5
|
radioValues?: Record<string, string>;
|
|
6
6
|
/** Where submenus must stay; see useCollisionBoundary. */
|
|
7
7
|
collisionBoundary?: HTMLElement | HTMLElement[];
|
|
8
|
+
/** Mark of the selected radio entry: a filled dot (default) or a check. */
|
|
9
|
+
radioIndicator?: 'dot' | 'check';
|
|
8
10
|
};
|
|
9
11
|
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
12
|
select: (key: string) => any;
|
|
@@ -18,6 +20,7 @@ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {
|
|
|
18
20
|
collisionBoundary: HTMLElement | HTMLElement[];
|
|
19
21
|
checkedKeys: string[];
|
|
20
22
|
radioValues: Record<string, string>;
|
|
23
|
+
radioIndicator: "dot" | "check";
|
|
21
24
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
22
25
|
declare const _default: typeof __VLS_export;
|
|
23
26
|
export default _default;
|
|
@@ -40,6 +40,8 @@ type __VLS_Props = {
|
|
|
40
40
|
maxPageButtons?: number;
|
|
41
41
|
/** Shows the refresh control, which emits `refresh`. */
|
|
42
42
|
refresh?: boolean;
|
|
43
|
+
/** Groups thousands in the total text and page numbers (`1,234,567`); false prints plain digits. */
|
|
44
|
+
groupDigits?: boolean;
|
|
43
45
|
totalTextMode?: PaginationTotalTextMode;
|
|
44
46
|
totalTextFormat?: Partial<Record<PaginationTotalTextMode, string>>;
|
|
45
47
|
labels?: Partial<PaginationLabels>;
|
|
@@ -98,6 +100,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
|
98
100
|
autoLess: boolean;
|
|
99
101
|
lessWidth: number;
|
|
100
102
|
maxPageButtons: number;
|
|
103
|
+
groupDigits: boolean;
|
|
101
104
|
totalTextMode: PaginationTotalTextMode;
|
|
102
105
|
totalTextFormat: Partial<Record<PaginationTotalTextMode, string>>;
|
|
103
106
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
@@ -19,8 +19,8 @@ type __VLS_Slots = {} & {
|
|
|
19
19
|
};
|
|
20
20
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
21
21
|
disabled: boolean;
|
|
22
|
-
tooltip: string | boolean | Record<string, unknown>;
|
|
23
22
|
dot: string | boolean;
|
|
23
|
+
tooltip: string | boolean | Record<string, unknown>;
|
|
24
24
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
25
25
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
26
26
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
2
|
label?: string;
|
|
3
3
|
size?: number;
|
|
4
|
+
/** The ring fills the whole `size` box (an 16px ring beside text) instead of DSM's 2/3 ring in a 24px box. */
|
|
5
|
+
inline?: boolean;
|
|
4
6
|
};
|
|
5
7
|
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
6
8
|
size: number;
|
|
9
|
+
inline: boolean;
|
|
7
10
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
8
11
|
declare const _default: typeof __VLS_export;
|
|
9
12
|
export default _default;
|
|
@@ -8,6 +8,8 @@ type __VLS_Props = {
|
|
|
8
8
|
delay?: number;
|
|
9
9
|
/** Replaces the whole text of a cut element; `false` shows nothing for it. */
|
|
10
10
|
resolve?: (found: CutText) => string | false | undefined;
|
|
11
|
+
/** Touch and pen taps on cut text toggle the tooltip. */
|
|
12
|
+
openOnTap?: boolean;
|
|
11
13
|
};
|
|
12
14
|
declare var __VLS_1: {};
|
|
13
15
|
type __VLS_Slots = {} & {
|
|
@@ -19,6 +21,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
19
21
|
align: "start" | "center" | "end";
|
|
20
22
|
delay: number;
|
|
21
23
|
resolve: (found: CutText) => string | false | undefined;
|
|
24
|
+
openOnTap: boolean;
|
|
22
25
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
23
26
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
24
27
|
declare const _default: typeof __VLS_export;
|
|
@@ -4,15 +4,18 @@ type __VLS_Props = {
|
|
|
4
4
|
delay?: number;
|
|
5
5
|
/** Keeps the trigger from opening a tooltip at all. */
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
/** A tap on the trigger toggles the tooltip (touch has no hover). Off by default so an icon button's tap only acts. */
|
|
8
|
+
openOnTap?: boolean;
|
|
7
9
|
};
|
|
8
|
-
declare var
|
|
10
|
+
declare var __VLS_25: {};
|
|
9
11
|
type __VLS_Slots = {} & {
|
|
10
|
-
default?: (props: typeof
|
|
12
|
+
default?: (props: typeof __VLS_25) => any;
|
|
11
13
|
};
|
|
12
14
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
13
15
|
disabled: boolean;
|
|
14
16
|
side: "top" | "right" | "bottom" | "left";
|
|
15
17
|
delay: number;
|
|
18
|
+
openOnTap: boolean;
|
|
16
19
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
17
20
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
18
21
|
declare const _default: typeof __VLS_export;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const TOOLTIP_CONTENT_CLASS = "z-[
|
|
1
|
+
export declare const TOOLTIP_CONTENT_CLASS = "z-[1450] max-w-72 rounded-[var(--ui-radius-sm)] bg-[var(--ui-tooltip-bg)] px-2.5 py-1.5 text-[12px] leading-4 text-[var(--ui-tooltip-fg)] whitespace-pre-line shadow-[var(--ui-shadow-menu)] [overflow-wrap:anywhere] animate-[ui-fade-in_var(--ui-motion-fast)_var(--ui-motion-ease)]";
|
|
@@ -11,6 +11,8 @@ type __VLS_Props = {
|
|
|
11
11
|
/** Render the permalink anchor. */
|
|
12
12
|
anchor?: boolean;
|
|
13
13
|
anchorLabel?: string;
|
|
14
|
+
/** `end` puts the anchor after the text; `start` hangs it in the left margin (it is cut at a container's edge). */
|
|
15
|
+
anchorPlacement?: 'start' | 'end';
|
|
14
16
|
};
|
|
15
17
|
declare var __VLS_8: {};
|
|
16
18
|
type __VLS_Slots = {} & {
|
|
@@ -22,6 +24,7 @@ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {},
|
|
|
22
24
|
href: string;
|
|
23
25
|
level: HeaderLevel;
|
|
24
26
|
baseUrl: string;
|
|
27
|
+
anchorPlacement: "start" | "end";
|
|
25
28
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
26
29
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
27
30
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { ShallowRef } from 'vue';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*
|
|
5
|
-
|
|
2
|
+
export type ScrollEdgesAxis = 'x' | 'y' | 'both';
|
|
3
|
+
/** Whether a scroller has more content before (`start`, `top`) or after
|
|
4
|
+
* (`end`, `bottom`) what it shows. `axis` picks the horizontal pair (`x`, the
|
|
5
|
+
* default), the vertical pair (`y`) or both. Follows scrolling and size
|
|
6
|
+
* changes of the scroller and of its content. */
|
|
7
|
+
export declare function useScrollEdges(viewport: Readonly<ShallowRef<HTMLElement | null>>, axis?: () => ScrollEdgesAxis): {
|
|
6
8
|
start: import('vue').Ref<boolean, boolean>;
|
|
7
9
|
end: import('vue').Ref<boolean, boolean>;
|
|
10
|
+
top: import('vue').Ref<boolean, boolean>;
|
|
11
|
+
bottom: import('vue').Ref<boolean, boolean>;
|
|
8
12
|
};
|
package/dist/i18n/text.d.ts
CHANGED
|
@@ -95,6 +95,7 @@ export declare const englishUiText: {
|
|
|
95
95
|
readonly "Version {version} is available.": "Version {version} is available.";
|
|
96
96
|
readonly "Beta version {version} is available.": "Beta version {version} is available.";
|
|
97
97
|
readonly "Could not check for updates.": "Could not check for updates.";
|
|
98
|
+
readonly "You have the latest version.": "You have the latest version.";
|
|
98
99
|
readonly Retry: "Retry";
|
|
99
100
|
readonly "Release notes": "Release notes";
|
|
100
101
|
readonly "Terms of Service": "Terms of Service";
|