iryx-ui 0.22.0 → 0.24.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.
@@ -3,7 +3,7 @@
3
3
  * Consumed by the Vue plugin (global registration) and the Nuxt module
4
4
  * (auto-imports). Keep in sync with `src/components/index.ts`.
5
5
  */
6
- export declare const componentNames: readonly ["Accordion", "Alert", "App", "AppShell", "AspectRatio", "AuthProviders", "Avatar", "AvatarGroup", "Badge", "BarChart", "Banner", "Breadcrumb", "Button", "ButtonGroup", "Calendar", "Card", "Carousel", "ChartLegend", "Checkbox", "ColorPicker", "Combobox", "Collapsible", "CommandPalette", "Container", "ConfirmDialog", "ContextMenu", "DateField", "DatePicker", "DateRangePicker", "Dialog", "DonutChart", "Drawer", "DropdownMenu", "Editable", "EmptyState", "FileUpload", "Form", "FormField", "HoverCard", "Icon", "Input", "Kbd", "Label", "LineChart", "NavigationMenu", "NumberInput", "Menubar", "PageHeader", "Pagination", "PasswordInput", "PinInput", "Popover", "Progress", "RadioGroup", "Rating", "ScrollArea", "ScrollFade", "Select", "Separator", "Sidebar", "SignaturePad", "Skeleton", "Slider", "Sparkline", "Splitter", "Stat", "Stepper", "Switch", "Table", "Tabs", "TagsInput", "Textarea", "Toaster", "Toggle", "ToggleGroup", "TimeField", "Timeline", "Toolbar", "Tooltip", "Tree"];
6
+ export declare const componentNames: readonly ["Accordion", "Alert", "App", "AppShell", "AspectRatio", "AuthProviders", "Avatar", "AvatarGroup", "Badge", "BarChart", "Banner", "Breadcrumb", "Button", "ButtonGroup", "Calendar", "Card", "Carousel", "ChartLegend", "Checkbox", "Code", "ColorPicker", "Combobox", "Collapsible", "CommandPalette", "Container", "ConfirmDialog", "ConfirmPopover", "ContextMenu", "DateField", "DatePicker", "DateRangePicker", "DescriptionList", "Dialog", "DonutChart", "Drawer", "DropdownMenu", "Editable", "EmptyState", "FileUpload", "Form", "FormField", "HoverCard", "Icon", "Input", "Kbd", "Label", "LineChart", "NavigationMenu", "NumberInput", "Menubar", "PageHeader", "Pagination", "PasswordInput", "PinInput", "Popover", "Progress", "RadioGroup", "Rating", "ScrollArea", "ScrollFade", "Select", "Separator", "Sidebar", "SignaturePad", "Skeleton", "Slider", "Sparkline", "Splitter", "Stat", "Stepper", "Switch", "Table", "Tabs", "TagsInput", "Textarea", "Toaster", "Toggle", "ToggleGroup", "TimeField", "Timeline", "Toolbar", "Tooltip", "Tree"];
7
7
  export type ComponentName = (typeof componentNames)[number];
