@synopackageland/ui 0.4.0 → 0.5.3
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 +27 -0
- package/dist/components/advanced-panel/AdvancePanelColumns.vue.d.ts +19 -0
- package/dist/components/advanced-panel/AdvancePanelForm.vue.d.ts +21 -0
- package/dist/components/advanced-panel/AdvancePanelGrid.vue.d.ts +44 -0
- package/dist/components/advanced-panel/types.d.ts +50 -0
- package/dist/components/app/app-action-bar/AppActionBar.vue.d.ts +13 -3
- package/dist/components/app/app-layout/AppLayout.vue.d.ts +1 -1
- package/dist/components/app/app-sidebar/AppSidebar.vue.d.ts +12 -13
- package/dist/components/app/app-sidebar/AppSidebarItems.vue.d.ts +17 -0
- package/dist/components/app/app-sidebar/types.d.ts +16 -0
- package/dist/components/app/section-tabs/SectionTabs.vue.d.ts +11 -1
- package/dist/components/composite/about-dialog/AboutDialog.vue.d.ts +78 -0
- package/dist/components/composite/about-dialog/types.d.ts +6 -0
- package/dist/components/composite/callout/Callout.vue.d.ts +12 -2
- package/dist/components/composite/config-provider/ConfigProvider.vue.d.ts +19 -0
- package/dist/components/composite/copy-cut-field/CopyCutField.vue.d.ts +44 -0
- package/dist/components/composite/data-grid/DataGrid.vue.d.ts +150 -25
- package/dist/components/composite/data-grid/labels.d.ts +15 -1
- package/dist/components/composite/data-view/DataView.vue.d.ts +54 -0
- package/dist/components/composite/footbar/Footbar.vue.d.ts +13 -0
- package/dist/components/composite/footbar/FootbarButtons.vue.d.ts +13 -0
- package/dist/components/composite/footbar/types.d.ts +32 -0
- package/dist/components/composite/form/Form.vue.d.ts +49 -0
- package/dist/components/composite/form/FormItem.vue.d.ts +132 -0
- package/dist/components/composite/form/context.d.ts +61 -0
- package/dist/components/composite/form/rules.d.ts +17 -0
- package/dist/components/composite/form/types.d.ts +50 -0
- package/dist/components/composite/message-box/MessageBox.vue.d.ts +34 -0
- package/dist/components/composite/message-box/MessageBoxProvider.vue.d.ts +13 -0
- package/dist/components/composite/message-box/controller.d.ts +20 -0
- package/dist/components/composite/message-box/types.d.ts +97 -0
- package/dist/components/composite/overflow-list/OverflowList.vue.d.ts +40 -0
- package/dist/components/composite/overflow-list/OverflowListItem.vue.d.ts +18 -0
- package/dist/components/composite/overflow-toolbar/OverflowToolbar.vue.d.ts +46 -0
- package/dist/components/composite/overflow-toolbar/overflow.d.ts +25 -0
- package/dist/components/composite/overflow-toolbar/types.d.ts +27 -0
- package/dist/components/composite/settings-section/SettingsSection.vue.d.ts +18 -3
- package/dist/components/composite/tree-view/TreeView.vue.d.ts +64 -12
- package/dist/components/composite/tree-view/treeUtils.d.ts +15 -0
- package/dist/components/composite/tree-view/types.d.ts +38 -0
- package/dist/components/composite/virtual-list/VirtualList.vue.d.ts +44 -0
- package/dist/components/composite/wizard/Wizard.vue.d.ts +68 -0
- package/dist/components/composite/wizard/WizardStep.vue.d.ts +20 -0
- package/dist/components/composite/wizard/types.d.ts +32 -0
- package/dist/components/composite/wizard/wizardContext.d.ts +17 -0
- package/dist/components/containers/card/Card.vue.d.ts +42 -0
- package/dist/components/containers/expandable-item/ExpandableItem.vue.d.ts +79 -0
- package/dist/components/containers/fieldset/Fieldset.vue.d.ts +58 -0
- package/dist/components/containers/highlight-box/HighlightBox.vue.d.ts +23 -0
- package/dist/components/containers/panel/Panel.vue.d.ts +59 -0
- package/dist/components/feedback/info-mask/InfoMask.vue.d.ts +22 -0
- package/dist/components/feedback/info-tip/InfoTip.vue.d.ts +53 -0
- package/dist/components/feedback/notification/Notification.vue.d.ts +50 -0
- package/dist/components/feedback/notification/NotificationProvider.vue.d.ts +36 -0
- package/dist/components/feedback/notification/notification.d.ts +45 -0
- package/dist/components/feedback/validation-popup/ValidationPopup.vue.d.ts +41 -0
- package/dist/components/primitives/affix/Affix.vue.d.ts +40 -0
- package/dist/components/primitives/affix/affixPosition.d.ts +35 -0
- package/dist/components/primitives/breadcrumb/Breadcrumb.vue.d.ts +38 -0
- package/dist/components/primitives/breadcrumb/BreadcrumbCrumb.vue.d.ts +13 -0
- package/dist/components/primitives/breadcrumb/collapse.d.ts +25 -0
- package/dist/components/primitives/breadcrumb/types.d.ts +14 -0
- package/dist/components/primitives/color-picker/ColorPicker.vue.d.ts +70 -0
- package/dist/components/primitives/color-picker/palette.d.ts +2 -0
- package/dist/components/primitives/combobox/Combobox.vue.d.ts +33 -0
- package/dist/components/primitives/date-picker/DatePicker.vue.d.ts +39 -1
- package/dist/components/primitives/date-picker/dateTime.d.ts +44 -0
- package/dist/components/primitives/dialog/Dialog.vue.d.ts +6 -3
- package/dist/components/primitives/dropdown-menu/DropdownMenu.vue.d.ts +18 -13
- package/dist/components/primitives/dropdown-menu/DropdownMenuItems.vue.d.ts +20 -0
- package/dist/components/primitives/dropdown-menu/types.d.ts +38 -0
- package/dist/components/primitives/ghost/Ghost.vue.d.ts +30 -0
- package/dist/components/primitives/icon/Icon.vue.d.ts +40 -0
- package/dist/components/primitives/icon/icon.d.ts +19 -0
- package/dist/components/primitives/icon/iconRegistry.d.ts +9 -0
- package/dist/components/primitives/icon/useIconButton.d.ts +30 -0
- package/dist/components/primitives/input/Input.vue.d.ts +6 -0
- package/dist/components/primitives/input/Textarea.vue.d.ts +6 -0
- package/dist/components/primitives/input-steppers/InputSteppers.vue.d.ts +60 -0
- package/dist/components/primitives/layout/Col.vue.d.ts +24 -0
- package/dist/components/primitives/layout/Grid.vue.d.ts +35 -0
- package/dist/components/primitives/layout/Row.vue.d.ts +23 -0
- package/dist/components/primitives/layout/breakpoints.d.ts +24 -0
- package/dist/components/primitives/layout/context.d.ts +22 -0
- package/dist/components/primitives/layout/gap.d.ts +12 -0
- package/dist/components/primitives/multiple-select/MultipleSelect.vue.d.ts +32 -0
- package/dist/components/primitives/pagination/Pagination.vue.d.ts +111 -0
- package/dist/components/primitives/pagination/labels.d.ts +18 -0
- package/dist/components/primitives/pagination/model.d.ts +13 -0
- package/dist/components/primitives/progress/Progress.vue.d.ts +2 -0
- package/dist/components/primitives/rich-text/RichText.vue.d.ts +57 -0
- package/dist/components/primitives/rich-text/parseRichText.d.ts +31 -0
- package/dist/components/primitives/schedule-table/ScheduleTable.vue.d.ts +65 -0
- package/dist/components/primitives/schedule-table/schedule.d.ts +55 -0
- package/dist/components/primitives/scrollbar/Scrollbar.vue.d.ts +110 -0
- package/dist/components/primitives/scrollbar/types.d.ts +10 -0
- package/dist/components/primitives/segment-control/SegmentControl.vue.d.ts +32 -0
- package/dist/components/primitives/segment-control/SegmentItem.vue.d.ts +32 -0
- package/dist/components/primitives/segment-control/context.d.ts +19 -0
- package/dist/components/primitives/select/Select.vue.d.ts +15 -1
- package/dist/components/primitives/select/internal/ComboboxField.vue.d.ts +46 -0
- package/dist/components/primitives/select/internal/SelectTag.vue.d.ts +15 -0
- package/dist/components/primitives/select/internal/options.d.ts +17 -0
- package/dist/components/primitives/select/internal/types.d.ts +43 -0
- package/dist/components/primitives/select/internal/useSelectSearch.d.ts +20 -0
- package/dist/components/primitives/sheet/Sheet.vue.d.ts +3 -3
- package/dist/components/primitives/skeleton/Skeleton.vue.d.ts +1 -1
- package/dist/components/primitives/slider/Slider.vue.d.ts +56 -0
- package/dist/components/primitives/space/Space.vue.d.ts +27 -0
- package/dist/components/primitives/space/space.d.ts +10 -0
- package/dist/components/primitives/superbox-select/SuperboxSelect.vue.d.ts +33 -0
- package/dist/components/primitives/tag/Tag.vue.d.ts +59 -0
- package/dist/components/primitives/toggle-button/ToggleButton.vue.d.ts +43 -0
- package/dist/components/primitives/toggle-button/ToggleButtonGroup.vue.d.ts +38 -0
- package/dist/components/primitives/toggle-button/toggleButton.d.ts +9 -0
- package/dist/components/primitives/tooltip/Tooltip.vue.d.ts +3 -0
- package/dist/components/primitives/typography/TypoA.vue.d.ts +13 -0
- package/dist/components/primitives/typography/TypoBlockquote.vue.d.ts +13 -0
- package/dist/components/primitives/typography/TypoCode.vue.d.ts +13 -0
- package/dist/components/primitives/typography/TypoDivider.vue.d.ts +3 -0
- package/dist/components/primitives/typography/TypoHeader.vue.d.ts +32 -0
- package/dist/components/primitives/typography/TypoHr.vue.d.ts +3 -0
- package/dist/components/primitives/typography/TypoLi.vue.d.ts +13 -0
- package/dist/components/primitives/typography/TypoList.vue.d.ts +13 -0
- package/dist/components/primitives/typography/TypoP.vue.d.ts +13 -0
- package/dist/components/primitives/typography/TypoTable.vue.d.ts +13 -0
- package/dist/components/primitives/typography/TypoText.vue.d.ts +26 -0
- package/dist/components/primitives/typography/TypoTip.vue.d.ts +21 -0
- package/dist/components/primitives/typography/typography.d.ts +12 -0
- package/dist/composables/configCascade.d.ts +42 -0
- package/dist/composables/tabIndicator.d.ts +18 -0
- package/dist/index.d.ts +122 -2
- package/dist/index.js +23143 -11311
- package/dist/lib/controllable.d.ts +19 -0
- package/dist/lib/numberField.d.ts +24 -0
- package/dist/lib/overflow.d.ts +13 -0
- package/dist/reka-runtime.json +5 -3
- 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/app-local-modal.md +9 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -349,6 +349,23 @@ DSM-style application building blocks:
|
|
|
349
349
|
- AppLayout / AppSidebar / AppToolbar / AppActionBar
|
|
350
350
|
- PageHeader / SectionTabs
|
|
351
351
|
|
|
352
|
+
`Tabs` and `SectionTabs` move a raised selection notch in 120ms. Selected labels
|
|
353
|
+
are blue; main labels are bold 14px and section labels bold 13px. `Tabs` fades its
|
|
354
|
+
new panel in over 160ms, with immediate selection and keyboard response.
|
|
355
|
+
`SectionTabs` can also render content using named `panel-${value}` slots:
|
|
356
|
+
|
|
357
|
+
```vue
|
|
358
|
+
<SectionTabs v-model="section" :items="sections">
|
|
359
|
+
<template #panel-general>General settings</template>
|
|
360
|
+
<template #panel-advanced>Advanced settings</template>
|
|
361
|
+
</SectionTabs>
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
Navigation-only `SectionTabs` usage still works. For content managed separately
|
|
365
|
+
by the caller, add `class="ui-tab-panel"` to a panel keyed by the selected value
|
|
366
|
+
to use the same short fade. These effects and the loading ring respect the
|
|
367
|
+
system's reduced-motion preference.
|
|
368
|
+
|
|
352
369
|
`FilePicker` owns file selection/validation/drop-zone UI only; applications remain responsible for upload transport.
|
|
353
370
|
|
|
354
371
|
### DataGrid
|
|
@@ -372,6 +389,10 @@ DSM-style application building blocks:
|
|
|
372
389
|
- **Footer bar.** `footer` shows the DSM bar with the item count; `refreshable` adds the refresh button (`@refresh`, `refreshing` spins it). Without `footer` it appears only when there is more than one page or a `#footer` slot.
|
|
373
390
|
- **Localisation.** Every built-in string goes through `labels`: `empty`, `items(count)`, `page(page, count)`, `previous`, `next`, `refresh`, `selectAll`, `selectRow(key)`, `resizeColumn(label)`. `emptyText` still works.
|
|
374
391
|
- **Loading.** `loading` masks the table with a centred indicator; `loading-text` adds a message.
|
|
392
|
+
- **Footer layout.** The footer has top and bottom divider lines and a separator
|
|
393
|
+
before Refresh. In a flex column with a bounded height, the grid fills the
|
|
394
|
+
remaining space and its rows scroll above the footer. Use `class="flex-none"`
|
|
395
|
+
for a grid that should retain its content height.
|
|
375
396
|
- Virtual scrolling is not provided; page long lists (`page-size`).
|
|
376
397
|
|
|
377
398
|
### Loading
|
|
@@ -402,6 +423,7 @@ pnpm dev # rebuild dist when library source changes
|
|
|
402
423
|
pnpm check # lint, typecheck, tests, and production build
|
|
403
424
|
pnpm story:build # build the component workbench
|
|
404
425
|
pnpm check:host # after pnpm build: DSM host simulation screenshots (Chrome)
|
|
426
|
+
pnpm check:switch # after pnpm build: Switch knob geometry and click toggling (Chrome)
|
|
405
427
|
```
|
|
406
428
|
|
|
407
429
|
`pnpm check:host` serves `tests/dsm-host` and screenshots each overlay scene in
|
|
@@ -411,6 +433,11 @@ stylesheet written for these tests that reproduces DSM's known element rules.
|
|
|
411
433
|
The images must be identical, and must match `theme.css` on a plain page. They
|
|
412
434
|
are left in `.dsm-host-shots/`.
|
|
413
435
|
|
|
436
|
+
`pnpm check:switch` renders the Switch off, on and disabled on the standalone theme and the
|
|
437
|
+
embedded theme (also under `host-simulation.css`), checks in headless Chrome that the knob stays
|
|
438
|
+
inside and centred in the track and that a real mouse click toggles an enabled switch. Screenshots
|
|
439
|
+
are left in `.switch-shots/`.
|
|
440
|
+
|
|
414
441
|
In the workbench, open `DSM 7 / App Interior` and `DSM 7 / Advanced Components`
|
|
415
442
|
for reference compositions. See [SPEC.md](./SPEC.md) for architecture and
|
|
416
443
|
contribution rules, and [src/index.ts](./src/index.ts) for public exports.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AdvancePanelColumn } from './types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
columns?: AdvancePanelColumn[];
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_2: string, __VLS_3: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
10
|
+
columns: AdvancePanelColumn[];
|
|
11
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AdvancePanelField } from './types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
fields?: AdvancePanelField[];
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_2: `${string}-label`, __VLS_3: {}, __VLS_6: `${string}-value`, __VLS_7: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
8
|
+
} & {
|
|
9
|
+
[K in NonNullable<typeof __VLS_6>]?: (props: typeof __VLS_7) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
12
|
+
fields: AdvancePanelField[];
|
|
13
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
|
+
declare const _default: typeof __VLS_export;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
18
|
+
new (): {
|
|
19
|
+
$slots: S;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AdvancePanelGridCell, AdvancePanelGridColumn, AdvancePanelGridRow, AdvancePanelGridSort, AdvancePanelGridSortResolver } from './types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
columns: AdvancePanelGridColumn[];
|
|
4
|
+
data: AdvancePanelGridRow[];
|
|
5
|
+
/** Custom comparator per column; falls back to a numeric/locale compare. */
|
|
6
|
+
localSortFunc?: AdvancePanelGridSortResolver;
|
|
7
|
+
};
|
|
8
|
+
declare function deactivateRow(): void;
|
|
9
|
+
declare var __VLS_2: `header-${string}`, __VLS_3: {
|
|
10
|
+
column: AdvancePanelGridColumn;
|
|
11
|
+
}, __VLS_25: {}, __VLS_28: string, __VLS_29: {
|
|
12
|
+
cell: AdvancePanelGridCell;
|
|
13
|
+
item: AdvancePanelGridRow;
|
|
14
|
+
column: AdvancePanelGridColumn;
|
|
15
|
+
index: number;
|
|
16
|
+
}, __VLS_31: {
|
|
17
|
+
item: AdvancePanelGridRow;
|
|
18
|
+
column: AdvancePanelGridColumn;
|
|
19
|
+
index: number;
|
|
20
|
+
activate: () => void;
|
|
21
|
+
deactivate: typeof deactivateRow;
|
|
22
|
+
};
|
|
23
|
+
type __VLS_Slots = {} & {
|
|
24
|
+
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
25
|
+
} & {
|
|
26
|
+
[K in NonNullable<typeof __VLS_28>]?: (props: typeof __VLS_29) => any;
|
|
27
|
+
} & {
|
|
28
|
+
'empty-body'?: (props: typeof __VLS_25) => any;
|
|
29
|
+
} & {
|
|
30
|
+
'row-hover-action'?: (props: typeof __VLS_31) => any;
|
|
31
|
+
};
|
|
32
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
33
|
+
"update:sort": (sort: AdvancePanelGridSort) => any;
|
|
34
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
35
|
+
"onUpdate:sort"?: ((sort: AdvancePanelGridSort) => any) | undefined;
|
|
36
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
37
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
38
|
+
declare const _default: typeof __VLS_export;
|
|
39
|
+
export default _default;
|
|
40
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
41
|
+
new (): {
|
|
42
|
+
$slots: S;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export type AdvancePanelColumn = {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
4
|
+
export type AdvancePanelField = {
|
|
5
|
+
name: string;
|
|
6
|
+
/** Let the value wrap instead of staying on a single truncated line. */
|
|
7
|
+
multipleLine?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type AdvancePanelGridCellObject = {
|
|
10
|
+
content?: string;
|
|
11
|
+
/** Tooltip for a single cell, shown through the native title attribute. */
|
|
12
|
+
tooltip?: string;
|
|
13
|
+
/** Name of the slot that renders this cell instead of plain text. */
|
|
14
|
+
slot?: string;
|
|
15
|
+
/** Injected verbatim; the caller owns the safety of the string. */
|
|
16
|
+
html?: string;
|
|
17
|
+
};
|
|
18
|
+
export type AdvancePanelGridCell = string | number | AdvancePanelGridCellObject;
|
|
19
|
+
export type AdvancePanelGridRow = Record<string, AdvancePanelGridCell>;
|
|
20
|
+
export type AdvancePanelGridSortOrder = 'ASC' | 'DESC';
|
|
21
|
+
export type AdvancePanelGridColumnSort = {
|
|
22
|
+
/** Sorting is off unless this is explicitly `false`. */
|
|
23
|
+
disable?: boolean;
|
|
24
|
+
/** First-click direction, `ASC` when unset. */
|
|
25
|
+
defaultOrder?: AdvancePanelGridSortOrder;
|
|
26
|
+
};
|
|
27
|
+
export type AdvancePanelGridTooltip = string | {
|
|
28
|
+
content?: string;
|
|
29
|
+
overflowOnly?: boolean;
|
|
30
|
+
};
|
|
31
|
+
export type AdvancePanelGridColumn = {
|
|
32
|
+
title: string;
|
|
33
|
+
field: string;
|
|
34
|
+
sort?: AdvancePanelGridColumnSort;
|
|
35
|
+
/** Supplementary info icon shown next to the header title. */
|
|
36
|
+
tip?: string;
|
|
37
|
+
tooltip?: AdvancePanelGridTooltip;
|
|
38
|
+
align?: 'left' | 'center' | 'right';
|
|
39
|
+
};
|
|
40
|
+
export type AdvancePanelGridSort = {
|
|
41
|
+
columnIndex: number;
|
|
42
|
+
order: AdvancePanelGridSortOrder;
|
|
43
|
+
};
|
|
44
|
+
export type AdvancePanelGridSortComparer = (a: AdvancePanelGridRow, b: AdvancePanelGridRow) => number;
|
|
45
|
+
export type AdvancePanelGridSortResolver = (column: AdvancePanelGridColumn) => AdvancePanelGridSortComparer;
|
|
46
|
+
export declare function isSortable(column: AdvancePanelGridColumn): boolean;
|
|
47
|
+
export declare function cellObject(cell: AdvancePanelGridCell | undefined): AdvancePanelGridCellObject | undefined;
|
|
48
|
+
/** Plain text of a cell, used for sorting and for the default rendering path. */
|
|
49
|
+
export declare function cellText(cell: AdvancePanelGridCell | undefined): string;
|
|
50
|
+
export declare function defaultCellComparer(a: AdvancePanelGridRow, b: AdvancePanelGridRow, field: string): number;
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
import { FootbarButton } from '../../composite/footbar/types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
buttons?: FootbarButton[];
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {}, __VLS_24: {};
|
|
2
6
|
type __VLS_Slots = {} & {
|
|
3
7
|
leading?: (props: typeof __VLS_1) => any;
|
|
4
8
|
} & {
|
|
5
|
-
default?: (props: typeof
|
|
9
|
+
default?: (props: typeof __VLS_24) => any;
|
|
6
10
|
};
|
|
7
|
-
declare const __VLS_base: import('vue').DefineComponent<
|
|
11
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
12
|
+
"click-button": (button: FootbarButton, event: MouseEvent) => any;
|
|
13
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
14
|
+
"onClick-button"?: ((button: FootbarButton, event: MouseEvent) => any) | undefined;
|
|
15
|
+
}>, {
|
|
16
|
+
buttons: FootbarButton[];
|
|
17
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
8
18
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
9
19
|
declare const _default: typeof __VLS_export;
|
|
10
20
|
export default _default;
|
|
@@ -13,8 +13,8 @@ type __VLS_Slots = {} & {
|
|
|
13
13
|
footer?: (props: typeof __VLS_7) => any;
|
|
14
14
|
};
|
|
15
15
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
16
|
-
sidebarWidth: string;
|
|
17
16
|
minHeight: string;
|
|
17
|
+
sidebarWidth: string;
|
|
18
18
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
19
19
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
20
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export type AppSidebarItem
|
|
3
|
-
key: string;
|
|
4
|
-
label: string;
|
|
5
|
-
icon?: Component;
|
|
6
|
-
badge?: string | number;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
};
|
|
9
|
-
export type AppSidebarGroup = {
|
|
10
|
-
label?: string;
|
|
11
|
-
items: AppSidebarItem[];
|
|
12
|
-
};
|
|
1
|
+
import { AppSidebarGroup, AppSidebarItem } from './types';
|
|
2
|
+
export type { AppSidebarGroup, AppSidebarItem } from './types';
|
|
13
3
|
type __VLS_Props = {
|
|
14
4
|
modelValue?: string;
|
|
15
5
|
groups: AppSidebarGroup[];
|
|
@@ -18,17 +8,26 @@ type __VLS_Props = {
|
|
|
18
8
|
searchPlaceholder?: string;
|
|
19
9
|
/** Section headers get a chevron and fold their items. */
|
|
20
10
|
collapsible?: boolean;
|
|
11
|
+
/** Bind to control which rows with children are open. */
|
|
12
|
+
expandedKeys?: string[];
|
|
13
|
+
defaultExpandedKeys?: string[];
|
|
21
14
|
};
|
|
22
15
|
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
23
16
|
select: (item: AppSidebarItem) => any;
|
|
24
17
|
"update:modelValue": (value: string) => any;
|
|
18
|
+
"update:expandedKeys": (value: string[]) => any;
|
|
19
|
+
branchToggle: (key: string, expanded: boolean) => any;
|
|
25
20
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
26
21
|
onSelect?: ((item: AppSidebarItem) => any) | undefined;
|
|
27
22
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
23
|
+
"onUpdate:expandedKeys"?: ((value: string[]) => any) | undefined;
|
|
24
|
+
onBranchToggle?: ((key: string, expanded: boolean) => any) | undefined;
|
|
28
25
|
}>, {
|
|
26
|
+
searchPlaceholder: string;
|
|
29
27
|
collapsible: boolean;
|
|
28
|
+
expandedKeys: string[];
|
|
29
|
+
defaultExpandedKeys: string[];
|
|
30
30
|
searchable: boolean;
|
|
31
|
-
searchPlaceholder: string;
|
|
32
31
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
33
32
|
declare const _default: typeof __VLS_export;
|
|
34
33
|
export default _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AppSidebarItem } from './types';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
items: AppSidebarItem[];
|
|
4
|
+
modelValue?: string;
|
|
5
|
+
expandedKeys: string[];
|
|
6
|
+
depth: number;
|
|
7
|
+
searching?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
10
|
+
select: (item: AppSidebarItem) => any;
|
|
11
|
+
toggle: (key: string) => any;
|
|
12
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
|
+
onSelect?: ((item: AppSidebarItem) => any) | undefined;
|
|
14
|
+
onToggle?: ((key: string) => any) | undefined;
|
|
15
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component } from 'vue';
|
|
2
|
+
export type AppSidebarItem = {
|
|
3
|
+
key: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: Component;
|
|
6
|
+
badge?: string | number;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
/** Nested submodules; the row becomes an expand/collapse control. */
|
|
9
|
+
children?: AppSidebarItem[];
|
|
10
|
+
/** Let a row that has children also be selected. Off by default. */
|
|
11
|
+
selectable?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type AppSidebarGroup = {
|
|
14
|
+
label?: string;
|
|
15
|
+
items: AppSidebarItem[];
|
|
16
|
+
};
|
|
@@ -7,10 +7,20 @@ type __VLS_Props = {
|
|
|
7
7
|
modelValue: string;
|
|
8
8
|
items: SectionTab[];
|
|
9
9
|
};
|
|
10
|
-
declare
|
|
10
|
+
declare var __VLS_2: `panel-${string}`, __VLS_3: {};
|
|
11
|
+
type __VLS_Slots = {} & {
|
|
12
|
+
[K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
|
|
13
|
+
};
|
|
14
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
11
15
|
"update:modelValue": (value: string) => any;
|
|
12
16
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
13
17
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
14
18
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
20
|
declare const _default: typeof __VLS_export;
|
|
16
21
|
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { AboutCheckState, AboutVersionInfo } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* App-local "About this application" dialog: name, tagline, version, copyright
|
|
4
|
+
* and legal links. It is a plain modal dialog, not a DSM window: no window
|
|
5
|
+
* manager, dragging or desktop frame.
|
|
6
|
+
*
|
|
7
|
+
* The optional update check is never hidden. `fetchVersion` is awaited, the
|
|
8
|
+
* result drives a visible, announced status (checking / update / beta /
|
|
9
|
+
* failed), the request is re-runnable and its outcome is observable through
|
|
10
|
+
* `check-start`, `check-result` and `check-error` plus the exposed
|
|
11
|
+
* `checkForUpdates()`.
|
|
12
|
+
*/
|
|
13
|
+
type __VLS_Props = {
|
|
14
|
+
open?: boolean;
|
|
15
|
+
defaultOpen?: boolean;
|
|
16
|
+
title: string;
|
|
17
|
+
tagline?: string;
|
|
18
|
+
version?: string;
|
|
19
|
+
/** Defaults to the current year at render time. */
|
|
20
|
+
copyrightYear?: string;
|
|
21
|
+
iconSrc?: string;
|
|
22
|
+
beta?: boolean;
|
|
23
|
+
tosUrl?: string;
|
|
24
|
+
privacyUrl?: string;
|
|
25
|
+
releaseNotesUrl?: string;
|
|
26
|
+
/** Runs on open. Return `newVersion` for an update, `betaVersion` for beta info, `{}`/undefined for failure. */
|
|
27
|
+
fetchVersion?: () => Promise<AboutVersionInfo>;
|
|
28
|
+
checkUpdates?: boolean;
|
|
29
|
+
width?: string;
|
|
30
|
+
closeLabel?: string;
|
|
31
|
+
};
|
|
32
|
+
declare function checkForUpdates(): Promise<AboutVersionInfo | null>;
|
|
33
|
+
declare var __VLS_11: {}, __VLS_13: {}, __VLS_58: {}, __VLS_61: {};
|
|
34
|
+
type __VLS_Slots = {} & {
|
|
35
|
+
trigger?: (props: typeof __VLS_11) => any;
|
|
36
|
+
} & {
|
|
37
|
+
icon?: (props: typeof __VLS_13) => any;
|
|
38
|
+
} & {
|
|
39
|
+
default?: (props: typeof __VLS_58) => any;
|
|
40
|
+
} & {
|
|
41
|
+
copyright?: (props: typeof __VLS_61) => any;
|
|
42
|
+
};
|
|
43
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
|
|
44
|
+
checkForUpdates: typeof checkForUpdates;
|
|
45
|
+
state: import('vue').Ref<AboutCheckState, AboutCheckState>;
|
|
46
|
+
versionInfo: import('vue').Ref<AboutVersionInfo | undefined, AboutVersionInfo | undefined>;
|
|
47
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
48
|
+
"update:open": (value: boolean) => any;
|
|
49
|
+
"check-start": () => any;
|
|
50
|
+
"check-result": (info: AboutVersionInfo | null) => any;
|
|
51
|
+
"check-error": (error: unknown) => any;
|
|
52
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
53
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
54
|
+
"onCheck-start"?: (() => any) | undefined;
|
|
55
|
+
"onCheck-result"?: ((info: AboutVersionInfo | null) => any) | undefined;
|
|
56
|
+
"onCheck-error"?: ((error: unknown) => any) | undefined;
|
|
57
|
+
}>, {
|
|
58
|
+
width: string;
|
|
59
|
+
defaultOpen: boolean;
|
|
60
|
+
open: boolean;
|
|
61
|
+
version: string;
|
|
62
|
+
closeLabel: string;
|
|
63
|
+
tagline: string;
|
|
64
|
+
iconSrc: string;
|
|
65
|
+
beta: boolean;
|
|
66
|
+
tosUrl: string;
|
|
67
|
+
privacyUrl: string;
|
|
68
|
+
releaseNotesUrl: string;
|
|
69
|
+
checkUpdates: boolean;
|
|
70
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
71
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
72
|
+
declare const _default: typeof __VLS_export;
|
|
73
|
+
export default _default;
|
|
74
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
75
|
+
new (): {
|
|
76
|
+
$slots: S;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Result of the optional `fetchVersion` request. An empty result means the check failed. */
|
|
2
|
+
export type AboutVersionInfo = {
|
|
3
|
+
newVersion?: string;
|
|
4
|
+
betaVersion?: string;
|
|
5
|
+
};
|
|
6
|
+
export type AboutCheckState = 'idle' | 'checking' | 'update-available' | 'beta-available' | 'failed';
|
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
type __VLS_Props = {
|
|
2
2
|
tone?: 'info' | 'success' | 'warning' | 'danger';
|
|
3
3
|
title?: string;
|
|
4
|
+
closable?: boolean;
|
|
5
|
+
closeLabel?: string;
|
|
4
6
|
};
|
|
5
|
-
declare var __VLS_6: {};
|
|
7
|
+
declare var __VLS_6: {}, __VLS_8: {};
|
|
6
8
|
type __VLS_Slots = {} & {
|
|
7
9
|
default?: (props: typeof __VLS_6) => any;
|
|
10
|
+
} & {
|
|
11
|
+
actions?: (props: typeof __VLS_8) => any;
|
|
8
12
|
};
|
|
9
|
-
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
13
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
14
|
+
close: () => any;
|
|
15
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
16
|
+
onClose?: (() => any) | undefined;
|
|
17
|
+
}>, {
|
|
10
18
|
tone: "info" | "success" | "warning" | "danger";
|
|
19
|
+
closeLabel: string;
|
|
20
|
+
closable: boolean;
|
|
11
21
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
22
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
23
|
declare const _default: typeof __VLS_export;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ConfigRecord } from '../../../composables/configCascade';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
config?: ConfigRecord;
|
|
4
|
+
};
|
|
5
|
+
declare var __VLS_1: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_1) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
10
|
+
config: ConfigRecord;
|
|
11
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
16
|
+
new (): {
|
|
17
|
+
$slots: S;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export type CopyCutFieldAutosize = boolean | {
|
|
2
|
+
minRows?: number;
|
|
3
|
+
maxRows?: number;
|
|
4
|
+
};
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
modelValue?: string;
|
|
7
|
+
/** `copy` writes the value; `cut` writes it and clears the field. */
|
|
8
|
+
type?: 'copy' | 'cut';
|
|
9
|
+
/** Non-editable display field. The `cut` action requires `readonly: false`. */
|
|
10
|
+
readonly?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
inputType?: 'text' | 'textarea';
|
|
13
|
+
/** Textarea growth: `false` keeps two rows, `true` grows without limit. */
|
|
14
|
+
autosize?: CopyCutFieldAutosize;
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
ariaLabel?: string;
|
|
17
|
+
ariaLabelledby?: string;
|
|
18
|
+
name?: string;
|
|
19
|
+
id?: string;
|
|
20
|
+
copyLabel?: string;
|
|
21
|
+
cutLabel?: string;
|
|
22
|
+
};
|
|
23
|
+
declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
24
|
+
"update:modelValue": (value: string) => any;
|
|
25
|
+
inputFocused: (event: FocusEvent) => any;
|
|
26
|
+
actionSuccess: (value: string) => any;
|
|
27
|
+
actionFailed: () => any;
|
|
28
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
29
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
30
|
+
onInputFocused?: ((event: FocusEvent) => any) | undefined;
|
|
31
|
+
onActionSuccess?: ((value: string) => any) | undefined;
|
|
32
|
+
onActionFailed?: (() => any) | undefined;
|
|
33
|
+
}>, {
|
|
34
|
+
type: "copy" | "cut";
|
|
35
|
+
disabled: boolean;
|
|
36
|
+
modelValue: string;
|
|
37
|
+
readonly: boolean;
|
|
38
|
+
inputType: "text" | "textarea";
|
|
39
|
+
autosize: CopyCutFieldAutosize;
|
|
40
|
+
copyLabel: string;
|
|
41
|
+
cutLabel: string;
|
|
42
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
43
|
+
declare const _default: typeof __VLS_export;
|
|
44
|
+
export default _default;
|