@raylang/vue 0.5.2 → 0.7.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.
@@ -4,6 +4,6 @@ import "@raylang/elements/icon";
4
4
  import { createComponent } from "../create.js";
5
5
 
6
6
  export const RayIcon = /*#__PURE__*/ createComponent("RayIcon", "ray-icon", {
7
- properties: ["name", "size", "label", "color", "stroke"],
8
- booleans: [],
7
+ properties: ["name", "filled", "size", "label", "color", "stroke"],
8
+ booleans: ["filled"],
9
9
  });
@@ -4,7 +4,7 @@ import "@raylang/elements/number-input";
4
4
  import { createComponent } from "../create.js";
5
5
 
6
6
  export const RayNumberInput = /*#__PURE__*/ createComponent("RayNumberInput", "ray-number-input", {
7
- properties: ["value", "min", "max", "step", "decimals", "prefix", "suffix", "thousandsSeparator", "decimalSeparator", "clamp", "hideControls", "placeholder", "readonly", "name", "label", "description", "error", "required", "disabled", "size", "radius", "variant", "descriptionPosition"],
7
+ properties: ["value", "min", "max", "step", "decimals", "prefix", "suffix", "thousandsSeparator", "decimalSeparator", "clamp", "format", "hideControls", "placeholder", "readonly", "name", "label", "description", "error", "required", "disabled", "size", "radius", "variant", "descriptionPosition"],
8
8
  booleans: ["hideControls", "readonly", "required", "disabled"],
9
9
  model: { prop: "value", events: ["input"] },
10
10
  });
@@ -12,3 +12,7 @@ export const RayRadio = /*#__PURE__*/ createComponent("RayRadio", "ray-radio", {
12
12
  properties: ["value", "checked", "label", "description", "disabled", "color", "size", "variant"],
13
13
  booleans: ["checked", "disabled"],
14
14
  });
