@bluerobotics/bluevue 0.1.0 → 0.2.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/README.md +97 -18
- package/bin/create-blueos-extension.mjs +72 -0
- package/dist/bluevue.js +2464 -778
- package/dist/components/BlueApp.vue.d.ts +50 -0
- package/dist/components/BlueBanner.vue.d.ts +49 -0
- package/dist/components/BlueBannerGroup.vue.d.ts +20 -0
- package/dist/components/BlueButton.vue.d.ts +59 -0
- package/dist/components/BlueCard.vue.d.ts +45 -0
- package/dist/components/BlueCheckbox.vue.d.ts +34 -0
- package/dist/components/BlueChip.vue.d.ts +47 -0
- package/dist/components/BlueConfirmDialog.vue.d.ts +193 -0
- package/dist/components/BlueDialog.vue.d.ts +60 -0
- package/dist/components/BlueFileDrop.vue.d.ts +32 -0
- package/dist/components/BlueIcon.vue.d.ts +26 -0
- package/dist/components/BlueInput.vue.d.ts +1 -0
- package/dist/components/BlueProgressBar.vue.d.ts +28 -0
- package/dist/components/BlueRadioGroup.vue.d.ts +40 -0
- package/dist/components/BlueSection.vue.d.ts +36 -0
- package/dist/components/BlueSnackbar.vue.d.ts +19 -0
- package/dist/components/BlueSpinner.vue.d.ts +25 -0
- package/dist/components/BlueStat.vue.d.ts +21 -0
- package/dist/components/BlueStepsDialog.vue.d.ts +62 -0
- package/dist/components/BlueTable.vue.d.ts +62 -0
- package/dist/components/BlueTabs.vue.d.ts +37 -0
- package/dist/components/BlueTextarea.vue.d.ts +40 -0
- package/dist/components/BlueTooltip.vue.d.ts +44 -0
- package/dist/components/BlueWindRose.vue.d.ts +37 -0
- package/dist/composables/useBlueLoading.d.ts +22 -0
- package/dist/composables/useBlueOs.d.ts +39 -0
- package/dist/composables/useBlueSnackbar.d.ts +30 -0
- package/dist/index.d.ts +30 -0
- package/dist/services/blueos.d.ts +37 -0
- package/dist/style.css +1 -1
- package/dist/types/banner.d.ts +16 -0
- package/dist/utils/files.d.ts +13 -0
- package/dist/utils/theme.d.ts +22 -0
- package/package.json +8 -2
- package/src/components/BlueApp.vue +84 -0
- package/src/components/BlueBanner.vue +196 -0
- package/src/components/BlueBannerGroup.vue +47 -0
- package/src/components/BlueButton.vue +134 -0
- package/src/components/BlueButtonGroup.vue +26 -24
- package/src/components/BlueCard.vue +62 -0
- package/src/components/BlueCheckbox.vue +100 -0
- package/src/components/BlueChip.vue +77 -0
- package/src/components/BlueConfirmDialog.vue +73 -0
- package/src/components/BlueDialog.vue +135 -0
- package/src/components/BlueFileDrop.vue +94 -0
- package/src/components/BlueIcon.vue +37 -0
- package/src/components/BlueInput.vue +21 -11
- package/src/components/BlueLoadingDialog.vue +22 -53
- package/src/components/BlueProgressBar.vue +46 -0
- package/src/components/BluePromptDialog.vue +51 -99
- package/src/components/BlueRadioGroup.vue +104 -0
- package/src/components/BlueSection.vue +33 -0
- package/src/components/BlueSelect.vue +12 -10
- package/src/components/BlueSlider.vue +1 -3
- package/src/components/BlueSnackbar.vue +79 -0
- package/src/components/BlueSpinner.vue +37 -0
- package/src/components/BlueStat.vue +26 -0
- package/src/components/BlueStepsDialog.vue +180 -0
- package/src/components/BlueSwitch.vue +16 -13
- package/src/components/BlueTable.vue +154 -0
- package/src/components/BlueTabs.vue +77 -0
- package/src/components/BlueTextarea.vue +101 -0
- package/src/components/BlueTooltip.vue +88 -0
- package/src/components/BlueWindRose.vue +267 -0
- package/src/composables/useBlueLoading.ts +38 -0
- package/src/composables/useBlueOs.ts +154 -0
- package/src/composables/useBlueSnackbar.ts +89 -0
- package/src/index.ts +40 -0
- package/src/services/blueos.ts +95 -0
- package/src/styles/bluevue.css +136 -0
- package/src/types/banner.ts +17 -0
- package/src/utils/files.ts +44 -0
- package/src/utils/theme.ts +37 -0
- package/templates/extension/.github/workflows/deploy.yml +23 -0
- package/templates/extension/Dockerfile +56 -0
- package/templates/extension/README.md +35 -0
- package/templates/extension/backend/main.py +45 -0
- package/templates/extension/backend/requirements.txt +2 -0
- package/templates/extension/frontend/.eslintrc.cjs +20 -0
- package/templates/extension/frontend/env.d.ts +7 -0
- package/templates/extension/frontend/index.html +12 -0
- package/templates/extension/frontend/package.json +30 -0
- package/templates/extension/frontend/src/App.vue +51 -0
- package/templates/extension/frontend/src/main.ts +8 -0
- package/templates/extension/frontend/src/styles/global.css +11 -0
- package/templates/extension/frontend/tsconfig.json +25 -0
- package/templates/extension/frontend/tsconfig.node.json +11 -0
- package/templates/extension/frontend/vite.config.ts +24 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The whole of an extension's page: BlueOS's backdrop, one card in the middle of it, and the two
|
|
3
|
+
* pieces of feedback every extension needs mounted once. Wrap your panels in it and the notices
|
|
4
|
+
* raised through useBlueSnackbar and the waits raised through useBlueLoading appear by themselves.
|
|
5
|
+
*/
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
title: string;
|
|
8
|
+
/** An image beside the title, such as the extension's own mark. */
|
|
9
|
+
logo?: string;
|
|
10
|
+
/** An mdi name beside the title, for an extension with no mark of its own. */
|
|
11
|
+
icon?: string;
|
|
12
|
+
/** How wide the card is allowed to get (default '615px'). */
|
|
13
|
+
width?: string;
|
|
14
|
+
/**
|
|
15
|
+
* What is painted behind the card (default BlueOS's own blue). An extension is served in an
|
|
16
|
+
* iframe whose canvas is opaque, so leaving the page transparent shows black rather than the
|
|
17
|
+
* page behind it.
|
|
18
|
+
*/
|
|
19
|
+
backdrop?: string;
|
|
20
|
+
/** Keep the kit's own primary instead of the vehicle's. */
|
|
21
|
+
ignoreHostTheme?: boolean;
|
|
22
|
+
};
|
|
23
|
+
declare function __VLS_template(): {
|
|
24
|
+
attrs: Partial<{}>;
|
|
25
|
+
slots: {
|
|
26
|
+
actions?(_: {}): any;
|
|
27
|
+
default?(_: {}): any;
|
|
28
|
+
footer?(_: {}): any;
|
|
29
|
+
};
|
|
30
|
+
refs: {};
|
|
31
|
+
rootEl: HTMLDivElement;
|
|
32
|
+
};
|
|
33
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
34
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}, {}>;
|
|
35
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
36
|
+
export default _default;
|
|
37
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
38
|
+
type __VLS_TypePropsToOption<T> = {
|
|
39
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
40
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
41
|
+
} : {
|
|
42
|
+
type: import('vue').PropType<T[K]>;
|
|
43
|
+
required: true;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
47
|
+
new (): {
|
|
48
|
+
$slots: S;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { BannerContent, BannerSeverity } from '../types/banner';
|
|
2
|
+
type __VLS_Props = BannerContent & {
|
|
3
|
+
/** Whether it starts open (default true). */
|
|
4
|
+
expanded?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
|
|
7
|
+
severity: undefined;
|
|
8
|
+
icon: undefined;
|
|
9
|
+
color: undefined;
|
|
10
|
+
background: undefined;
|
|
11
|
+
border: undefined;
|
|
12
|
+
expanded: undefined;
|
|
13
|
+
}>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
14
|
+
"update:expanded": (value: boolean) => void;
|
|
15
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<__VLS_Props>, {
|
|
16
|
+
severity: undefined;
|
|
17
|
+
icon: undefined;
|
|
18
|
+
color: undefined;
|
|
19
|
+
background: undefined;
|
|
20
|
+
border: undefined;
|
|
21
|
+
expanded: undefined;
|
|
22
|
+
}>>> & {
|
|
23
|
+
"onUpdate:expanded"?: ((value: boolean) => any) | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
color: string;
|
|
26
|
+
icon: string;
|
|
27
|
+
severity: BannerSeverity;
|
|
28
|
+
background: string;
|
|
29
|
+
border: string;
|
|
30
|
+
expanded: boolean;
|
|
31
|
+
}, {}>;
|
|
32
|
+
export default _default;
|
|
33
|
+
type __VLS_WithDefaults<P, D> = {
|
|
34
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
|
|
35
|
+
default: D[K];
|
|
36
|
+
}> : P[K];
|
|
37
|
+
};
|
|
38
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
39
|
+
type __VLS_TypePropsToOption<T> = {
|
|
40
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
41
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
42
|
+
} : {
|
|
43
|
+
type: import('vue').PropType<T[K]>;
|
|
44
|
+
required: true;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
type __VLS_PrettifyLocal<T> = {
|
|
48
|
+
[K in keyof T]: T[K];
|
|
49
|
+
} & {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BannerContent } from '../types/banner';
|
|
2
|
+
/**
|
|
3
|
+
* A row of banners that opens one at a time: the opened one takes the room the others leave, and
|
|
4
|
+
* the ones already read gather at the end of the row.
|
|
5
|
+
*/
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
/** The banners, in the order they sit in until one of them is opened. Messages identify them. */
|
|
8
|
+
banners: BannerContent[];
|
|
9
|
+
};
|
|
10
|
+
declare const _default: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}, {}>;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
13
|
+
type __VLS_TypePropsToOption<T> = {
|
|
14
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
15
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
16
|
+
} : {
|
|
17
|
+
type: import('vue').PropType<T[K]>;
|
|
18
|
+
required: true;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The standard action. A button with no colour of its own is a secondary action and reads as a
|
|
3
|
+
* barely-there fill; the filled one is what the panel is actually asking to be done, and a panel
|
|
4
|
+
* asks for one thing at a time.
|
|
5
|
+
*/
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
/**
|
|
8
|
+
* 'tonal' (default) for a secondary action, 'filled' for the one the panel is asking for,
|
|
9
|
+
* 'text' for a quiet one, 'icon' for a glyph on its own.
|
|
10
|
+
*/
|
|
11
|
+
variant?: 'tonal' | 'filled' | 'text' | 'icon';
|
|
12
|
+
/** The fill of a filled button, and the glyph colour of the others (default the primary token). */
|
|
13
|
+
color?: string;
|
|
14
|
+
/** Height and inset (default 'regular', which is the height of a button group beside it). */
|
|
15
|
+
density?: 'compact' | 'regular' | 'comfortable';
|
|
16
|
+
/** An mdi name before the label, or the whole of an icon button. */
|
|
17
|
+
icon?: string;
|
|
18
|
+
/** An mdi name after the label. */
|
|
19
|
+
appendIcon?: string;
|
|
20
|
+
/** Swaps the icon for a spinner and takes the button out of reach until it is done. */
|
|
21
|
+
loading?: boolean;
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/** Takes the whole width it is given, for a button ending a narrow panel. */
|
|
24
|
+
block?: boolean;
|
|
25
|
+
/** Hover text, and the name assistive technology reads on an icon button. */
|
|
26
|
+
tooltip?: string;
|
|
27
|
+
theme?: 'light' | 'dark';
|
|
28
|
+
type?: 'button' | 'submit' | 'reset';
|
|
29
|
+
};
|
|
30
|
+
declare function __VLS_template(): {
|
|
31
|
+
attrs: Partial<{}>;
|
|
32
|
+
slots: {
|
|
33
|
+
default?(_: {}): any;
|
|
34
|
+
};
|
|
35
|
+
refs: {};
|
|
36
|
+
rootEl: HTMLButtonElement;
|
|
37
|
+
};
|
|
38
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
39
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
40
|
+
click: (value: MouseEvent) => void;
|
|
41
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
42
|
+
onClick?: ((value: MouseEvent) => any) | undefined;
|
|
43
|
+
}, {}, {}>;
|
|
44
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
45
|
+
export default _default;
|
|
46
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
47
|
+
type __VLS_TypePropsToOption<T> = {
|
|
48
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
49
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
50
|
+
} : {
|
|
51
|
+
type: import('vue').PropType<T[K]>;
|
|
52
|
+
required: true;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
56
|
+
new (): {
|
|
57
|
+
$slots: S;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The sheet an extension's page is laid out on: a titled bar over a body, raised off the backdrop.
|
|
3
|
+
* BlueApp puts one in the middle of the page for you; reach for it directly when a page needs more
|
|
4
|
+
* than one.
|
|
5
|
+
*/
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
title?: string;
|
|
8
|
+
/** An image beside the title, such as the extension's own mark. */
|
|
9
|
+
logo?: string;
|
|
10
|
+
/** An mdi name beside the title, for a card with no mark of its own. */
|
|
11
|
+
icon?: string;
|
|
12
|
+
/** How wide the card is allowed to get (default '615px'). */
|
|
13
|
+
width?: string;
|
|
14
|
+
/** Replaces the body's own inset, for a body that lays itself out. */
|
|
15
|
+
bodyClass?: string;
|
|
16
|
+
};
|
|
17
|
+
declare function __VLS_template(): {
|
|
18
|
+
attrs: Partial<{}>;
|
|
19
|
+
slots: {
|
|
20
|
+
header?(_: {}): any;
|
|
21
|
+
actions?(_: {}): any;
|
|
22
|
+
default?(_: {}): any;
|
|
23
|
+
footer?(_: {}): any;
|
|
24
|
+
};
|
|
25
|
+
refs: {};
|
|
26
|
+
rootEl: HTMLElement;
|
|
27
|
+
};
|
|
28
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
29
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}, {}>;
|
|
30
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
31
|
+
export default _default;
|
|
32
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
33
|
+
type __VLS_TypePropsToOption<T> = {
|
|
34
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
35
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
36
|
+
} : {
|
|
37
|
+
type: import('vue').PropType<T[K]>;
|
|
38
|
+
required: true;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
42
|
+
new (): {
|
|
43
|
+
$slots: S;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A plain yes or no, laid out as the other controls are: what it is on the left, the box on the
|
|
3
|
+
* right. A native checkbox drives it, so it is reached and toggled from the keyboard as one.
|
|
4
|
+
*/
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
modelValue: boolean | null;
|
|
7
|
+
/** Label on the left of the row. */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Name and id, tying the label to the box. */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Neither on nor off, for a box standing for several things that disagree. */
|
|
12
|
+
indeterminate?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** The fill when it is on (default the primary token). */
|
|
15
|
+
color?: string;
|
|
16
|
+
/** A hint behind an info icon beside the box. */
|
|
17
|
+
infoTooltip?: string;
|
|
18
|
+
theme?: 'light' | 'dark';
|
|
19
|
+
};
|
|
20
|
+
declare const _default: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
21
|
+
"update:modelValue": (value: boolean) => void;
|
|
22
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
23
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
24
|
+
}, {}, {}>;
|
|
25
|
+
export default _default;
|
|
26
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
27
|
+
type __VLS_TypePropsToOption<T> = {
|
|
28
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
29
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
30
|
+
} : {
|
|
31
|
+
type: import('vue').PropType<T[K]>;
|
|
32
|
+
required: true;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A small standing label: a state, a tag, a count. It says what something is rather than doing
|
|
3
|
+
* anything, so anything that acts on a press belongs in a BlueButton instead.
|
|
4
|
+
*/
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
/** The text. A default slot takes its place when given. */
|
|
7
|
+
label?: string;
|
|
8
|
+
/** 'tonal' (default) is a fill of the colour at low alpha, 'filled' the colour itself. */
|
|
9
|
+
variant?: 'tonal' | 'filled' | 'outlined';
|
|
10
|
+
/** Any CSS colour, or one of the standard meanings. */
|
|
11
|
+
color?: 'success' | 'error' | 'warning' | 'info' | 'neutral' | string;
|
|
12
|
+
/** An mdi name before the text. */
|
|
13
|
+
icon?: string;
|
|
14
|
+
/** Offers a cross that emits close. */
|
|
15
|
+
closable?: boolean;
|
|
16
|
+
size?: 'small' | 'regular';
|
|
17
|
+
};
|
|
18
|
+
declare function __VLS_template(): {
|
|
19
|
+
attrs: Partial<{}>;
|
|
20
|
+
slots: {
|
|
21
|
+
default?(_: {}): any;
|
|
22
|
+
};
|
|
23
|
+
refs: {};
|
|
24
|
+
rootEl: HTMLSpanElement;
|
|
25
|
+
};
|
|
26
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
27
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
28
|
+
close: () => void;
|
|
29
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
30
|
+
onClose?: (() => any) | undefined;
|
|
31
|
+
}, {}, {}>;
|
|
32
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
33
|
+
export default _default;
|
|
34
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
35
|
+
type __VLS_TypePropsToOption<T> = {
|
|
36
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
37
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
38
|
+
} : {
|
|
39
|
+
type: import('vue').PropType<T[K]>;
|
|
40
|
+
required: true;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
44
|
+
new (): {
|
|
45
|
+
$slots: S;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asks before something that cannot be taken back. The question is the title, what it will cost
|
|
3
|
+
* is the message, and the committing button says what it does rather than saying yes.
|
|
4
|
+
*/
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
modelValue: boolean;
|
|
7
|
+
title: string;
|
|
8
|
+
/** What confirming will do, and to what. */
|
|
9
|
+
message?: string;
|
|
10
|
+
/** Names the action rather than agreeing with the question: 'Delete', 'Restart', 'Overwrite'. */
|
|
11
|
+
confirmLabel?: string;
|
|
12
|
+
cancelLabel?: string;
|
|
13
|
+
/** Colours the committing button as a warning, for anything destructive. */
|
|
14
|
+
danger?: boolean;
|
|
15
|
+
icon?: string;
|
|
16
|
+
};
|
|
17
|
+
declare function __VLS_template(): {
|
|
18
|
+
attrs: Partial<{}>;
|
|
19
|
+
slots: {
|
|
20
|
+
default?(_: {}): any;
|
|
21
|
+
};
|
|
22
|
+
refs: {
|
|
23
|
+
dialogRef: ({
|
|
24
|
+
$: import('vue').ComponentInternalInstance;
|
|
25
|
+
$data: {};
|
|
26
|
+
$props: Partial<{}> & Omit<{
|
|
27
|
+
readonly modelValue: boolean;
|
|
28
|
+
readonly title?: string | undefined;
|
|
29
|
+
readonly width?: string | undefined;
|
|
30
|
+
readonly icon?: string | undefined;
|
|
31
|
+
readonly bodyClass?: string | undefined;
|
|
32
|
+
readonly iconColor?: string | undefined;
|
|
33
|
+
readonly subtitle?: string | undefined;
|
|
34
|
+
readonly persistent?: boolean | undefined;
|
|
35
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
36
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & Readonly<import('vue').ExtractPropTypes<{
|
|
37
|
+
modelValue: {
|
|
38
|
+
type: import('vue').PropType<boolean>;
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
title: {
|
|
42
|
+
type: import('vue').PropType<string>;
|
|
43
|
+
};
|
|
44
|
+
icon: {
|
|
45
|
+
type: import('vue').PropType<string>;
|
|
46
|
+
};
|
|
47
|
+
iconColor: {
|
|
48
|
+
type: import('vue').PropType<string>;
|
|
49
|
+
};
|
|
50
|
+
subtitle: {
|
|
51
|
+
type: import('vue').PropType<string>;
|
|
52
|
+
};
|
|
53
|
+
persistent: {
|
|
54
|
+
type: import('vue').PropType<boolean>;
|
|
55
|
+
};
|
|
56
|
+
width: {
|
|
57
|
+
type: import('vue').PropType<string>;
|
|
58
|
+
};
|
|
59
|
+
bodyClass: {
|
|
60
|
+
type: import('vue').PropType<string>;
|
|
61
|
+
};
|
|
62
|
+
}>> & {
|
|
63
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
64
|
+
}, never>;
|
|
65
|
+
$attrs: {
|
|
66
|
+
[x: string]: unknown;
|
|
67
|
+
};
|
|
68
|
+
$refs: {
|
|
69
|
+
[x: string]: unknown;
|
|
70
|
+
};
|
|
71
|
+
$slots: Readonly<{
|
|
72
|
+
[name: string]: import('vue').Slot<any> | undefined;
|
|
73
|
+
}>;
|
|
74
|
+
$root: import('vue').ComponentPublicInstance | null;
|
|
75
|
+
$parent: import('vue').ComponentPublicInstance | null;
|
|
76
|
+
$emit: (event: "update:modelValue", value: boolean) => void;
|
|
77
|
+
$el: any;
|
|
78
|
+
$options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
|
|
79
|
+
modelValue: {
|
|
80
|
+
type: import('vue').PropType<boolean>;
|
|
81
|
+
required: true;
|
|
82
|
+
};
|
|
83
|
+
title: {
|
|
84
|
+
type: import('vue').PropType<string>;
|
|
85
|
+
};
|
|
86
|
+
icon: {
|
|
87
|
+
type: import('vue').PropType<string>;
|
|
88
|
+
};
|
|
89
|
+
iconColor: {
|
|
90
|
+
type: import('vue').PropType<string>;
|
|
91
|
+
};
|
|
92
|
+
subtitle: {
|
|
93
|
+
type: import('vue').PropType<string>;
|
|
94
|
+
};
|
|
95
|
+
persistent: {
|
|
96
|
+
type: import('vue').PropType<boolean>;
|
|
97
|
+
};
|
|
98
|
+
width: {
|
|
99
|
+
type: import('vue').PropType<string>;
|
|
100
|
+
};
|
|
101
|
+
bodyClass: {
|
|
102
|
+
type: import('vue').PropType<string>;
|
|
103
|
+
};
|
|
104
|
+
}>> & {
|
|
105
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
106
|
+
}, {
|
|
107
|
+
close: () => void;
|
|
108
|
+
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
109
|
+
"update:modelValue": (value: boolean) => void;
|
|
110
|
+
}, string, {}, {}, string, {}> & {
|
|
111
|
+
beforeCreate?: (() => void) | (() => void)[];
|
|
112
|
+
created?: (() => void) | (() => void)[];
|
|
113
|
+
beforeMount?: (() => void) | (() => void)[];
|
|
114
|
+
mounted?: (() => void) | (() => void)[];
|
|
115
|
+
beforeUpdate?: (() => void) | (() => void)[];
|
|
116
|
+
updated?: (() => void) | (() => void)[];
|
|
117
|
+
activated?: (() => void) | (() => void)[];
|
|
118
|
+
deactivated?: (() => void) | (() => void)[];
|
|
119
|
+
beforeDestroy?: (() => void) | (() => void)[];
|
|
120
|
+
beforeUnmount?: (() => void) | (() => void)[];
|
|
121
|
+
destroyed?: (() => void) | (() => void)[];
|
|
122
|
+
unmounted?: (() => void) | (() => void)[];
|
|
123
|
+
renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
|
|
124
|
+
renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
|
|
125
|
+
errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
|
|
126
|
+
};
|
|
127
|
+
$forceUpdate: () => void;
|
|
128
|
+
$nextTick: typeof import('vue').nextTick;
|
|
129
|
+
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, (cleanupFn: () => void) => void]) => any : (...args: [any, any, (cleanupFn: () => void) => void]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
130
|
+
} & Omit<Readonly<import('vue').ExtractPropTypes<{
|
|
131
|
+
modelValue: {
|
|
132
|
+
type: import('vue').PropType<boolean>;
|
|
133
|
+
required: true;
|
|
134
|
+
};
|
|
135
|
+
title: {
|
|
136
|
+
type: import('vue').PropType<string>;
|
|
137
|
+
};
|
|
138
|
+
icon: {
|
|
139
|
+
type: import('vue').PropType<string>;
|
|
140
|
+
};
|
|
141
|
+
iconColor: {
|
|
142
|
+
type: import('vue').PropType<string>;
|
|
143
|
+
};
|
|
144
|
+
subtitle: {
|
|
145
|
+
type: import('vue').PropType<string>;
|
|
146
|
+
};
|
|
147
|
+
persistent: {
|
|
148
|
+
type: import('vue').PropType<boolean>;
|
|
149
|
+
};
|
|
150
|
+
width: {
|
|
151
|
+
type: import('vue').PropType<string>;
|
|
152
|
+
};
|
|
153
|
+
bodyClass: {
|
|
154
|
+
type: import('vue').PropType<string>;
|
|
155
|
+
};
|
|
156
|
+
}>> & {
|
|
157
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
158
|
+
}, "close"> & import('vue').ShallowUnwrapRef<{
|
|
159
|
+
close: () => void;
|
|
160
|
+
}> & {} & import('vue').ComponentCustomProperties & {} & {
|
|
161
|
+
$slots: {
|
|
162
|
+
header?(_: {}): any;
|
|
163
|
+
default?(_: {}): any;
|
|
164
|
+
footer?(_: {}): any;
|
|
165
|
+
};
|
|
166
|
+
}) | null;
|
|
167
|
+
};
|
|
168
|
+
rootEl: any;
|
|
169
|
+
};
|
|
170
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
171
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
172
|
+
"update:modelValue": (value: boolean) => void;
|
|
173
|
+
confirm: () => void;
|
|
174
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
175
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
176
|
+
onConfirm?: (() => any) | undefined;
|
|
177
|
+
}, {}, {}>;
|
|
178
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
179
|
+
export default _default;
|
|
180
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
181
|
+
type __VLS_TypePropsToOption<T> = {
|
|
182
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
183
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
184
|
+
} : {
|
|
185
|
+
type: import('vue').PropType<T[K]>;
|
|
186
|
+
required: true;
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
190
|
+
new (): {
|
|
191
|
+
$slots: S;
|
|
192
|
+
};
|
|
193
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The surface every dialog in the kit is built on: a frosted panel in the browser's top layer,
|
|
3
|
+
* with an optional header, a body and an optional footer. Being a native modal, it dims the page
|
|
4
|
+
* itself, traps focus, and closes on Escape and on the backdrop unless it is told not to.
|
|
5
|
+
*/
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
modelValue: boolean;
|
|
8
|
+
/** The heading. Without one, and without a header slot, the dialog is only its body. */
|
|
9
|
+
title?: string;
|
|
10
|
+
/** An mdi name beside the title. */
|
|
11
|
+
icon?: string;
|
|
12
|
+
iconColor?: string;
|
|
13
|
+
/** A line under the title, for what the dialog is about to act on. */
|
|
14
|
+
subtitle?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Takes away Escape, the backdrop and the close button. For an operation that must not end up
|
|
17
|
+
* running under a live page.
|
|
18
|
+
*/
|
|
19
|
+
persistent?: boolean;
|
|
20
|
+
/** Panel width (default '624px'). It never exceeds the viewport. */
|
|
21
|
+
width?: string;
|
|
22
|
+
/** Replaces the body's own inset, for a dialog laying its contents out differently. */
|
|
23
|
+
bodyClass?: string;
|
|
24
|
+
};
|
|
25
|
+
declare function __VLS_template(): {
|
|
26
|
+
attrs: Partial<{}>;
|
|
27
|
+
slots: {
|
|
28
|
+
header?(_: {}): any;
|
|
29
|
+
default?(_: {}): any;
|
|
30
|
+
footer?(_: {}): any;
|
|
31
|
+
};
|
|
32
|
+
refs: {
|
|
33
|
+
dialogRef: HTMLDialogElement;
|
|
34
|
+
};
|
|
35
|
+
rootEl: HTMLDialogElement;
|
|
36
|
+
};
|
|
37
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
38
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {
|
|
39
|
+
close: () => void;
|
|
40
|
+
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
41
|
+
"update:modelValue": (value: boolean) => void;
|
|
42
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
43
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
44
|
+
}, {}, {}>;
|
|
45
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
46
|
+
export default _default;
|
|
47
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
48
|
+
type __VLS_TypePropsToOption<T> = {
|
|
49
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
50
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
51
|
+
} : {
|
|
52
|
+
type: import('vue').PropType<T[K]>;
|
|
53
|
+
required: true;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
57
|
+
new (): {
|
|
58
|
+
$slots: S;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A place to drop a file on, which is also a place to press for the file picker. It hands the
|
|
3
|
+
* files over and keeps none of them, so what is done with one, and whether it is any good, stays
|
|
4
|
+
* with the consumer.
|
|
5
|
+
*/
|
|
6
|
+
type __VLS_Props = {
|
|
7
|
+
/** What the picker offers, as the accept attribute takes it (e.g. '.json,.param'). */
|
|
8
|
+
accept?: string;
|
|
9
|
+
/** Takes more than one file at a time. */
|
|
10
|
+
multiple?: boolean;
|
|
11
|
+
/** The line under the invitation, usually naming the formats that are understood. */
|
|
12
|
+
hint?: string;
|
|
13
|
+
/** The invitation itself. */
|
|
14
|
+
label?: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
theme?: 'light' | 'dark';
|
|
17
|
+
};
|
|
18
|
+
declare const _default: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
19
|
+
files: (files: File[]) => void;
|
|
20
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>> & {
|
|
21
|
+
onFiles?: ((files: File[]) => any) | undefined;
|
|
22
|
+
}, {}, {}>;
|
|
23
|
+
export default _default;
|
|
24
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
25
|
+
type __VLS_TypePropsToOption<T> = {
|
|
26
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
27
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
28
|
+
} : {
|
|
29
|
+
type: import('vue').PropType<T[K]>;
|
|
30
|
+
required: true;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Material Design Icon in a square box, so a row of them lines up whichever glyphs it carries
|
|
3
|
+
* and however wide each one happens to advance.
|
|
4
|
+
*/
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
/** Icon name, with or without the `mdi-` prefix. */
|
|
7
|
+
name: string;
|
|
8
|
+
/** Side of the box, in pixels when given as a number (default 20). */
|
|
9
|
+
size?: number | string;
|
|
10
|
+
color?: string;
|
|
11
|
+
/** Turns, for something under way. */
|
|
12
|
+
spin?: boolean;
|
|
13
|
+
/** Read out in place of the icon. Without one the icon is hidden from assistive technology. */
|
|
14
|
+
label?: string;
|
|
15
|
+
};
|
|
16
|
+
declare const _default: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}, {}>;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
19
|
+
type __VLS_TypePropsToOption<T> = {
|
|
20
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
21
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
22
|
+
} : {
|
|
23
|
+
type: import('vue').PropType<T[K]>;
|
|
24
|
+
required: true;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How far along something is. Give it a value for work whose size is known, and set
|
|
3
|
+
* `indeterminate` for work that is under way but cannot say how much of it is left.
|
|
4
|
+
*/
|
|
5
|
+
type __VLS_Props = {
|
|
6
|
+
/** Percentage complete, clamped to 0-100. */
|
|
7
|
+
modelValue?: number;
|
|
8
|
+
/** Sweeps instead of filling, for progress that cannot be measured. */
|
|
9
|
+
indeterminate?: boolean;
|
|
10
|
+
/** Bar thickness in pixels (default 4). */
|
|
11
|
+
height?: number;
|
|
12
|
+
/** The fill (default the primary token). */
|
|
13
|
+
color?: string;
|
|
14
|
+
theme?: 'light' | 'dark';
|
|
15
|
+
/** What is progressing, read out by assistive technology. */
|
|
16
|
+
label?: string;
|
|
17
|
+
};
|
|
18
|
+
declare const _default: import('vue').DefineComponent<__VLS_TypePropsToOption<__VLS_Props>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToOption<__VLS_Props>>>, {}, {}>;
|
|
19
|
+
export default _default;
|
|
20
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
21
|
+
type __VLS_TypePropsToOption<T> = {
|
|
22
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
23
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
24
|
+
} : {
|
|
25
|
+
type: import('vue').PropType<T[K]>;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
};
|