@glimstone/vue 0.0.0-stage → 4.1.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.
Files changed (63) hide show
  1. package/README.md +51 -2
  2. package/dist/Badge.vue.d.ts +49 -0
  3. package/dist/BrandMark.vue.d.ts +6 -0
  4. package/dist/Button.vue.d.ts +43 -0
  5. package/dist/Card.vue.d.ts +25 -0
  6. package/dist/Checkbox.vue.d.ts +24 -0
  7. package/dist/ColorPicker.vue.d.ts +30 -0
  8. package/dist/Combobox.js +70 -0
  9. package/dist/Combobox.vue.d.ts +27 -0
  10. package/dist/ConfirmDialog.vue.d.ts +37 -0
  11. package/dist/ContextMenu.vue.d.ts +27 -0
  12. package/dist/CopyField.vue.d.ts +22 -0
  13. package/dist/EmptyState.vue.d.ts +28 -0
  14. package/dist/IconTipButton.vue.d.ts +24 -0
  15. package/dist/InfoAboutCard.vue.d.ts +4 -0
  16. package/dist/InfoBubble.vue.d.ts +9 -0
  17. package/dist/InfoHelpCard.vue.d.ts +6 -0
  18. package/dist/InfoTile.vue.d.ts +22 -0
  19. package/dist/InfoVersionCard.vue.d.ts +15 -0
  20. package/dist/Kbd.vue.d.ts +15 -0
  21. package/dist/ListSelect.vue.d.ts +37 -0
  22. package/dist/MenuBar.vue.d.ts +13 -0
  23. package/dist/MenuChoice.vue.d.ts +27 -0
  24. package/dist/MenuRows.vue.d.ts +12 -0
  25. package/dist/MenuSelect.vue.d.ts +37 -0
  26. package/dist/MenuSubmenu.vue.d.ts +31 -0
  27. package/dist/Meter.vue.d.ts +23 -0
  28. package/dist/NumberField.vue.d.ts +10 -0
  29. package/dist/PasswordField.vue.d.ts +25 -0
  30. package/dist/Pill.vue.d.ts +23 -0
  31. package/dist/ProgressBar.vue.d.ts +19 -0
  32. package/dist/ReadmeButton.vue.d.ts +33 -0
  33. package/dist/Select.js +444 -0
  34. package/dist/Select.vue.d.ts +50 -0
  35. package/dist/SelectFace.vue.d.ts +26 -0
  36. package/dist/Selector.vue.d.ts +55 -0
  37. package/dist/SelectorSegment.vue.d.ts +28 -0
  38. package/dist/SidebarRow.vue.d.ts +22 -0
  39. package/dist/Slider.js +36 -0
  40. package/dist/Slider.vue.d.ts +23 -0
  41. package/dist/SubCard.vue.d.ts +21 -0
  42. package/dist/TipBubble.vue.d.ts +7 -0
  43. package/dist/TipWrap-rNAEgvb0.js +51 -0
  44. package/dist/TipWrap.d.ts +11 -0
  45. package/dist/ToastViewport.vue.d.ts +25 -0
  46. package/dist/Toggle.vue.d.ts +21 -0
  47. package/dist/UnavailableNotice.vue.d.ts +20 -0
  48. package/dist/Window.vue.d.ts +42 -0
  49. package/dist/confirm.d.ts +20 -0
  50. package/dist/engines.d.ts +12 -0
  51. package/dist/entries/combobox.d.ts +1 -0
  52. package/dist/entries/select.d.ts +1 -0
  53. package/dist/entries/slider.d.ts +1 -0
  54. package/dist/glyphs-Cgknt-k1.js +27 -0
  55. package/dist/glyphs.d.ts +25 -0
  56. package/dist/index.d.ts +42 -0
  57. package/dist/index.js +1995 -0
  58. package/dist/info.d.ts +71 -0
  59. package/dist/selectParts.d.ts +25 -0
  60. package/dist/selectorItem.d.ts +19 -0
  61. package/dist/tipBubble.d.ts +16 -0
  62. package/dist/windowParts.d.ts +22 -0
  63. package/package.json +47 -4