15
+ export const RayRadioCard = /*#__PURE__*/ createComponent("RayRadioCard", "ray-radio-card", {
16
+ properties: ["hideIndicator", "value", "checked", "label", "description", "disabled", "color", "size", "variant"],
17
+ booleans: ["hideIndicator", "checked", "disabled"],
18
+ });
@@ -0,0 +1,9 @@
1
+ // Generated by ray-elements tools from component.toml files. Do not edit.
2
+
3
+ import "@raylang/elements/ring-progress";
4
+ import { createComponent } from "../create.js";
5
+
6
+ export const RayRingProgress = /*#__PURE__*/ createComponent("RayRingProgress", "ray-ring-progress", {
7
+ properties: ["value", "max", "color", "size", "thickness", "roundCaps", "showValue", "label"],
8
+ booleans: ["roundCaps", "showValue"],
9
+ });
@@ -0,0 +1,9 @@
1
+ // Generated by ray-elements tools from component.toml files. Do not edit.
2
+
3
+ import "@raylang/elements/step-dots";
4
+ import { createComponent } from "../create.js";
5
+
6
+ export const RayStepDots = /*#__PURE__*/ createComponent("RayStepDots", "ray-step-dots", {
7
+ properties: ["count", "value", "color", "size", "align", "label", "valueText", "doneText"],
8
+ booleans: [],
9
+ });
package/index.d.ts CHANGED
@@ -19,8 +19,8 @@ export interface RayButtonProps {
19
19
  gradient?: string;
20
20
  /** A palette color (blue, red…) or any CSS color. Default: the primary color. */
21
21
  color?: string;
22
- /** Height, padding and font size. */
23
- size?: "xs" | "sm" | "md" | "lg" | "xl";
22
+ /** Height, padding and font size: xs…xl or any CSS length (the padding and the font follow). */
23
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | (string & {});
24
24
  /** Corner radius. Default: --ray-radius-default. */
25
25
  radius?: "xs" | "sm" | "md" | "lg" | "xl" | "full";
26
26
  /** submit/reset act on the enclosing form. */
@@ -63,8 +63,8 @@ export interface RayIconButtonProps {
63
63
  gradient?: string;
64
64
  /** A palette color or any CSS color. */
65
65
  color?: string;
66
- /** Width and height. */
67
- size?: "xs" | "sm" | "md" | "lg" | "xl";
66
+ /** Width and height: xs…xl or any CSS length ("5.5rem": a big main action, round with radius=full); the icon scales with it. */
67
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | (string & {});
68
68
  /** Not interactive. */
69
69
  disabled?: boolean;
70
70
  /** Shows a spinner instead of the icon. */
@@ -100,8 +100,8 @@ export interface RayToggleProps {
100
100
  gradient?: string;
101
101
  /** A palette color (blue, red…) or any CSS color. Default: the primary color. */
102
102
  color?: string;
103
- /** Height, padding and font size. */
104
- size?: "xs" | "sm" | "md" | "lg" | "xl";
103
+ /** Height, padding and font size: xs…xl or any CSS length (the padding and the font follow). */
104
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | (string & {});
105
105
  /** Corner radius. Default: --ray-radius-default. */
106
106
  radius?: "xs" | "sm" | "md" | "lg" | "xl" | "full";
107
107
  /** submit/reset act on the enclosing form. */
@@ -585,6 +585,8 @@ export interface RayNumberInputProps {
585
585
  decimalSeparator?: string;
586
586
  /** When out-of-range input is clamped: on blur, while typing, or never (then it is invalid). */
587
587
  clamp?: "blur" | "strict" | "none";
588
+ /** duration: the value is seconds, shown and typed as m:ss (h:mm:ss when min or max reaches an hour; a plain number is seconds); aria-valuetext says "3 minutes, 15 seconds" in the page's language. decimals, prefix, suffix and the separators do not apply. */
589
+ format?: "number" | "duration";
588
590
  /** No + and − buttons (the keys still step). */
589
591
  hideControls?: boolean;
590
592
  /** Shown while empty. */
@@ -815,6 +817,29 @@ export interface RayRadioProps {
815
817
  /** <ray-radio> as a Vue component. */
816
818
  export declare const RayRadio: DefineComponent<RayRadioProps>;
817
819
 
820
+ export interface RayRadioCardProps {
821
+ /** No radio circle: the card's border and background alone show the choice. */
822
+ hideIndicator?: boolean;
823
+ /** Value given to the group when chosen. */
824
+ value?: string;
825
+ /** Whether this radio is the group's value; setting it sets the group's value. The checked attribute marks the group's initial value (when the group has no value attribute). */
826
+ checked?: boolean;
827
+ /** Label text (or the content). */
828
+ label?: string;
829
+ /** Help text under the label. */
830
+ description?: string;
831
+ /** Cannot be chosen. */
832
+ disabled?: boolean;
833
+ /** Overrides the group color. */
834
+ color?: string;
835
+ /** Overrides the group size. */
836
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
837
+ /** Overrides the group variant. */
838
+ variant?: "filled" | "outline";
839
+ }
840
+ /** <ray-radio-card> as a Vue component. */
841
+ export declare const RayRadioCard: DefineComponent<RayRadioCardProps>;
842
+
818
843
  export interface RaySearchProps {
819
844
  /** Current text. */
820
845
  value?: string;
@@ -1104,8 +1129,8 @@ export interface RayBottomNavItemProps {
1104
1129
  value?: string;
1105
1130
  /** The label. */
1106
1131
  label?: string;
1107
- /** An icon of the registry (or put one in the icon slot). */
1108
- icon?: string;
1132
+ /** An icon of the registry, drawn filled on the current item when it has a filled version (or put one in the icon slot: yours, as it is). */
1133
+ icon?: Ray.IconName;
1109
1134
  /** Makes it a link. */
1110
1135
  href?: string;
1111
1136
  /** A count or a short text on the icon. */
@@ -1634,7 +1659,7 @@ export interface RayBlockquoteProps {
1634
1659
  /** light: tinted background; outline: border and edge only; filled: solid color (a pull quote). */
1635
1660
  variant?: "light" | "outline" | "filled";
1636
1661
  /** Registry icon of the mark, or none. The icon slot replaces it. */
1637
- icon?: string;
1662
+ icon?: Ray.IconName;
1638
1663
  /** Text size (lg for a pull quote). */
1639
1664
  size?: "sm" | "md" | "lg";
1640
1665
  /** Inner spacing: xs…xl (the spacing scale), px as a number, or a CSS length. Default: md. */
@@ -1711,7 +1736,9 @@ export declare const RayCode: DefineComponent<RayCodeProps>;
1711
1736
 
1712
1737
  export interface RayIconProps {
1713
1738
  /** Registered icon name (iconNames()); "none" draws nothing, a blank that keeps the alignment (a menu item without its check). */
1714
- name?: string;
1739
+ name?: Ray.IconName;
1740
+ /** The filled version, for a state (active, selected, favorite, unread); the outline icon when there is none. Built in: user, info, circle-check, alert-triangle, circle-x, folder, bell, star, settings, home, message-circle. */
1741
+ filled?: boolean;
1715
1742
  /** xs…xl or any CSS length. Default: 1em. */
1716
1743
  size?: string;
1717
1744
  /** Accessible name; without it the icon is decorative (hidden from screen readers). */
@@ -1845,7 +1872,7 @@ export interface RayTimelineItemProps {
1845
1872
  /** When ("2 h ago", a date). */
1846
1873
  time?: string;
1847
1874
  /** An icon of the registry in the bullet. */
1848
- icon?: string;
1875
+ icon?: Ray.IconName;
1849
1876
  /** Its own color (a failed step in red). */
1850
1877
  color?: string;
1851
1878
  /** The line to the next item (dashed: not happened yet). */
@@ -1864,7 +1891,7 @@ export interface RayAlertProps {
1864
1891
  /** Corner radius. */
1865
1892
  radius?: "xs" | "sm" | "md" | "lg" | "xl";
1866
1893
  /** A registered icon name, or none. */
1867
- icon?: string;
1894
+ icon?: Ray.IconName;
1868
1895
  /** A close button; closing hides the alert (cancel ray-close to keep it). */
1869
1896
  closable?: boolean;
1870
1897
  /** Accessible name of the close button. */
@@ -1892,7 +1919,7 @@ export interface RayNotificationProps {
1892
1919
  /** Status color: tints the status icon (and a slotted icon's circle). */
1893
1920
  color?: string;
1894
1921
  /** Status icon from the registry (default: from the color); "none" for no icon. */
1895
- icon?: string;
1922
+ icon?: Ray.IconName;
1896
1923
  /** Shows a spinner (notify() does not auto-close it). */
1897
1924
  loading?: boolean;
1898
1925
  /** No close button. */
@@ -1947,6 +1974,27 @@ export interface RayProgressProps {
1947
1974
  /** <ray-progress> as a Vue component. */
1948
1975
  export declare const RayProgress: DefineComponent<RayProgressProps>;
1949
1976
 
1977
+ export interface RayRingProgressProps {
1978
+ /** Progress, from 0 to max. Unset: indeterminate (a spinning arc). */
1979
+ value?: number;
1980
+ /** The value of a full ring. */
1981
+ max?: number;
1982
+ /** A palette color or any CSS color. Default: the primary color. */
1983
+ color?: string;
1984
+ /** Diameter: xs…xl (3, 5, 7.5, 10, 12.5rem) or any CSS length. */
1985
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | (string & {});
1986
+ /** Width of the ring: a CSS length (a bare number is px). Default: a tenth of the diameter. */
1987
+ thickness?: string;
1988
+ /** Rounded ends of the arc. */
1989
+ roundCaps?: boolean;
1990
+ /** Shows the percentage in the middle (when the default slot is empty). */
1991
+ showValue?: boolean;
1992
+ /** Accessible name (default: Progress). */
1993
+ label?: string;
1994
+ }
1995
+ /** <ray-ring-progress> as a Vue component. */
1996
+ export declare const RayRingProgress: DefineComponent<RayRingProgressProps>;
1997
+
1950
1998
  export interface RaySkeletonProps {
1951
1999
  /** Width (CSS length, a number is px). Default: 100% (a circle: 2.5rem). */
1952
2000
  width?: string;
@@ -1977,6 +2025,27 @@ export interface RaySpinnerProps {
1977
2025
  /** <ray-spinner> as a Vue component. */
1978
2026
  export declare const RaySpinner: DefineComponent<RaySpinnerProps>;
1979
2027
 
2028
+ export interface RayStepDotsProps {
2029
+ /** Number of steps (dots). */
2030
+ count?: number;
2031
+ /** The current step, 0-based; count means every step is done. */
2032
+ value?: number;
2033
+ /** A palette color or any CSS color for done and current dots. Default: the primary color. */
2034
+ color?: string;
2035
+ /** Size of a dot. */
2036
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
2037
+ /** Where the row sits in its width. */
2038
+ align?: "start" | "center" | "end";
2039
+ /** What a step is called: "Round" is announced "Round 4 of 12" and names the element. Default: Step (named Steps). In another language, use value-text. */
2040
+ label?: string;
2041
+ /** The announced text, {step} (the current one, from 1) and {count} replaced, numbers in the page's language: value-text="Asalto {step} de {count}". Default: "<label> {step} of {count}". */
2042
+ valueText?: string;
2043
+ /** The announced text once every step is done (value = count), with {count}. Default: value-text, else "{count} of {count}, done". */
2044
+ doneText?: string;
2045
+ }
2046
+ /** <ray-step-dots> as a Vue component. */
2047
+ export declare const RayStepDots: DefineComponent<RayStepDotsProps>;
2048
+
1980
2049
  export interface RayAppBarProps {
1981
2050
  /** The title. */
1982
2051
  label?: string;
@@ -2200,6 +2269,7 @@ export declare const components: {
2200
2269
  RayPathInput: typeof RayPathInput;
2201
2270
  RayRadioGroup: typeof RayRadioGroup;
2202
2271
  RayRadio: typeof RayRadio;
2272
+ RayRadioCard: typeof RayRadioCard;
2203
2273
  RaySearch: typeof RaySearch;
2204
2274
  RaySegmentedControl: typeof RaySegmentedControl;
2205
2275
  RaySelect: typeof RaySelect;
@@ -2249,8 +2319,10 @@ export declare const components: {
2249
2319
  RayNotification: typeof RayNotification;
2250
2320
  RayToaster: typeof RayToaster;
2251
2321
  RayProgress: typeof RayProgress;
2322
+ RayRingProgress: typeof RayRingProgress;
2252
2323
  RaySkeleton: typeof RaySkeleton;
2253
2324
  RaySpinner: typeof RaySpinner;
2325
+ RayStepDots: typeof RayStepDots;
2254
2326
  RayAppBar: typeof RayAppBar;
2255
2327
  RayAppShell: typeof RayAppShell;
2256
2328
  RayAspectRatio: typeof RayAspectRatio;
@@ -2292,6 +2364,7 @@ declare module "vue" {
2292
2364
  RayPathInput: typeof RayPathInput;
2293
2365
  RayRadioGroup: typeof RayRadioGroup;
2294
2366
  RayRadio: typeof RayRadio;
2367
+ RayRadioCard: typeof RayRadioCard;
2295
2368
  RaySearch: typeof RaySearch;
2296
2369
  RaySegmentedControl: typeof RaySegmentedControl;
2297
2370
  RaySelect: typeof RaySelect;
@@ -2341,8 +2414,10 @@ declare module "vue" {
2341
2414
  RayNotification: typeof RayNotification;
2342
2415
  RayToaster: typeof RayToaster;
2343
2416
  RayProgress: typeof RayProgress;
2417
+ RayRingProgress: typeof RayRingProgress;
2344
2418
  RaySkeleton: typeof RaySkeleton;
2345
2419
  RaySpinner: typeof RaySpinner;
2420
+ RayStepDots: typeof RayStepDots;
2346
2421
  RayAppBar: typeof RayAppBar;
2347
2422
  RayAppShell: typeof RayAppShell;
2348
2423
  RayAspectRatio: typeof RayAspectRatio;
package/index.js CHANGED
@@ -19,7 +19,7 @@ import { RayInput } from "./components/input.js";
19
19
  import { RayNumberInput } from "./components/number-input.js";
20
20
  import { RayPasswordInput } from "./components/password-input.js";
21
21
  import { RayPathInput } from "./components/path-input.js";
22
- import { RayRadioGroup, RayRadio } from "./components/radio.js";
22
+ import { RayRadioGroup, RayRadio, RayRadioCard } from "./components/radio.js";
23
23
  import { RaySearch } from "./components/search.js";
24
24
  import { RaySegmentedControl } from "./components/segmented-control.js";
25
25
  import { RaySelect } from "./components/select.js";
@@ -56,8 +56,10 @@ import { RayAlert } from "./components/alert.js";
56
56
  import { RayEmptyState } from "./components/empty-state.js";
57
57
  import { RayNotification, RayToaster } from "./components/notification.js";
58
58
  import { RayProgress } from "./components/progress.js";
59
+ import { RayRingProgress } from "./components/ring-progress.js";
59
60
  import { RaySkeleton } from "./components/skeleton.js";
60
61
  import { RaySpinner } from "./components/spinner.js";
62
+ import { RayStepDots } from "./components/step-dots.js";
61
63
  import { RayAppBar } from "./components/app-bar.js";
62
64
  import { RayAppShell } from "./components/app-shell.js";
63
65
  import { RayAspectRatio } from "./components/aspect-ratio.js";
@@ -75,9 +77,9 @@ import { RayThemeToggle } from "./components/theme-toggle.js";
75
77
 
76
78
  // The factories, to wrap your own custom elements the same way.
77
79
  export { createComponent, createPlugin } from "./create.js";
78
- export { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RaySkeleton, RaySpinner, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
80
+ export { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RayRadioCard, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RayRingProgress, RaySkeleton, RaySpinner, RayStepDots, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
79
81
 
80
- export const components = { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RaySkeleton, RaySpinner, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
82
+ export const components = { RayButton, RayButtonGroup, RayIconButton, RayToggle, RayToggleGroup, RayCheckbox, RayCheckboxGroup, RayColorPicker, RayColorInput, RayCombobox, RayDatePicker, RayCalendar, RayFileUpload, RayInput, RayNumberInput, RayPasswordInput, RayPathInput, RayRadioGroup, RayRadio, RayRadioCard, RaySearch, RaySegmentedControl, RaySelect, RaySlider, RaySwitch, RayTextarea, RayBottomNav, RayBottomNavItem, RayBreadcrumbs, RayBreadcrumb, RayNavLink, RayPagination, RaySidebar, RaySidebarGroup, RayStepper, RayStep, RayTabs, RayTab, RayTabPanel, RayCommandPalette, RayDialog, RayDrawer, RayMenu, RayMenuItem, RayMenuLabel, RayMenuDivider, RayPopover, RayTooltip, RayAccordion, RayAccordionItem, RayAttachment, RayAttachments, RayAvatar, RayBadge, RayBlockquote, RayCarousel, RayCode, RayIcon, RayIndicator, RayKbd, RayStat, RayTable, RayTimeline, RayTimelineItem, RayAlert, RayEmptyState, RayNotification, RayToaster, RayProgress, RayRingProgress, RaySkeleton, RaySpinner, RayStepDots, RayAppBar, RayAppShell, RayAspectRatio, RayCard, RayCenter, RayContainer, RayGrid, RayGroup, RayScrollArea, RaySeparator, RaySplit, RayStack, RayStatusbar, RayStatusbarItem, RayThemeToggle };
81
83
 
82
84
  /** app.use(RayElements) registers every component globally. */
83
85
  export const RayElements = /*#__PURE__*/ createPlugin(components);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raylang/vue",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "Vue 3 wrappers (with v-model) of the ray-elements web components",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": ["web-components", "design-system", "ui", "raylang", "vue"],
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "sideEffects": false,
30
30
  "peerDependencies": {
31
- "@raylang/elements": "^0.5.2",
31
+ "@raylang/elements": "^0.7.0",
32
32
  "vue": ">=3.3"
33
33
  }
34
34
  }