@frontpanel/vue 0.3.0 → 0.5.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 +3 -1
- package/dist/FpButtonGroup.vue.d.ts +18 -0
- package/dist/FpCheckbox.vue.d.ts +29 -0
- package/dist/FpCheckboxGroup.vue.d.ts +31 -0
- package/dist/FpKnob.vue.d.ts +3 -3
- package/dist/FpMenu.vue.d.ts +51 -0
- package/dist/FpMenuItem.vue.d.ts +26 -0
- package/dist/FpMenuSeparator.vue.d.ts +3 -0
- package/dist/FpMeter.vue.d.ts +2 -2
- package/dist/FpRadioGroup.vue.d.ts +31 -0
- package/dist/FpSlider.vue.d.ts +4 -4
- package/dist/icons.d.ts +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.js +481 -148
- package/dist/keys.d.ts +16 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -67,12 +67,14 @@ const playing = ref(false)
|
|
|
67
67
|
| `FpDevice` | The device: a molded body in a liquid-chrome rim on a backdrop. `fit="width"` or `"contain"` draws it at a design `width` and scales it to the room it has; the default `fit="none"` leaves layout to your page |
|
|
68
68
|
| `FpWindow` | A matte module with a chrome title bar: `title`, `level`, `closable` (emits `close`), an `actions` slot, and `sheet` for a phone bottom sheet |
|
|
69
69
|
| `FpButton` | A brushed-chrome push button; `pressed` makes it a toggle |
|
|
70
|
+
| `FpButtonGroup` | Chrome buttons joined into one bezel, as a named group |
|
|
71
|
+
| `FpMenu`, `FpMenuItem`, `FpMenuSeparator` | A faceplate menu that drops from the button in its `trigger` slot; rows emit `select`, or are links with `as="a"` |
|
|
70
72
|
| `FpGelButton` | The glossy gel pill, for the panel's main action |
|
|
71
73
|
| `FpCap` | A molded-plastic cap in `white`, `blue`, `amber`, `graphite` or `berry`; `pressed` holds it down with a ring |
|
|
72
74
|
| `FpLcd`, `FpLcdLine` | LCD glass, and a line of text on it with optional unlit segments (`ghost`, `cells`) and a left-to-right `redraw` |
|
|
73
75
|
| `FpLed` | A `green`, `amber` or `red` LED; `lit`, and `blink` to confirm an action |
|
|
74
76
|
| `FpHousing`, `FpWell`, `FpSilk`, `FpScrew` | A dark housing for LEDs, a recessed well, a silkscreened label, a screw head |
|
|
75
|
-
| `FpIcon` | A
|
|
77
|
+
| `FpIcon` | A 21-glyph 16 px pixel icon set (`fpIconNames`) |
|
|
76
78
|
|
|
77
79
|
Element components take Reka's `as` and `asChild`.
|
|
78
80
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PrimitiveProps } from 'reka-ui';
|
|
2
|
+
export interface FpButtonGroupProps extends PrimitiveProps {
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_7: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_7) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<FpButtonGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FpButtonGroupProps> & Readonly<{}>, {
|
|
9
|
+
as: import("reka-ui").AsTag | import("vue").Component;
|
|
10
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { FpLedColor } from './FpLed.vue';
|
|
2
|
+
import type { FpKeyLed } from './keys';
|
|
3
|
+
export interface FpCheckboxProps {
|
|
4
|
+
/** A silkscreen label over the key, which also names it. Without one, give it an `aria-label`. */
|
|
5
|
+
label?: string;
|
|
6
|
+
/** Standing up, or on its side with the label before it. */
|
|
7
|
+
orientation?: 'vertical' | 'horizontal';
|
|
8
|
+
/** Where the light is: the strip at the foot of the key, an LED over the label, or none. */
|
|
9
|
+
led?: FpKeyLed;
|
|
10
|
+
/** The colour its LED lights in. */
|
|
11
|
+
color?: FpLedColor;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
type __VLS_Props = FpCheckboxProps;
|
|
15
|
+
type __VLS_ModelProps = {
|
|
16
|
+
modelValue?: boolean;
|
|
17
|
+
};
|
|
18
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
19
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
20
|
+
"update:modelValue": (value: boolean) => any;
|
|
21
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
22
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
23
|
+
}>, {
|
|
24
|
+
color: FpLedColor;
|
|
25
|
+
orientation: "vertical" | "horizontal";
|
|
26
|
+
led: FpKeyLed;
|
|
27
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
declare const _default: typeof __VLS_export;
|
|
29
|
+
export default _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { FpLedColor } from './FpLed.vue';
|
|
2
|
+
import type { FpKeyLed, FpKeyOption } from './keys';
|
|
3
|
+
export interface FpCheckboxGroupProps {
|
|
4
|
+
/** The keys, left to right or top to bottom. */
|
|
5
|
+
options: FpKeyOption[];
|
|
6
|
+
/** A silkscreen label under the keys, which also names the group. Without one, give it an `aria-label`. */
|
|
7
|
+
label?: string;
|
|
8
|
+
/** Keys standing side by side, or on their side and stacked. */
|
|
9
|
+
orientation?: 'vertical' | 'horizontal';
|
|
10
|
+
/** Where the light is: the strip at the foot of each key, an LED over each label, or none. */
|
|
11
|
+
led?: FpKeyLed;
|
|
12
|
+
/** The colour the LEDs light in, unless an option sets its own. */
|
|
13
|
+
color?: FpLedColor;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
type __VLS_Props = FpCheckboxGroupProps;
|
|
17
|
+
type __VLS_ModelProps = {
|
|
18
|
+
modelValue?: string[];
|
|
19
|
+
};
|
|
20
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
21
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
+
"update:modelValue": (value: string[]) => any;
|
|
23
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
24
|
+
"onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
|
|
25
|
+
}>, {
|
|
26
|
+
color: FpLedColor;
|
|
27
|
+
orientation: "vertical" | "horizontal";
|
|
28
|
+
led: FpKeyLed;
|
|
29
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
30
|
+
declare const _default: typeof __VLS_export;
|
|
31
|
+
export default _default;
|
package/dist/FpKnob.vue.d.ts
CHANGED
|
@@ -17,14 +17,14 @@ type __VLS_ModelProps = {
|
|
|
17
17
|
};
|
|
18
18
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
19
19
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
20
|
-
valueCommit: (value: number) => any;
|
|
21
20
|
"update:modelValue": (value: number) => any;
|
|
21
|
+
valueCommit: (value: number) => any;
|
|
22
22
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
23
|
-
onValueCommit?: ((value: number) => any) | undefined;
|
|
24
23
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
24
|
+
onValueCommit?: ((value: number) => any) | undefined;
|
|
25
25
|
}>, {
|
|
26
|
-
min: number;
|
|
27
26
|
max: number;
|
|
27
|
+
min: number;
|
|
28
28
|
step: number;
|
|
29
29
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
30
30
|
declare const _default: typeof __VLS_export;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export interface FpMenuProps {
|
|
2
|
+
/** The side of the trigger the plate drops on. It flips to the other side when there is no room. */
|
|
3
|
+
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
4
|
+
/** How the plate lines up with the trigger along that side. */
|
|
5
|
+
align?: 'start' | 'center' | 'end';
|
|
6
|
+
/**
|
|
7
|
+
* Shuts out the rest of the page while the menu is open: pointer events and scrolling outside it
|
|
8
|
+
* are blocked, and assistive tech reads only the menu.
|
|
9
|
+
*/
|
|
10
|
+
modal?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Where the plate is mounted, a selector or an element. It takes the skin of the nearest
|
|
13
|
+
* `data-fp-skin` around the trigger with it; a custom skin set on another selector needs `to`
|
|
14
|
+
* inside that element.
|
|
15
|
+
*/
|
|
16
|
+
to?: string | HTMLElement;
|
|
17
|
+
}
|
|
18
|
+
type __VLS_Props = FpMenuProps;
|
|
19
|
+
type __VLS_Slots = {
|
|
20
|
+
/**
|
|
21
|
+
* The button that opens the menu, such as an `FpButton`. It gets `aria-haspopup` and
|
|
22
|
+
* `aria-expanded`, which hold a chrome button down while the menu is open.
|
|
23
|
+
*/
|
|
24
|
+
trigger?: (props: {
|
|
25
|
+
open: boolean;
|
|
26
|
+
}) => unknown;
|
|
27
|
+
/** The menu's rows: `FpMenuItem` and `FpMenuSeparator`. */
|
|
28
|
+
default?: () => unknown;
|
|
29
|
+
};
|
|
30
|
+
type __VLS_ModelProps = {
|
|
31
|
+
'open'?: boolean;
|
|
32
|
+
};
|
|
33
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
34
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
35
|
+
"update:open": (value: boolean) => any;
|
|
36
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
37
|
+
"onUpdate:open"?: ((value: boolean) => any) | undefined;
|
|
38
|
+
}>, {
|
|
39
|
+
side: "left" | "right" | "bottom" | "top";
|
|
40
|
+
align: "center" | "start" | "end";
|
|
41
|
+
modal: boolean;
|
|
42
|
+
to: string | HTMLElement;
|
|
43
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
45
|
+
declare const _default: typeof __VLS_export;
|
|
46
|
+
export default _default;
|
|
47
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
48
|
+
new (): {
|
|
49
|
+
$slots: S;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { PrimitiveProps } from 'reka-ui';
|
|
2
|
+
export interface FpMenuItemProps extends PrimitiveProps {
|
|
3
|
+
/** Greys the row out; it can't be chosen. */
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
/** The text type-ahead matches, when the row's own text is not what a user would type. */
|
|
6
|
+
textValue?: string;
|
|
7
|
+
}
|
|
8
|
+
declare var __VLS_9: {};
|
|
9
|
+
type __VLS_Slots = {} & {
|
|
10
|
+
default?: (props: typeof __VLS_9) => any;
|
|
11
|
+
};
|
|
12
|
+
declare const __VLS_base: import("vue").DefineComponent<FpMenuItemProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
select: (event: Event) => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<FpMenuItemProps> & Readonly<{
|
|
15
|
+
onSelect?: ((event: Event) => any) | undefined;
|
|
16
|
+
}>, {
|
|
17
|
+
as: import("reka-ui").AsTag | import("vue").Component;
|
|
18
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
|
+
declare const _default: typeof __VLS_export;
|
|
21
|
+
export default _default;
|
|
22
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
23
|
+
new (): {
|
|
24
|
+
$slots: S;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const __VLS_export: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
package/dist/FpMeter.vue.d.ts
CHANGED
|
@@ -22,11 +22,11 @@ export interface FpMeterProps {
|
|
|
22
22
|
valueText?: (value: number) => string;
|
|
23
23
|
}
|
|
24
24
|
declare const __VLS_export: import("vue").DefineComponent<FpMeterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<FpMeterProps> & Readonly<{}>, {
|
|
25
|
+
orientation: "vertical" | "horizontal";
|
|
25
26
|
value: number;
|
|
26
|
-
min: number;
|
|
27
27
|
max: number;
|
|
28
|
+
min: number;
|
|
28
29
|
segments: number;
|
|
29
|
-
orientation: "vertical" | "horizontal";
|
|
30
30
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
31
31
|
declare const _default: typeof __VLS_export;
|
|
32
32
|
export default _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { FpLedColor } from './FpLed.vue';
|
|
2
|
+
import type { FpKeyLed, FpKeyOption } from './keys';
|
|
3
|
+
export interface FpRadioGroupProps {
|
|
4
|
+
/** The keys, left to right or top to bottom. */
|
|
5
|
+
options: FpKeyOption[];
|
|
6
|
+
/** A silkscreen label under the keys, which also names the group. Without one, give it an `aria-label`. */
|
|
7
|
+
label?: string;
|
|
8
|
+
/** Keys standing side by side, or on their side and stacked. */
|
|
9
|
+
orientation?: 'vertical' | 'horizontal';
|
|
10
|
+
/** Where the light is: the strip at the foot of each key, an LED over each label, or none. */
|
|
11
|
+
led?: FpKeyLed;
|
|
12
|
+
/** The colour the LEDs light in, unless an option sets its own. */
|
|
13
|
+
color?: FpLedColor;
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
}
|
|
16
|
+
type __VLS_Props = FpRadioGroupProps;
|
|
17
|
+
type __VLS_ModelProps = {
|
|
18
|
+
modelValue?: string;
|
|
19
|
+
};
|
|
20
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
21
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
+
"update:modelValue": (value: string | undefined) => any;
|
|
23
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
24
|
+
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
25
|
+
}>, {
|
|
26
|
+
color: FpLedColor;
|
|
27
|
+
orientation: "vertical" | "horizontal";
|
|
28
|
+
led: FpKeyLed;
|
|
29
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
30
|
+
declare const _default: typeof __VLS_export;
|
|
31
|
+
export default _default;
|
package/dist/FpSlider.vue.d.ts
CHANGED
|
@@ -19,16 +19,16 @@ type __VLS_ModelProps = {
|
|
|
19
19
|
};
|
|
20
20
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
21
21
|
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
-
valueCommit: (value: number) => any;
|
|
23
22
|
"update:modelValue": (value: number) => any;
|
|
23
|
+
valueCommit: (value: number) => any;
|
|
24
24
|
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
25
|
-
onValueCommit?: ((value: number) => any) | undefined;
|
|
26
25
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
26
|
+
onValueCommit?: ((value: number) => any) | undefined;
|
|
27
27
|
}>, {
|
|
28
|
-
|
|
28
|
+
orientation: "vertical" | "horizontal";
|
|
29
29
|
max: number;
|
|
30
|
+
min: number;
|
|
30
31
|
step: number;
|
|
31
|
-
orientation: "vertical" | "horizontal";
|
|
32
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
33
|
declare const _default: typeof __VLS_export;
|
|
34
34
|
export default _default;
|
package/dist/icons.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type FpIconName = 'add' | 'saved' | 'settings' | 'help' | 'home' | 'undo' | 'redo' | 'save' | 'copy' | 'trash' | 'close' | 'grip' | 'left' | 'right' | 'quick' | 'grid' | 'go' | 'play' | 'menu';
|
|
1
|
+
export type FpIconName = 'add' | 'saved' | 'settings' | 'help' | 'home' | 'undo' | 'redo' | 'save' | 'copy' | 'trash' | 'close' | 'grip' | 'left' | 'right' | 'down' | 'quick' | 'grid' | 'go' | 'play' | 'menu' | 'power';
|
|
2
2
|
/** One path per glyph: every horizontal run of lit pixels becomes a 1 px tall rectangle. */
|
|
3
3
|
export declare function toPath(rows: readonly string[]): string;
|
|
4
4
|
/** Every icon name, in the order the set lists them. */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
export type { FpDeviceFit } from './fit';
|
|
2
2
|
export { default as FpButton } from './FpButton.vue';
|
|
3
3
|
export type { FpButtonProps } from './FpButton.vue';
|
|
4
|
+
export { default as FpButtonGroup } from './FpButtonGroup.vue';
|
|
5
|
+
export type { FpButtonGroupProps } from './FpButtonGroup.vue';
|
|
4
6
|
export { default as FpCap } from './FpCap.vue';
|
|
5
7
|
export type { FpCapColor, FpCapProps } from './FpCap.vue';
|
|
8
|
+
export { default as FpCheckbox } from './FpCheckbox.vue';
|
|
9
|
+
export type { FpCheckboxProps } from './FpCheckbox.vue';
|
|
10
|
+
export { default as FpCheckboxGroup } from './FpCheckboxGroup.vue';
|
|
11
|
+
export type { FpCheckboxGroupProps } from './FpCheckboxGroup.vue';
|
|
6
12
|
export { default as FpDevice } from './FpDevice.vue';
|
|
7
13
|
export type { FpDeviceProps } from './FpDevice.vue';
|
|
8
14
|
export { default as FpGelButton } from './FpGelButton.vue';
|
|
@@ -19,8 +25,15 @@ export { default as FpLcdLine } from './FpLcdLine.vue';
|
|
|
19
25
|
export type { FpLcdLineProps } from './FpLcdLine.vue';
|
|
20
26
|
export { default as FpLed } from './FpLed.vue';
|
|
21
27
|
export type { FpLedColor, FpLedProps } from './FpLed.vue';
|
|
28
|
+
export { default as FpMenu } from './FpMenu.vue';
|
|
29
|
+
export type { FpMenuProps } from './FpMenu.vue';
|
|
30
|
+
export { default as FpMenuItem } from './FpMenuItem.vue';
|
|
31
|
+
export type { FpMenuItemProps } from './FpMenuItem.vue';
|
|
32
|
+
export { default as FpMenuSeparator } from './FpMenuSeparator.vue';
|
|
22
33
|
export { default as FpMeter } from './FpMeter.vue';
|
|
23
34
|
export type { FpMeterProps } from './FpMeter.vue';
|
|
35
|
+
export { default as FpRadioGroup } from './FpRadioGroup.vue';
|
|
36
|
+
export type { FpRadioGroupProps } from './FpRadioGroup.vue';
|
|
24
37
|
export { default as FpReadout } from './FpReadout.vue';
|
|
25
38
|
export type { FpReadoutProps } from './FpReadout.vue';
|
|
26
39
|
export { default as FpScrew } from './FpScrew.vue';
|
|
@@ -36,5 +49,6 @@ export { default as FpWindow } from './FpWindow.vue';
|
|
|
36
49
|
export type { FpWindowProps } from './FpWindow.vue';
|
|
37
50
|
export { fpIconNames } from './icons';
|
|
38
51
|
export type { FpIconName } from './icons';
|
|
52
|
+
export type { FpKeyLed, FpKeyOption } from './keys';
|
|
39
53
|
export type { FpLens } from './lens';
|
|
40
54
|
export { fpReadoutGlyph } from './readout';
|