package/README.md CHANGED
@@ -1,3 +1,52 @@
1
- # Temporary Holding Version
1
+ # @glimstone/vue
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ The components of [GlimStone](https://junkerderprovinz.github.io/glimstone/) for
4
+ Vue 3, on `@glimstone/core`. They are the same components as `@glimstone/react`,
5
+ with the same names, the same behaviour contracts and the same look, as
6
+ single-file components.
7
+
8
+ ```sh
9
+ npm install @glimstone/core @glimstone/vue
10
+ ```
11
+
12
+ ```ts
13
+ import "@glimstone/core/tokens.css";
14
+ import { applyCachedAppearance, applyStoredLabelModes } from "@glimstone/core";
15
+ import { setGlyphResolver } from "@glimstone/vue";
16
+
17
+ applyCachedAppearance();
18
+ applyStoredLabelModes();
19
+ setGlyphResolver((key) => appGlyphs[key]);
20
+ ```
21
+
22
+ ```vue
23
+ <script setup lang="ts">
24
+ import { ref } from "vue";
25
+ import { Button, Toggle, useConfirm } from "@glimstone/vue";
26
+ import { Select } from "@glimstone/vue/Select";
27
+
28
+ const quiet = ref(true);
29
+ const zone = ref<string | null>("Europe/Vienna");
30
+ const { confirm, ConfirmHost } = useConfirm({ title: "Confirm", cancel: "Cancel", confirm: "Confirm" });
31
+ </script>
32
+
33
+ <template>
34
+ <Toggle v-model="quiet" label="Quiet notifications" />
35
+ <Select v-model="zone" label="Time zone" :options="zones" />
36
+ <Button label="Delete" label-key="delete" @click="confirm('Delete the snapshot?')" />
37
+ <ConfirmHost />
38
+ </template>
39
+ ```
40
+
41
+ - Values bind with `v-model`; listeners and attributes such as `@click`,
42
+ `class` and `aria-*` fall through to the element.
43
+ - A glyph is a component: `setGlyphResolver` returns one, and a `glyph` prop
44
+ takes one.
45
+ - The engines are composables: `useLabelMode`, `useRainbow`, `useShape`,
46
+ `useMotion`, `useAccent` and `useHue`, each a writable ref that follows the
47
+ document.
48
+ - `Select`, `Combobox` and `Slider` come from their own entries and need
49
+ `@zag-js/vue` with their machine packages (`@zag-js/select` and
50
+ `@zag-js/menu`, `@zag-js/combobox`, `@zag-js/slider`).
51
+ - Vue counts `useId()` per app. A page that mounts several Vue apps gives each
52
+ its own `app.config.idPrefix`.
@@ -0,0 +1,49 @@
1
+ import { type BadgeShape, type BadgeSize, type BadgeTone, type NotchInset } from "@glimstone/core";
2
+ type __VLS_Props = {
3
+ tone?: BadgeTone;
4
+ size?: BadgeSize;
5
+ shape?: BadgeShape;
6
+ as?: "span" | "button" | "a";
7
+ disabled?: boolean;
8
+ /** Let content that wraps grow the box instead of overflowing it. */
9
+ wrap?: boolean;
10
+ /** Rainbow position. Only `heading` and `active` take it, since the other
11
+ * tones are status signals. */
12
+ hueIndex?: number;
13
+ /** `as="button"` only: the tooltip and accessible name of an icon-only
14
+ * button; it also makes the badge icon-only for sizing. */
15
+ tip?: string;
16
+ /** Heading notch only: the card's content padding in quarter-rem steps. */
17
+ insetStart?: NotchInset;
18
+ /** Heading notch only: keep its look without positioning it. */
19
+ inFlow?: boolean;
20
+ };
21
+ declare const __VLS_template: () => {
22
+ __VLS_Slots: {
23
+ default?: (props: {}) => any;
24
+ } & {
25
+ default?: (props: {}) => any;
26
+ } & {
27
+ default?: (props: {}) => any;
28
+ } & {
29
+ default?: (props: {}) => any;
30
+ };
31
+ };
32
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
33
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
34
+ disabled: boolean;
35
+ tone: BadgeTone;
36
+ size: BadgeSize;
37
+ shape: BadgeShape;
38
+ as: "a" | "button" | "span";
39
+ wrap: boolean;
40
+ inFlow: boolean;
41
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
43
+ declare const _default: typeof __VLS_export;
44
+ export default _default;
45
+ type __VLS_WithSlots<T, S> = T & {
46
+ new (): {
47
+ $slots: S;
48
+ };
49
+ };
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ svg: string;
3
+ };
4
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
@@ -0,0 +1,43 @@
1
+ import { type Component } from "vue";
2
+ import { type ButtonTone, type ButtonVariant, type WidthStage } from "@glimstone/core";
3
+ type __VLS_Props = {
4
+ /** The button's words, present in every mode: visible, or hidden but
5
+ * announced and shown as the tooltip. Keep it stable; put changing state
6
+ * in `title`. */
7
+ label: string;
8
+ /** The translation key behind `label`, or `null` when the label is data
9
+ * such as a path. It picks the glyph by meaning, so the same verb wears
10
+ * the same symbol everywhere; an explicit `glyph` wins. */
11
+ labelKey: string | null;
12
+ /** Overrides whatever `labelKey` would have chosen. */
13
+ glyph?: Component;
14
+ tone?: ButtonTone;
15
+ /** "chip" inside a pill, "icon" for a row action; see ButtonVariant. */
16
+ variant?: ButtonVariant;
17
+ disabled?: boolean;
18
+ type?: "button" | "submit";
19
+ /** Extra explanation, and the place for anything that changes. It shows
20
+ * in the hover and focus bubble, joined with the label where the label
21
+ * is hidden, and still reaches a disabled button. */
22
+ title?: string;
23
+ /** This button's own rainbow position, for a colour different from its card's. */
24
+ hueIndex?: number;
25
+ /** Shows a spinner in place of the glyph. Separate from `disabled`. */
26
+ busy?: boolean;
27
+ /** Forces a width stage, for two buttons in different components that should match. */
28
+ stage?: WidthStage;
29
+ /** Keeps the label visible in every mode, for a label that is content rather than a verb. */
30
+ keepLabel?: boolean;
31
+ };
32
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
33
+ el: import("vue").ShallowRef<HTMLButtonElement | null, HTMLButtonElement | null>;
34
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
35
+ disabled: boolean;
36
+ type: "button" | "submit";
37
+ tone: ButtonTone;
38
+ variant: ButtonVariant;
39
+ busy: boolean;
40
+ keepLabel: boolean;
41
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
42
+ declare const _default: typeof __VLS_export;
43
+ export default _default;
@@ -0,0 +1,25 @@
1
+ type __VLS_Props = {
2
+ /** Omit it where a control inside already carries the same name. */
3
+ title?: string;
4
+ /** One line saying what this whole card does, drawn as an "(i)" beside the title. */
5
+ hint?: string;
6
+ /** This card's position in the rainbow, counted across the cards visible on the active tab. */
7
+ hueIndex?: number;
8
+ /** This card sits inside another card that already provides the surface and the padding. */
9
+ nested?: boolean;
10
+ };
11
+ declare const __VLS_template: () => {
12
+ __VLS_Slots: {
13
+ default?: (props: {}) => any;
14
+ };
15
+ };
16
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
17
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
18
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
21
+ type __VLS_WithSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1,24 @@
1
+ type __VLS_Props = {
2
+ /** Always the accessible name; shown beside the box unless hideLabel. */
3
+ label: string;
4
+ /** For a grid whose row and column headings already say it, such as permissions. */
5
+ hideLabel?: boolean;
6
+ /** The box alone, without the frame and its hover ground, for a row or a cell of a dense list. Hides the label. */
7
+ slim?: boolean;
8
+ disabled?: boolean;
9
+ };
10
+ type __VLS_ModelProps = {
11
+ modelValue: boolean;
12
+ };
13
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
14
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ "update:modelValue": (value: boolean) => any;
16
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
17
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
18
+ }>, {
19
+ disabled: boolean;
20
+ hideLabel: boolean;
21
+ slim: boolean;
22
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import { type ColorName, type ColorPickerPanelText } from "@glimstone/core";
2
+ type __VLS_Props = {
3
+ /** The control that opened the picker. With it the picker floats beside it
4
+ * and closes on Escape, on a click beside it and after Apply. */
5
+ anchor?: HTMLElement | null;
6
+ /** The names a colour is matched against, nearest in OKLab. `false` shows none. */
7
+ names?: readonly ColorName[] | false;
8
+ /** The words, read when the picker opens. */
9
+ text?: Partial<ColorPickerPanelText>;
10
+ };
11
+ type __VLS_ModelProps = {
12
+ modelValue: string;
13
+ };
14
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
15
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ input: (hex: string) => any;
17
+ close: () => any;
18
+ "update:modelValue": (value: string) => any;
19
+ apply: (hex: string, name: string | null) => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
21
+ onInput?: ((hex: string) => any) | undefined;
22
+ onClose?: (() => any) | undefined;
23
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
24
+ onApply?: ((hex: string, name: string | null) => any) | undefined;
25
+ }>, {
26
+ anchor: HTMLElement | null;
27
+ names: false | readonly ColorName[];
28
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;
@@ -0,0 +1,70 @@
1
+ import { a as e, n as t } from "./glyphs-Cgknt-k1.js";
2
+ import { Fragment as n, Teleport as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, mergeModels as d, mergeProps as f, openBlock as p, renderList as m, shallowRef as h, toDisplayString as g, unref as _, useId as v, useModel as y, watch as b } from "vue";
3
+ import { normalizeProps as x, useMachine as S } from "@zag-js/vue";
4
+ import * as C from "@zag-js/combobox";
5
+ // src/Combobox.vue?vue&type=script&setup=true&lang.ts
6
+ var w = ["aria-label"], T = ["data-state"], E = {
7
+ key: 0,
8
+ class: "glim-select-empty"
9
+ }, D = /* @__PURE__ */ u({
10
+ __name: "Combobox",
11
+ props: /*@__PURE__*/ d({
12
+ label: {},
13
+ hideLabel: {
14
+ type: Boolean,
15
+ default: !1
16
+ },
17
+ options: {},
18
+ placeholder: {},
19
+ empty: {},
20
+ toggleLabel: {},
21
+ disabled: {
22
+ type: Boolean,
23
+ default: !1
24
+ }
25
+ }, {
26
+ modelValue: { required: !0 },
27
+ modelModifiers: {}
28
+ }),
29
+ emits: ["update:modelValue"],
30
+ setup(u) {
31
+ let d = u, D = y(u, "modelValue"), O = v(), k = h(d.options);
32
+ b(() => d.options, (e) => k.value = e);
33
+ let A = i(() => C.collection({
34
+ items: k.value,
35
+ itemToValue: (e) => e.value,
36
+ itemToString: (e) => e.label,
37
+ isItemDisabled: (e) => !!e.disabled
38
+ })), j = S(C.machine, i(() => ({
39
+ id: O,
40
+ collection: A.value,
41
+ value: D.value ? [D.value] : [],
42
+ placeholder: d.placeholder,
43
+ disabled: d.disabled,
44
+ positioning: {
45
+ sameWidth: !0,
46
+ gutter: 6
47
+ },
48
+ onOpenChange: ({ open: e }) => {
49
+ e || (k.value = d.options);
50
+ },
51
+ onInputValueChange: ({ inputValue: e }) => {
52
+ let t = e.toLocaleLowerCase();
53
+ k.value = d.options.filter((e) => e.label.toLocaleLowerCase().includes(t));
54
+ },
55
+ onValueChange: (e) => D.value = e.value[0] ?? ""
56
+ }))), M = i(() => C.connect(j, x));
57
+ return (i, d) => (p(), s("div", f(M.value.getRootProps(), { class: "glim-combobox" }), [
58
+ c("label", f(M.value.getLabelProps(), { class: u.hideLabel ? "glim-sr-only" : "glim-field-label" }), g(u.label), 17),
59
+ c("div", f(M.value.getControlProps(), { class: "glim-combobox-control" }), [c("input", f(M.value.getInputProps(), { class: "glim-combobox-input" }), null, 16), c("button", f(M.value.getTriggerProps(), {
60
+ "aria-label": u.toggleLabel,
61
+ class: "glim-combobox-toggle"
62
+ }), [c("span", {
63
+ class: "glim-select-indicator",
64
+ "data-state": M.value.open ? "open" : "closed"
65
+ }, [l(_(e))], 8, T)], 16, w)], 16),
66
+ (p(), a(r, { to: "body" }, [c("div", f(M.value.getPositionerProps(), { class: "glim-select-positioner" }), [c("ul", f(M.value.getContentProps(), { class: "glim-select-content" }), [k.value.length === 0 ? (p(), s("li", E, g(u.empty), 1)) : o("", !0), (p(!0), s(n, null, m(k.value, (e) => (p(), s("li", f({ key: e.value }, { ref_for: !0 }, M.value.getItemProps({ item: e }), { class: "glim-select-item" }), [c("span", f({ ref_for: !0 }, M.value.getItemTextProps({ item: e })), g(e.label), 17), c("span", f({ ref_for: !0 }, M.value.getItemIndicatorProps({ item: e }), { class: "glim-select-check" }), [l(_(t))], 16)], 16))), 128))], 16)], 16)]))
67
+ ], 16));
68
+ }
69
+ });
70
+ export { D as Combobox };
@@ -0,0 +1,27 @@
1
+ import type { SelectOption } from "./selectParts";
2
+ type __VLS_Props = {
3
+ label: string;
4
+ hideLabel?: boolean;
5
+ options: SelectOption[];
6
+ placeholder?: string;
7
+ /** The line the list shows when nothing matches. */
8
+ empty: string;
9
+ /** Accessible name of the button that opens the full list. */
10
+ toggleLabel: string;
11
+ disabled?: boolean;
12
+ };
13
+ type __VLS_ModelProps = {
14
+ /** The chosen value, or "" while nothing is chosen. */
15
+ modelValue: string;
16
+ };
17
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
18
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
+ "update:modelValue": (value: string) => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
21
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
22
+ }>, {
23
+ disabled: boolean;
24
+ hideLabel: boolean;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
@@ -0,0 +1,37 @@
1
+ import { type Component } from "vue";
2
+ type __VLS_Props = {
3
+ title: string;
4
+ message: string;
5
+ /** The words of the action being confirmed, so the answer repeats "Delete"
6
+ * rather than a bare "Confirm". */
7
+ confirmLabel: string;
8
+ /** Translation key behind confirmLabel, so the confirm button shows its glyph. */
9
+ confirmLabelKey?: string;
10
+ confirmGlyph?: Component;
11
+ cancelLabel: string;
12
+ /** A close button in the head, for a window that is more than a question. */
13
+ closeLabel?: string;
14
+ };
15
+ declare const __VLS_template: () => {
16
+ __VLS_Slots: {
17
+ extra?: (props: {}) => any;
18
+ };
19
+ };
20
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
21
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {
22
+ card: import("vue").ShallowRef<HTMLDivElement | null, HTMLDivElement | null>;
23
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
24
+ cancel: () => any;
25
+ confirm: () => any;
26
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
27
+ onCancel?: (() => any) | undefined;
28
+ onConfirm?: (() => any) | undefined;
29
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
30
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
33
+ type __VLS_WithSlots<T, S> = T & {
34
+ new (): {
35
+ $slots: S;
36
+ };
37
+ };
@@ -0,0 +1,27 @@
1
+ import type { MenuEntry } from "./windowParts";
2
+ type __VLS_Props = {
3
+ /** The point the menu hangs from, in viewport pixels, such as the pointer's. */
4
+ x: number;
5
+ y: number;
6
+ items: MenuEntry[];
7
+ /** Stand the menu on the point instead, for a menu opened from a bar at the bottom. */
8
+ above?: boolean;
9
+ /** The menu's accessible name. */
10
+ label?: string;
11
+ /** The control that opened the menu. A click on it is not a click outside,
12
+ * and focus goes back to it; without one, focus goes back to wherever it was. */
13
+ opener?: HTMLElement | null;
14
+ };
15
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ close: () => any;
17
+ step: (direction: 1 | -1) => any;
18
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
19
+ onClose?: (() => any) | undefined;
20
+ onStep?: ((direction: 1 | -1) => any) | undefined;
21
+ }>, {
22
+ label: string;
23
+ above: boolean;
24
+ opener: HTMLElement | null;
25
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
@@ -0,0 +1,22 @@
1
+ type __VLS_Props = {
2
+ value: string;
3
+ /** The field's accessible name, such as "Token". */
4
+ label: string;
5
+ /** The button's words, before and for a moment after it copied. */
6
+ text?: {
7
+ copy: string;
8
+ copied: string;
9
+ };
10
+ };
11
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ copy: (done: boolean) => any;
13
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onCopy?: ((done: boolean) => any) | undefined;
15
+ }>, {
16
+ text: {
17
+ copy: string;
18
+ copied: string;
19
+ };
20
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -0,0 +1,28 @@
1
+ import type { Component } from "vue";
2
+ type __VLS_Props = {
3
+ /** The page's own glyph, so the empty state echoes the place it is on. */
4
+ glyph?: Component;
5
+ /** What is missing, such as "No backups yet" or "No backups match the filter". */
6
+ title: string;
7
+ /** One line on how to get there. */
8
+ hint?: string;
9
+ /** It stands inside a card, which already provides the surface. */
10
+ nested?: boolean;
11
+ };
12
+ declare const __VLS_template: () => {
13
+ __VLS_Slots: {
14
+ default?: (props: {}) => any;
15
+ };
16
+ };
17
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
18
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
19
+ nested: boolean;
20
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
22
+ declare const _default: typeof __VLS_export;
23
+ export default _default;
24
+ type __VLS_WithSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,24 @@
1
+ type __VLS_Props = {
2
+ /** The hover and focus explanation, and the button's `aria-label`. */
3
+ tip: string;
4
+ disabled?: boolean;
5
+ type?: "button" | "submit";
6
+ };
7
+ declare const __VLS_template: () => {
8
+ __VLS_Slots: {
9
+ default?: (props: {}) => any;
10
+ };
11
+ };
12
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
13
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
14
+ disabled: boolean;
15
+ type: "button" | "submit";
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
+ declare const _default: typeof __VLS_export;
19
+ export default _default;
20
+ type __VLS_WithSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,4 @@
1
+ import type { InfoAboutCardProps } from "./info";
2
+ declare const __VLS_export: import("vue").DefineComponent<InfoAboutCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<InfoAboutCardProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
3
+ declare const _default: typeof __VLS_export;
4
+ export default _default;
@@ -0,0 +1,9 @@
1
+ type __VLS_Props = {
2
+ tip: string;
3
+ onAccent?: boolean;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
6
+ onAccent: boolean;
7
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import type { InfoHelpCardProps } from "./info";
2
+ declare const __VLS_export: import("vue").DefineComponent<InfoHelpCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<InfoHelpCardProps> & Readonly<{}>, {
3
+ openUrl: import("@glimstone/core").OpenUrl;
4
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
@@ -0,0 +1,22 @@
1
+ import type { InfoAboutCardProps, InfoHelpCardProps, InfoVersionCardProps } from "./info";
2
+ type __VLS_Props = {
3
+ version: Omit<InfoVersionCardProps, "hueIndex">;
4
+ help: Omit<InfoHelpCardProps, "hueIndex">;
5
+ about: Omit<InfoAboutCardProps, "hueIndex">;
6
+ hueIndex?: number;
7
+ };
8
+ declare const __VLS_template: () => {
9
+ __VLS_Slots: {
10
+ 'whats-new'?: (props: {}) => any;
11
+ };
12
+ };
13
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
14
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,15 @@
1
+ import type { InfoVersionCardProps } from "./info";
2
+ type __VLS_Slots = {
3
+ "whats-new"?: () => unknown;
4
+ };
5
+ declare const __VLS_base: import("vue").DefineComponent<InfoVersionCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<InfoVersionCardProps> & Readonly<{}>, {
6
+ openUrl: import("@glimstone/core").OpenUrl;
7
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
11
+ type __VLS_WithSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
@@ -0,0 +1,15 @@
1
+ declare const __VLS_template: () => {
2
+ __VLS_Slots: {
3
+ default?: (props: {}) => any;
4
+ };
5
+ };
6
+ type __VLS_Slots = ReturnType<typeof __VLS_template>['__VLS_Slots'];
7
+ declare const __VLS_base: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
8
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
11
+ type __VLS_WithSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
@@ -0,0 +1,37 @@
1
+ import { type SelectWidth } from "@glimstone/core";
2
+ import { type SelectGroup } from "./selectParts";
3
+ declare const __VLS_export: <T extends string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
5
+ label: string;
6
+ hideLabel?: boolean;
7
+ groups: SelectGroup<T>[];
8
+ value: T | null;
9
+ placeholder?: string;
10
+ width: SelectWidth;
11
+ triggerClass: string;
12
+ id?: string;
13
+ disabled?: boolean;
14
+ busy?: boolean;
15
+ tip?: string;
16
+ shake?: number;
17
+ } & {
18
+ onChange?: ((value: T) => any) | undefined;
19
+ }> & (typeof globalThis extends {
20
+ __VLS_PROPS_FALLBACK: infer P;
21
+ } ? P : {});
22
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
23
+ trigger: import("vue").ShallowRef<HTMLElement | null, HTMLElement | null>;
24
+ }>) => void;
25
+ attrs: any;
26
+ slots: {};
27
+ emit: (evt: "change", value: T) => void;
28
+ }>) => import("vue").VNode & {
29
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
30
+ };
31
+ declare const _default: typeof __VLS_export;
32
+ export default _default;
33
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
34
+ [K in keyof T]: T[K];
35
+ } : {
36
+ [K in keyof T as K]: T[K];
37
+ }) & {};
@@ -0,0 +1,13 @@
1
+ import type { MenuBarMenu } from "./windowParts";
2
+ type __VLS_Props = {
3
+ /** The bar's accessible name, such as "Menu". */
4
+ label: string;
5
+ menus: MenuBarMenu[];
6
+ };
7
+ /** Opens a menu by its index and puts the focus on its first row. */
8
+ declare function show(at: number): void;
9
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {
10
+ open: typeof show;
11
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,27 @@
1
+ import type * as menu from "@zag-js/menu";
2
+ import type { SelectOption } from "./selectParts";
3
+ declare const __VLS_export: <T extends string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<{
5
+ api: menu.Api;
6
+ option: SelectOption<T>;
7
+ value: T | null;
8
+ glyphs: boolean;
9
+ } & {
10
+ onChange?: ((value: T) => any) | undefined;
11
+ }> & (typeof globalThis extends {
12
+ __VLS_PROPS_FALLBACK: infer P;
13
+ } ? P : {});
14
+ expose: (exposed: {}) => void;
15
+ attrs: any;
16
+ slots: {};
17
+ emit: (evt: "change", value: T) => void;
18
+ }>) => import("vue").VNode & {
19
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
20
+ };
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
23
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
24
+ [K in keyof T]: T[K];
25
+ } : {
26
+ [K in keyof T as K]: T[K];
27
+ }) & {};