8
8
  /**
9
9
  * Names of every block exported from `iryx-ui/marketing`.
@@ -1,5 +1,5 @@
1
1
  //#region src/component-names.ts
2
- var e = /* @__PURE__ */ "Accordion.Alert.App.AppShell.AspectRatio.AuthProviders.Avatar.AvatarGroup.Badge.BarChart.Banner.Breadcrumb.Button.ButtonGroup.Calendar.Card.Carousel.ChartLegend.Checkbox.ColorPicker.Combobox.Collapsible.CommandPalette.Container.ConfirmDialog.ContextMenu.DateField.DatePicker.DateRangePicker.Dialog.DonutChart.Drawer.DropdownMenu.Editable.EmptyState.FileUpload.Form.FormField.HoverCard.Icon.Input.Kbd.Label.LineChart.NavigationMenu.NumberInput.Menubar.PageHeader.Pagination.PasswordInput.PinInput.Popover.Progress.RadioGroup.Rating.ScrollArea.ScrollFade.Select.Separator.Sidebar.SignaturePad.Skeleton.Slider.Sparkline.Splitter.Stat.Stepper.Switch.Table.Tabs.TagsInput.Textarea.Toaster.Toggle.ToggleGroup.TimeField.Timeline.Toolbar.Tooltip.Tree".split("."), t = [
2
+ var e = /* @__PURE__ */ "Accordion.Alert.App.AppShell.AspectRatio.AuthProviders.Avatar.AvatarGroup.Badge.BarChart.Banner.Breadcrumb.Button.ButtonGroup.Calendar.Card.Carousel.ChartLegend.Checkbox.Code.ColorPicker.Combobox.Collapsible.CommandPalette.Container.ConfirmDialog.ConfirmPopover.ContextMenu.DateField.DatePicker.DateRangePicker.DescriptionList.Dialog.DonutChart.Drawer.DropdownMenu.Editable.EmptyState.FileUpload.Form.FormField.HoverCard.Icon.Input.Kbd.Label.LineChart.NavigationMenu.NumberInput.Menubar.PageHeader.Pagination.PasswordInput.PinInput.Popover.Progress.RadioGroup.Rating.ScrollArea.ScrollFade.Select.Separator.Sidebar.SignaturePad.Skeleton.Slider.Sparkline.Splitter.Stat.Stepper.Switch.Table.Tabs.TagsInput.Textarea.Toaster.Toggle.ToggleGroup.TimeField.Timeline.Toolbar.Tooltip.Tree".split("."), t = [
3
3
  "BrowserFrame",
4
4
  "FeatureCard",
5
5
  "Hero",
@@ -0,0 +1,5 @@
1
+ import e from "./Code.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/Code.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,38 @@
1
+ import type { ClassValue } from '../class-value';
2
+ export interface CodeProps {
3
+ /** The code itself. The default slot renders instead when it is absent. */
4
+ code?: string;
5
+ /** Render a `pre` block rather than an inline chip. */
6
+ block?: boolean;
7
+ /** Show a copy button. Defaults to on for a block, off inline. */
8
+ copy?: boolean;
9
+ copyLabel?: string;
10
+ copiedLabel?: string;
11
+ /** Skip built-in classes; you take over styling entirely. */
12
+ unstyled?: boolean;
13
+ class?: ClassValue;
14
+ /** Override classes per element, e.g. `{ code: 'text-xs' }`. */
15
+ ui?: {
16
+ root?: string;
17
+ code?: string;
18
+ copy?: string;
19
+ };
20
+ }
21
+ declare var __VLS_8: {};
22
+ type __VLS_Slots = {} & {
23
+ default?: (props: typeof __VLS_8) => any;
24
+ };
25
+ declare const __VLS_base: import("vue").DefineComponent<CodeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CodeProps> & Readonly<{}>, {
26
+ unstyled: boolean;
27
+ copy: boolean;
28
+ copyLabel: string;
29
+ copiedLabel: string;
30
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;
34
+ type __VLS_WithSlots<T, S> = T & {
35
+ new (): {
36
+ $slots: S;
37
+ };
38
+ };
@@ -0,0 +1,66 @@
1
+ import { useIryxUiConfig as e } from "../config.js";
2
+ import t from "./Icon.js";
3
+ import { codeTheme as n } from "../theme/code.js";
4
+ import { computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, normalizeClass as d, onBeforeUnmount as f, openBlock as p, ref as m, renderSlot as h, toDisplayString as g, unref as _, withCtx as v } from "vue";
5
+ import { Copy01Icon as y, Tick02Icon as b } from "@hugeicons/core-free-icons";
6
+ import { Primitive as x } from "reka-ui";
7
+ //#region src/components/Code.vue?vue&type=script&setup=true&lang.ts
8
+ var S = ["aria-label"], C = /*@__PURE__*/ u({
9
+ __name: "Code",
10
+ props: {
11
+ code: {},
12
+ block: { type: Boolean },
13
+ copy: {
14
+ type: Boolean,
15
+ default: void 0
16
+ },
17
+ copyLabel: { default: "Copy code" },
18
+ copiedLabel: { default: "Copied" },
19
+ unstyled: {
20
+ type: Boolean,
21
+ default: void 0
22
+ },
23
+ class: { type: [
24
+ String,
25
+ Boolean,
26
+ null,
27
+ Array
28
+ ] },
29
+ ui: {}
30
+ },
31
+ setup(u) {
32
+ let C = u, w = e(), T = r(() => C.unstyled ?? w.unstyled), E = r(() => C.copy ?? C.block ?? !1), D = m(), O = m(!1), k;
33
+ async function A() {
34
+ let e = C.code ?? D.value?.textContent ?? "";
35
+ if (e) {
36
+ try {
37
+ await navigator.clipboard.writeText(e);
38
+ } catch {
39
+ return;
40
+ }
41
+ O.value = !0, clearTimeout(k), k = setTimeout(() => O.value = !1, 2e3);
42
+ }
43
+ }
44
+ f(() => clearTimeout(k));
45
+ let j = r(() => n({ block: C.block })), M = r(() => T.value ? [C.ui?.root, C.class] : j.value.root({ class: [C.ui?.root, C.class] })), N = r(() => T.value ? C.ui?.code : j.value.code({ class: C.ui?.code })), P = r(() => T.value ? C.ui?.copy : j.value.copy({ class: C.ui?.copy }));
46
+ return (e, n) => (p(), i(_(x), {
47
+ as: C.block ? "pre" : "span",
48
+ class: d(M.value)
49
+ }, {
50
+ default: v(() => [s("code", {
51
+ ref_key: "codeEl",
52
+ ref: D,
53
+ class: d(N.value)
54
+ }, [h(e.$slots, "default", {}, () => [c(g(C.code), 1)])], 2), E.value ? (p(), o("button", {
55
+ key: 0,
56
+ type: "button",
57
+ class: d(P.value),
58
+ "aria-label": O.value ? C.copiedLabel : C.copyLabel,
59
+ onClick: A
60
+ }, [l(t, { icon: O.value ? _(b) : _(y) }, null, 8, ["icon"])], 10, S)) : a("", !0)]),
61
+ _: 3
62
+ }, 8, ["as", "class"]));
63
+ }
64
+ });
65
+ //#endregion
66
+ export { C as default };
@@ -0,0 +1,5 @@
1
+ import e from "./ConfirmPopover.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/ConfirmPopover.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,63 @@
1
+ import type { ClassValue } from '../class-value';
2
+ export interface ConfirmPopoverProps {
3
+ /** The question. */
4
+ title?: string;
5
+ /** Secondary detail under the question. */
6
+ description?: string;
7
+ confirmLabel?: string;
8
+ cancelLabel?: string;
9
+ /** Style the confirming button as destructive. */
10
+ danger?: boolean;
11
+ side?: 'top' | 'right' | 'bottom' | 'left';
12
+ align?: 'start' | 'center' | 'end';
13
+ sideOffset?: number;
14
+ /** Render the little pointer against the trigger. */
15
+ arrow?: boolean;
16
+ /** Skip built-in classes; you take over styling entirely. */
17
+ unstyled?: boolean;
18
+ class?: ClassValue;
19
+ /** Override classes per element, e.g. `{ confirm: 'w-full' }`. */
20
+ ui?: {
21
+ content?: string;
22
+ title?: string;
23
+ description?: string;
24
+ actions?: string;
25
+ cancel?: string;
26
+ confirm?: string;
27
+ };
28
+ }
29
+ type __VLS_Props = ConfirmPopoverProps;
30
+ type __VLS_ModelProps = {
31
+ 'open'?: boolean | undefined;
32
+ };
33
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
34
+ declare var __VLS_9: {}, __VLS_11: {};
35
+ type __VLS_Slots = {} & {
36
+ trigger?: (props: typeof __VLS_9) => any;
37
+ } & {
38
+ description?: (props: typeof __VLS_11) => any;
39
+ };
40
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
41
+ "update:open": (value: boolean | undefined) => any;
42
+ cancel: () => any;
43
+ confirm: () => any;
44
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
45
+ "onUpdate:open"?: ((value: boolean | undefined) => any) | undefined;
46
+ onCancel?: (() => any) | undefined;
47
+ onConfirm?: (() => any) | undefined;
48
+ }>, {
49
+ unstyled: boolean;
50
+ side: "top" | "right" | "bottom" | "left";
51
+ sideOffset: number;
52
+ confirmLabel: string;
53
+ cancelLabel: string;
54
+ arrow: boolean;
55
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
56
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
57
+ declare const _default: typeof __VLS_export;
58
+ export default _default;
59
+ type __VLS_WithSlots<T, S> = T & {
60
+ new (): {
61
+ $slots: S;
62
+ };
63
+ };
@@ -0,0 +1,102 @@
1
+ import { useIryxUiConfig as e } from "../config.js";
2
+ import t from "./Button.js";
3
+ import { confirmPopoverTheme as n } from "../theme/confirm-popover.js";
4
+ import r from "./Popover.js";
5
+ import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, mergeModels as f, normalizeClass as p, openBlock as m, renderSlot as h, toDisplayString as g, useModel as _, withCtx as v } from "vue";
6
+ //#region src/components/ConfirmPopover.vue?vue&type=script&setup=true&lang.ts
7
+ var y = /*@__PURE__*/ d({
8
+ __name: "ConfirmPopover",
9
+ props: /*@__PURE__*/ f({
10
+ title: {},
11
+ description: {},
12
+ confirmLabel: { default: "Confirm" },
13
+ cancelLabel: { default: "Cancel" },
14
+ danger: { type: Boolean },
15
+ side: { default: "bottom" },
16
+ align: {},
17
+ sideOffset: { default: 6 },
18
+ arrow: {
19
+ type: Boolean,
20
+ default: !0
21
+ },
22
+ unstyled: {
23
+ type: Boolean,
24
+ default: void 0
25
+ },
26
+ class: { type: [
27
+ String,
28
+ Boolean,
29
+ null,
30
+ Array
31
+ ] },
32
+ ui: {}
33
+ }, {
34
+ open: {
35
+ type: Boolean,
36
+ default: void 0
37
+ },
38
+ openModifiers: {}
39
+ }),
40
+ emits: /*@__PURE__*/ f(["confirm", "cancel"], ["update:open"]),
41
+ setup(d, { emit: f }) {
42
+ let y = d, b = f, x = _(d, "open");
43
+ function S() {
44
+ b("confirm"), x.value = !1;
45
+ }
46
+ function C() {
47
+ b("cancel"), x.value = !1;
48
+ }
49
+ let w = e(), T = i(() => y.unstyled ?? w.unstyled), E = i(() => n()), D = i(() => T.value ? y.ui?.description : E.value.description({ class: y.ui?.description })), O = i(() => T.value ? y.ui?.actions : E.value.actions({ class: y.ui?.actions }));
50
+ return (e, n) => (m(), a(r, {
51
+ open: x.value,
52
+ "onUpdate:open": n[0] ||= (e) => x.value = e,
53
+ side: y.side,
54
+ align: y.align,
55
+ "side-offset": y.sideOffset,
56
+ arrow: y.arrow,
57
+ padding: "sm",
58
+ width: "sm",
59
+ title: y.title,
60
+ unstyled: y.unstyled,
61
+ class: p(y.class),
62
+ ui: {
63
+ content: y.ui?.content,
64
+ title: y.ui?.title
65
+ }
66
+ }, {
67
+ trigger: v(() => [h(e.$slots, "trigger")]),
68
+ default: v(() => [y.description || e.$slots.description ? (m(), s("p", {
69
+ key: 0,
70
+ class: p(D.value)
71
+ }, [h(e.$slots, "description", {}, () => [l(g(y.description), 1)])], 2)) : o("", !0), c("div", { class: p(O.value) }, [u(t, {
72
+ size: "sm",
73
+ variant: "outline",
74
+ class: p(y.ui?.cancel),
75
+ onClick: C
76
+ }, {
77
+ default: v(() => [l(g(y.cancelLabel), 1)]),
78
+ _: 1
79
+ }, 8, ["class"]), u(t, {
80
+ size: "sm",
81
+ class: p([y.danger && "bg-danger bg-none text-danger-foreground hover:brightness-110", y.ui?.confirm]),
82
+ onClick: S
83
+ }, {
84
+ default: v(() => [l(g(y.confirmLabel), 1)]),
85
+ _: 1
86
+ }, 8, ["class"])], 2)]),
87
+ _: 3
88
+ }, 8, [
89
+ "open",
90
+ "side",
91
+ "align",
92
+ "side-offset",
93
+ "arrow",
94
+ "title",
95
+ "unstyled",
96
+ "class",
97
+ "ui"
98
+ ]));
99
+ }
100
+ });
101
+ //#endregion
102
+ export { y as default };
@@ -0,0 +1,5 @@
1
+ import e from "./DescriptionList.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/DescriptionList.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,50 @@
1
+ import type { ClassValue } from '../class-value';
2
+ export interface DescriptionListItem {
3
+ term: string;
4
+ description?: string | number;
5
+ /** Passed to the slots, so a row can be rendered by name rather than by index. */
6
+ key?: string;
7
+ }
8
+ export interface DescriptionListProps {
9
+ items?: DescriptionListItem[];
10
+ /** `horizontal` puts the term and the description side by side on one row. */
11
+ orientation?: 'vertical' | 'horizontal';
12
+ /** Separate the rows with a rule instead of whitespace. */
13
+ divided?: boolean;
14
+ /** Skip built-in classes; you take over styling entirely. */
15
+ unstyled?: boolean;
16
+ class?: ClassValue;
17
+ /** Override classes per element, e.g. `{ term: 'text-foreground' }`. */
18
+ ui?: {
19
+ root?: string;
20
+ item?: string;
21
+ term?: string;
22
+ description?: string;
23
+ };
24
+ }
25
+ declare var __VLS_8: {
26
+ item: DescriptionListItem;
27
+ index: number;
28
+ }, __VLS_10: {
29
+ item: DescriptionListItem;
30
+ index: number;
31
+ }, __VLS_12: {};
32
+ type __VLS_Slots = {} & {
33
+ term?: (props: typeof __VLS_8) => any;
34
+ } & {
35
+ description?: (props: typeof __VLS_10) => any;
36
+ } & {
37
+ default?: (props: typeof __VLS_12) => any;
38
+ };
39
+ declare const __VLS_base: import("vue").DefineComponent<DescriptionListProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DescriptionListProps> & Readonly<{}>, {
40
+ items: DescriptionListItem[];
41
+ unstyled: boolean;
42
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
43
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
44
+ declare const _default: typeof __VLS_export;
45
+ export default _default;
46
+ type __VLS_WithSlots<T, S> = T & {
47
+ new (): {
48
+ $slots: S;
49
+ };
50
+ };
@@ -0,0 +1,48 @@
1
+ import { useIryxUiConfig as e } from "../config.js";
2
+ import { descriptionListTheme as t } from "../theme/description-list.js";
3
+ import { Fragment as n, computed as r, createBlock as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, defineComponent as c, normalizeClass as l, openBlock as u, renderList as d, renderSlot as f, toDisplayString as p, unref as m, withCtx as h } from "vue";
4
+ import { Primitive as g } from "reka-ui";
5
+ //#region src/components/DescriptionList.vue?vue&type=script&setup=true&lang.ts
6
+ var _ = /*@__PURE__*/ c({
7
+ __name: "DescriptionList",
8
+ props: {
9
+ items: { default: () => [] },
10
+ orientation: {},
11
+ divided: { type: Boolean },
12
+ unstyled: {
13
+ type: Boolean,
14
+ default: void 0
15
+ },
16
+ class: { type: [
17
+ String,
18
+ Boolean,
19
+ null,
20
+ Array
21
+ ] },
22
+ ui: {}
23
+ },
24
+ setup(c) {
25
+ let _ = c, v = e(), y = r(() => _.unstyled ?? v.unstyled), b = r(() => t({
26
+ orientation: _.orientation,
27
+ divided: _.divided
28
+ })), x = r(() => y.value ? [_.ui?.root, _.class] : b.value.root({ class: [_.ui?.root, _.class] })), S = r(() => y.value ? _.ui?.item : b.value.item({ class: _.ui?.item })), C = r(() => y.value ? _.ui?.term : b.value.term({ class: _.ui?.term })), w = r(() => y.value ? _.ui?.description : b.value.description({ class: _.ui?.description }));
29
+ return (e, t) => (u(), i(m(g), {
30
+ as: "dl",
31
+ class: l(x.value)
32
+ }, {
33
+ default: h(() => [(u(!0), a(n, null, d(_.items, (t, n) => (u(), a("div", {
34
+ key: t.key ?? t.term,
35
+ class: l(S.value)
36
+ }, [o("dt", { class: l(C.value) }, [f(e.$slots, "term", {
37
+ item: t,
38
+ index: n
39
+ }, () => [s(p(t.term), 1)])], 2), o("dd", { class: l(w.value) }, [f(e.$slots, "description", {
40
+ item: t,
41
+ index: n
42
+ }, () => [s(p(t.description), 1)])], 2)], 2))), 128)), f(e.$slots, "default")]),
43
+ _: 3
44
+ }, 8, ["class"]));
45
+ }
46
+ });
47
+ //#endregion
48
+ export { _ as default };
@@ -19,8 +19,12 @@ export interface LineChartProps {
19
19
  /**
20
20
  * `area` adds a wash beneath the line. Ignored for multiple series, where
21
21
  * overlapping washes muddy into a colour that belongs to neither.
22
+ *
23
+ * `stacked` is the multi-series answer to that: each series sits on top of
24
+ * the one before it, so the bands abut instead of overlapping and the top
25
+ * edge reads as the total. It falls back to `area` for a single series.
22
26
  */
23
- variant?: 'line' | 'area';
27
+ variant?: 'line' | 'area' | 'stacked';
24
28
  /**
25
29
  * How much to curve the line, from `0` (straight segments between
26
30
  * readings) to `1` (fully rounded). Straight by default: a curve claims the
@@ -66,7 +70,7 @@ export interface LineChartProps {
66
70
  /** Skip built-in classes; you take over styling entirely. */
67
71
  unstyled?: boolean;
68
72
  class?: ClassValue;
69
- ui?: Partial<Record<'root' | 'svg' | 'grid' | 'tick' | 'category' | 'line' | 'area' | 'crosshair' | 'marker' | 'markerRing' | 'tooltip' | 'tooltipLabel' | 'tooltipValue' | 'table', string>>;
73
+ ui?: Partial<Record<'root' | 'svg' | 'grid' | 'tick' | 'category' | 'line' | 'area' | 'band' | 'crosshair' | 'marker' | 'markerRing' | 'tooltip' | 'tooltipLabel' | 'tooltipValue' | 'table', string>>;
70
74
  }
71
75
  declare var __VLS_6: {
72
76
  orientation: import("..").ChartOrientation;
@@ -105,7 +109,7 @@ type __VLS_Slots = {} & {
105
109
  overlay?: (props: typeof __VLS_8) => any;
106
110
  };
107
111
  declare const __VLS_base: import("vue").DefineComponent<LineChartProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LineChartProps> & Readonly<{}>, {
108
- variant: "line" | "area";
112
+ variant: "line" | "area" | "stacked";
109
113
  unstyled: boolean;
110
114
  data: readonly LineChartDatum[];
111
115
  legend: boolean;