@byyuurin/ui 0.2.0 → 0.4.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 (137) hide show
  1. package/README.md +5 -3
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +2 -2
  4. package/dist/runtime/components/Accordion.vue +2 -2
  5. package/dist/runtime/components/Accordion.vue.d.ts +11 -7
  6. package/dist/runtime/components/Alert.vue +2 -1
  7. package/dist/runtime/components/Alert.vue.d.ts +4 -4
  8. package/dist/runtime/components/App.vue +2 -1
  9. package/dist/runtime/components/App.vue.d.ts +11 -7
  10. package/dist/runtime/components/Avatar.vue +2 -1
  11. package/dist/runtime/components/Avatar.vue.d.ts +4 -3
  12. package/dist/runtime/components/AvatarGroup.vue +2 -1
  13. package/dist/runtime/components/AvatarGroup.vue.d.ts +1 -1
  14. package/dist/runtime/components/Badge.vue +4 -3
  15. package/dist/runtime/components/Badge.vue.d.ts +2 -2
  16. package/dist/runtime/components/Breadcrumb.vue +2 -2
  17. package/dist/runtime/components/Breadcrumb.vue.d.ts +10 -6
  18. package/dist/runtime/components/Button.vue +8 -8
  19. package/dist/runtime/components/Button.vue.d.ts +1 -1
  20. package/dist/runtime/components/Calendar.vue +2 -1
  21. package/dist/runtime/components/Calendar.vue.d.ts +16 -12
  22. package/dist/runtime/components/Card.vue +2 -1
  23. package/dist/runtime/components/Card.vue.d.ts +1 -1
  24. package/dist/runtime/components/Carousel.vue +2 -1
  25. package/dist/runtime/components/Carousel.vue.d.ts +14 -10
  26. package/dist/runtime/components/Checkbox.vue +4 -2
  27. package/dist/runtime/components/Checkbox.vue.d.ts +4 -3
  28. package/dist/runtime/components/CheckboxGroup.vue +4 -3
  29. package/dist/runtime/components/CheckboxGroup.vue.d.ts +11 -7
  30. package/dist/runtime/components/Chip.vue +5 -1
  31. package/dist/runtime/components/Chip.vue.d.ts +2 -2
  32. package/dist/runtime/components/Collapsible.vue +2 -1
  33. package/dist/runtime/components/Collapsible.vue.d.ts +2 -2
  34. package/dist/runtime/components/Drawer.vue +2 -1
  35. package/dist/runtime/components/Drawer.vue.d.ts +6 -6
  36. package/dist/runtime/components/DropdownMenu.vue +3 -3
  37. package/dist/runtime/components/DropdownMenu.vue.d.ts +17 -9
  38. package/dist/runtime/components/DropdownMenuContent.vue +11 -12
  39. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +11 -7
  40. package/dist/runtime/components/FieldGroup.vue +2 -1
  41. package/dist/runtime/components/FieldGroup.vue.d.ts +2 -2
  42. package/dist/runtime/components/FileUpload.vue +267 -0
  43. package/dist/runtime/components/FileUpload.vue.d.ts +178 -0
  44. package/dist/runtime/components/Form.vue +2 -1
  45. package/dist/runtime/components/Form.vue.d.ts +13 -8
  46. package/dist/runtime/components/FormField.vue +6 -4
  47. package/dist/runtime/components/FormField.vue.d.ts +7 -2
  48. package/dist/runtime/components/Icon.vue.d.ts +1 -1
  49. package/dist/runtime/components/Input.vue +4 -4
  50. package/dist/runtime/components/Input.vue.d.ts +16 -12
  51. package/dist/runtime/components/InputNumber.vue +3 -2
  52. package/dist/runtime/components/InputNumber.vue.d.ts +128 -124
  53. package/dist/runtime/components/InputTags.vue +2 -1
  54. package/dist/runtime/components/InputTags.vue.d.ts +16 -11
  55. package/dist/runtime/components/Kbd.vue +2 -1
  56. package/dist/runtime/components/Kbd.vue.d.ts +2 -2
  57. package/dist/runtime/components/Link.vue +5 -3
  58. package/dist/runtime/components/Link.vue.d.ts +16 -6
  59. package/dist/runtime/components/LinkBase.vue.d.ts +2 -2
  60. package/dist/runtime/components/Marquee.vue +2 -1
  61. package/dist/runtime/components/Marquee.vue.d.ts +3 -3
  62. package/dist/runtime/components/Modal.vue +3 -2
  63. package/dist/runtime/components/Modal.vue.d.ts +6 -6
  64. package/dist/runtime/components/NavigationMenu.vue +2 -2
  65. package/dist/runtime/components/NavigationMenu.vue.d.ts +11 -7
  66. package/dist/runtime/components/Pagination.vue +2 -1
  67. package/dist/runtime/components/Pagination.vue.d.ts +4 -4
  68. package/dist/runtime/components/PinInput.vue +4 -4
  69. package/dist/runtime/components/PinInput.vue.d.ts +14 -10
  70. package/dist/runtime/components/Popover.vue +1 -1
  71. package/dist/runtime/components/Popover.vue.d.ts +11 -7
  72. package/dist/runtime/components/Progress.vue +2 -1
  73. package/dist/runtime/components/Progress.vue.d.ts +2 -2
  74. package/dist/runtime/components/RadioGroup.vue +3 -3
  75. package/dist/runtime/components/RadioGroup.vue.d.ts +11 -7
  76. package/dist/runtime/components/ScrollArea.vue +2 -1
  77. package/dist/runtime/components/ScrollArea.vue.d.ts +2 -2
  78. package/dist/runtime/components/Select.vue +282 -131
  79. package/dist/runtime/components/Select.vue.d.ts +103 -123
  80. package/dist/runtime/components/Separator.vue +2 -1
  81. package/dist/runtime/components/Separator.vue.d.ts +2 -2
  82. package/dist/runtime/components/Skeleton.vue +2 -1
  83. package/dist/runtime/components/Skeleton.vue.d.ts +2 -2
  84. package/dist/runtime/components/Slider.vue +2 -1
  85. package/dist/runtime/components/Slider.vue.d.ts +11 -7
  86. package/dist/runtime/components/Stepper.vue +117 -0
  87. package/dist/runtime/components/Stepper.vue.d.ts +83 -0
  88. package/dist/runtime/components/Switch.vue +3 -4
  89. package/dist/runtime/components/Switch.vue.d.ts +4 -3
  90. package/dist/runtime/components/Table.vue +2 -1
  91. package/dist/runtime/components/Table.vue.d.ts +13 -8
  92. package/dist/runtime/components/Tabs.vue +2 -2
  93. package/dist/runtime/components/Tabs.vue.d.ts +12 -8
  94. package/dist/runtime/components/Textarea.vue +3 -3
  95. package/dist/runtime/components/Textarea.vue.d.ts +16 -11
  96. package/dist/runtime/components/Timeline.vue +2 -1
  97. package/dist/runtime/components/Timeline.vue.d.ts +11 -7
  98. package/dist/runtime/components/Toast.vue +2 -1
  99. package/dist/runtime/components/Toast.vue.d.ts +5 -5
  100. package/dist/runtime/components/ToastProvider.vue +2 -2
  101. package/dist/runtime/components/ToastProvider.vue.d.ts +3 -3
  102. package/dist/runtime/components/Tooltip.vue +4 -4
  103. package/dist/runtime/components/Tooltip.vue.d.ts +2 -2
  104. package/dist/runtime/components/Tree.vue +241 -0
  105. package/dist/runtime/components/Tree.vue.d.ts +121 -0
  106. package/dist/runtime/composables/defineShortcuts.d.ts +1 -0
  107. package/dist/runtime/composables/defineShortcuts.js +44 -8
  108. package/dist/runtime/composables/useFileUpload.d.ts +19 -0
  109. package/dist/runtime/composables/useFileUpload.js +79 -0
  110. package/dist/runtime/composables/useLocale.d.ts +18 -0
  111. package/dist/runtime/locale/en.d.ts +9 -0
  112. package/dist/runtime/locale/en.js +9 -0
  113. package/dist/runtime/locale/zh_tw.d.ts +9 -0
  114. package/dist/runtime/locale/zh_tw.js +9 -0
  115. package/dist/runtime/types/html.d.ts +8 -0
  116. package/dist/runtime/types/html.js +0 -0
  117. package/dist/runtime/types/index.d.ts +3 -0
  118. package/dist/runtime/types/index.js +3 -0
  119. package/dist/runtime/types/input.d.ts +5 -5
  120. package/dist/runtime/types/locale.d.ts +9 -0
  121. package/dist/runtime/types/utils.d.ts +4 -4
  122. package/dist/runtime/utils/index.d.ts +3 -3
  123. package/dist/runtime/utils/link.d.ts +2 -1
  124. package/dist/runtime/utils/link.js +40 -29
  125. package/dist/runtime/vue/components/Icon.vue.d.ts +1 -1
  126. package/dist/runtime/vue/components/Link.vue +7 -12
  127. package/dist/runtime/vue/components/Link.vue.d.ts +11 -40
  128. package/dist/setup.d.mts +1 -1
  129. package/dist/shared/{ui.DpbffTXs.d.mts → ui.CGCKYv7g.d.mts} +6 -2
  130. package/dist/shared/{ui.CzIlLITK.mjs → ui.DYMXCXO6.mjs} +9 -5
  131. package/dist/shared/{ui.DLOxhmP0.mjs → ui.DcEKQd0n.mjs} +490 -20
  132. package/dist/unocss.mjs +1 -1
  133. package/dist/unplugin.d.mts +1 -1
  134. package/dist/unplugin.mjs +2 -2
  135. package/dist/vite.d.mts +1 -1
  136. package/dist/vite.mjs +2 -2
  137. package/package.json +31 -31
@@ -1,14 +1,14 @@
1
1
  import type { VariantProps } from '@byyuurin/ui-kit';
2
2
  import type { PrimitiveProps } from 'reka-ui';
3
- import type { InputHTMLAttributes } from 'vue';
4
3
  import theme from '#build/ui/input';
5
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
6
5
  import type { ComponentBaseProps, ComponentStyler, ComponentUIProps } from '../types';
6
+ import type { InputHTMLAttributes } from '../types/html';
7
7
  import type { ModelModifiers } from '../types/input';
8
8
  import type { AcceptableValue, MaybeNull, StaticSlot } from '../types/utils';
9
9
  export type InputValue = AcceptableValue;
10
10
  type ThemeVariants = VariantProps<typeof theme>;
11
- export interface InputProps<T extends InputValue = InputValue> extends ComponentBaseProps, UseComponentIconsProps {
11
+ export interface InputProps<T extends InputValue = InputValue> extends ComponentBaseProps, UseComponentIconsProps, /** @vue-ignore */ Omit<InputHTMLAttributes, 'name' | 'type' | 'placeholder' | 'required' | 'autocomplete' | 'autofocus' | 'disabled'> {
12
12
  /**
13
13
  * The element or component this component should render as.
14
14
  * @default "div"
@@ -35,7 +35,7 @@ export interface InputProps<T extends InputValue = InputValue> extends Component
35
35
  disabled?: boolean;
36
36
  defaultValue?: T;
37
37
  modelValue?: T;
38
- modelModifiers?: ModelModifiers;
38
+ modelModifiers?: ModelModifiers<T>;
39
39
  ui?: ComponentUIProps<typeof theme>;
40
40
  }
41
41
  export interface InputEmits<T extends InputValue> {
@@ -54,23 +54,27 @@ export interface InputSlots {
54
54
  ui: ComponentStyler<typeof theme>;
55
55
  }>;
56
56
  }
57
- declare const __VLS_export: <T extends InputValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
58
- props: __VLS_PrettifyLocal<InputProps<T> & {
59
- onChange?: ((event: Event) => any) | undefined;
57
+ declare const _default: typeof __VLS_export;
58
+ export default _default;
59
+ declare const __VLS_export: <T extends InputValue>(__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<{
60
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<InputProps<T> & {
60
61
  onBlur?: ((event: FocusEvent) => any) | undefined;
62
+ onChange?: ((event: Event) => any) | undefined;
61
63
  "onUpdate:modelValue"?: ((value: T) => any) | undefined;
62
- }> & import("vue").PublicProps;
64
+ }> & (typeof globalThis extends {
65
+ __VLS_PROPS_FALLBACK: infer P;
66
+ } ? P : {});
63
67
  expose: (exposed: import("vue").ShallowUnwrapRef<{
64
68
  inputRef: import("vue").Ref<MaybeNull<HTMLInputElement>, MaybeNull<HTMLInputElement>>;
65
69
  }>) => void;
66
70
  attrs: any;
67
71
  slots: InputSlots;
68
- emit: ((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "update:modelValue", value: T) => void);
72
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: T) => void);
69
73
  }>) => import("vue").VNode & {
70
74
  __ctx?: Awaited<typeof __VLS_setup>;
71
75
  };
72
- declare const _default: typeof __VLS_export;
73
- export default _default;
74
- type __VLS_PrettifyLocal<T> = {
76
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
77
+ [K in keyof T]: T[K];
78
+ } : {
75
79
  [K in keyof T as K]: T[K];
76
- } & {};
80
+ }) & {};
@@ -10,6 +10,7 @@ import { useAppConfig } from "#imports";
10
10
  import { useFieldGroup } from "../composables/useFieldGroup";
11
11
  import { useFormField } from "../composables/useFormField";
12
12
  import { useLocale } from "../composables/useLocale";
13
+ import { pick } from "../utils";
13
14
  import { cv, merge } from "../utils/style";
14
15
  import Button from "./Button.vue";
15
16
  defineOptions({ inheritAttrs: false });
@@ -58,9 +59,9 @@ const appConfig = useAppConfig();
58
59
  const ui = computed(() => {
59
60
  const styler = cv(merge(theme, appConfig.ui.inputNumber));
60
61
  return styler({
61
- ...props,
62
- size: fieldGroupSize.value || formFieldSize.value,
62
+ ...pick(props, ["variant", "orientation", "disabled"]),
63
63
  color: color.value,
64
+ size: fieldGroupSize.value || formFieldSize.value,
64
65
  highlight: highlight.value,
65
66
  fieldGroup: orientation.value,
66
67
  increment: props.orientation === "vertical" ? !!props.increment || !!props.decrement : !!props.increment,
@@ -1,11 +1,13 @@
1
1
  import type { VariantProps } from '@byyuurin/ui-kit';
2
2
  import type { NumberFieldRootProps } from 'reka-ui';
3
3
  import theme from '#build/ui/input-number';
4
- import type { ButtonProps, ComponentBaseProps, ComponentUIProps, IconProps } from '../types';
4
+ import type { ButtonProps, ComponentBaseProps, ComponentUIProps, IconProps, LinkPropsKeys } from '../types';
5
+ import type { InputHTMLAttributes } from '../types/html';
5
6
  import type { ModelModifiers } from '../types/input';
6
7
  import type { MaybeNull, StaticSlot } from '../types/utils';
7
8
  type ThemeVariants = VariantProps<typeof theme>;
8
- export interface InputNumberProps extends ComponentBaseProps, Pick<NumberFieldRootProps, 'modelValue' | 'defaultValue' | 'min' | 'max' | 'step' | 'stepSnapping' | 'disabled' | 'required' | 'id' | 'name' | 'formatOptions' | 'disableWheelChange' | 'invertWheelChange' | 'readonly'> {
9
+ type InputNumberValue = MaybeNull<number>;
10
+ export interface InputNumberProps<T extends InputNumberValue = InputNumberValue> extends ComponentBaseProps, Pick<NumberFieldRootProps, 'modelValue' | 'defaultValue' | 'min' | 'max' | 'step' | 'stepSnapping' | 'disabled' | 'required' | 'id' | 'name' | 'formatOptions' | 'disableWheelChange' | 'invertWheelChange' | 'readonly'>, /** @vue-ignore */ Omit<InputHTMLAttributes, 'disabled' | 'min' | 'max' | 'readonly' | 'required' | 'step' | 'name' | 'placeholder'> {
9
11
  /**
10
12
  * The element or component this component should render as.
11
13
  * @default "div"
@@ -30,7 +32,7 @@ export interface InputNumberProps extends ComponentBaseProps, Pick<NumberFieldRo
30
32
  * Configure the increment button. The `color` and `size` are inherited.
31
33
  * @default { variant: 'link' }
32
34
  */
33
- increment?: boolean | ButtonProps;
35
+ increment?: boolean | Omit<ButtonProps, LinkPropsKeys>;
34
36
  /**
35
37
  * The icon displayed to increment the value.
36
38
  * @default app.icons.plus
@@ -42,7 +44,7 @@ export interface InputNumberProps extends ComponentBaseProps, Pick<NumberFieldRo
42
44
  * Configure the decrement button. The `color` and `size` are inherited.
43
45
  * @default { variant: 'link' }
44
46
  */
45
- decrement?: boolean | ButtonProps;
47
+ decrement?: boolean | Omit<ButtonProps, LinkPropsKeys>;
46
48
  /**
47
49
  * The icon displayed to decrement the value.
48
50
  * @default app.icons.minus
@@ -52,11 +54,11 @@ export interface InputNumberProps extends ComponentBaseProps, Pick<NumberFieldRo
52
54
  decrementDisabled?: boolean;
53
55
  autofocus?: boolean;
54
56
  autofocusDelay?: number;
55
- modelModifiers?: Pick<ModelModifiers, 'optional'>;
57
+ modelModifiers?: Pick<ModelModifiers<T>, 'optional'>;
56
58
  ui?: ComponentUIProps<typeof theme>;
57
59
  }
58
- export interface InputNumberEmits {
59
- 'update:modelValue': [value: number];
60
+ export interface InputNumberEmits<T extends InputNumberValue = InputNumberValue> {
61
+ 'update:modelValue': [value: T];
60
62
  'blur': [event: FocusEvent];
61
63
  'change': [event: Event];
62
64
  }
@@ -64,123 +66,125 @@ export interface InputNumberSlots {
64
66
  increment: StaticSlot;
65
67
  decrement: StaticSlot;
66
68
  }
67
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<InputNumberProps, {
68
- inputRef: import("vue").Ref<MaybeNull<{
69
- $: import("vue").ComponentInternalInstance;
70
- $data: {};
71
- $props: {
72
- readonly asChild?: boolean | undefined;
73
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
74
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
75
- $attrs: {
76
- [x: string]: unknown;
77
- };
78
- $refs: {
79
- [x: string]: unknown;
80
- };
81
- $slots: Readonly<{
82
- [name: string]: import("vue").Slot<any> | undefined;
83
- }>;
84
- $root: import("vue").ComponentPublicInstance | null;
85
- $parent: import("vue").ComponentPublicInstance | null;
86
- $host: Element | null;
87
- $emit: (event: string, ...args: any[]) => void;
88
- $el: any;
89
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
90
- as: import("reka-ui").AsTag | import("vue").Component;
91
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
92
- beforeCreate?: (() => void) | (() => void)[];
93
- created?: (() => void) | (() => void)[];
94
- beforeMount?: (() => void) | (() => void)[];
95
- mounted?: (() => void) | (() => void)[];
96
- beforeUpdate?: (() => void) | (() => void)[];
97
- updated?: (() => void) | (() => void)[];
98
- activated?: (() => void) | (() => void)[];
99
- deactivated?: (() => void) | (() => void)[];
100
- beforeDestroy?: (() => void) | (() => void)[];
101
- beforeUnmount?: (() => void) | (() => void)[];
102
- destroyed?: (() => void) | (() => void)[];
103
- unmounted?: (() => void) | (() => void)[];
104
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
105
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
106
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
107
- };
108
- $forceUpdate: () => void;
109
- $nextTick: typeof import("vue").nextTick;
110
- $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
111
- } & Readonly<{
112
- as: import("reka-ui").AsTag | import("vue").Component;
113
- }> & Omit<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
114
- $slots: {
115
- default?: (props: {}) => any;
116
- };
117
- }>, MaybeNull<{
118
- $: import("vue").ComponentInternalInstance;
119
- $data: {};
120
- $props: {
121
- readonly asChild?: boolean | undefined;
122
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
123
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
124
- $attrs: {
125
- [x: string]: unknown;
126
- };
127
- $refs: {
128
- [x: string]: unknown;
129
- };
130
- $slots: Readonly<{
131
- [name: string]: import("vue").Slot<any> | undefined;
132
- }>;
133
- $root: import("vue").ComponentPublicInstance | null;
134
- $parent: import("vue").ComponentPublicInstance | null;
135
- $host: Element | null;
136
- $emit: (event: string, ...args: any[]) => void;
137
- $el: any;
138
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
139
- as: import("reka-ui").AsTag | import("vue").Component;
140
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
141
- beforeCreate?: (() => void) | (() => void)[];
142
- created?: (() => void) | (() => void)[];
143
- beforeMount?: (() => void) | (() => void)[];
144
- mounted?: (() => void) | (() => void)[];
145
- beforeUpdate?: (() => void) | (() => void)[];
146
- updated?: (() => void) | (() => void)[];
147
- activated?: (() => void) | (() => void)[];
148
- deactivated?: (() => void) | (() => void)[];
149
- beforeDestroy?: (() => void) | (() => void)[];
150
- beforeUnmount?: (() => void) | (() => void)[];
151
- destroyed?: (() => void) | (() => void)[];
152
- unmounted?: (() => void) | (() => void)[];
153
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
154
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
155
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
156
- };
157
- $forceUpdate: () => void;
158
- $nextTick: typeof import("vue").nextTick;
159
- $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
160
- } & Readonly<{
161
- as: import("reka-ui").AsTag | import("vue").Component;
162
- }> & Omit<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
163
- $slots: {
164
- default?: (props: {}) => any;
165
- };
166
- }>>;
167
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
168
- change: (event: Event) => any;
169
- blur: (event: FocusEvent) => any;
170
- "update:modelValue": (value: number) => any;
171
- }, string, import("vue").PublicProps, Readonly<InputNumberProps> & Readonly<{
172
- onChange?: ((event: Event) => any) | undefined;
173
- onBlur?: ((event: FocusEvent) => any) | undefined;
174
- "onUpdate:modelValue"?: ((value: number) => any) | undefined;
175
- }>, {
176
- orientation: "horizontal" | "vertical";
177
- increment: boolean | ButtonProps;
178
- decrement: boolean | ButtonProps;
179
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, InputNumberSlots>;
180
69
  declare const _default: typeof __VLS_export;
181
70
  export default _default;
182
- type __VLS_WithSlots<T, S> = T & {
183
- new (): {
184
- $slots: S;
185
- };
71
+ declare const __VLS_export: <T extends InputNumberValue = InputNumberValue>(__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<{
72
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<InputNumberProps<T> & {
73
+ onBlur?: ((event: FocusEvent) => any) | undefined;
74
+ onChange?: ((event: Event) => any) | undefined;
75
+ "onUpdate:modelValue"?: ((value: T) => any) | undefined;
76
+ }> & (typeof globalThis extends {
77
+ __VLS_PROPS_FALLBACK: infer P;
78
+ } ? P : {});
79
+ expose: (exposed: import("vue").ShallowUnwrapRef<{
80
+ inputRef: import("vue").Ref<MaybeNull<{
81
+ $: import("vue").ComponentInternalInstance;
82
+ $data: {};
83
+ $props: {
84
+ readonly asChild?: boolean | undefined;
85
+ readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
86
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
87
+ $attrs: {
88
+ [x: string]: unknown;
89
+ };
90
+ $refs: {
91
+ [x: string]: unknown;
92
+ };
93
+ $slots: Readonly<{
94
+ [name: string]: import("vue").Slot<any> | undefined;
95
+ }>;
96
+ $root: import("vue").ComponentPublicInstance | null;
97
+ $parent: import("vue").ComponentPublicInstance | null;
98
+ $host: Element | null;
99
+ $emit: (event: string, ...args: any[]) => void;
100
+ $el: any;
101
+ $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
102
+ as: import("reka-ui").AsTag | import("vue").Component;
103
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
104
+ beforeCreate?: (() => void) | (() => void)[];
105
+ created?: (() => void) | (() => void)[];
106
+ beforeMount?: (() => void) | (() => void)[];
107
+ mounted?: (() => void) | (() => void)[];
108
+ beforeUpdate?: (() => void) | (() => void)[];
109
+ updated?: (() => void) | (() => void)[];
110
+ activated?: (() => void) | (() => void)[];
111
+ deactivated?: (() => void) | (() => void)[];
112
+ beforeDestroy?: (() => void) | (() => void)[];
113
+ beforeUnmount?: (() => void) | (() => void)[];
114
+ destroyed?: (() => void) | (() => void)[];
115
+ unmounted?: (() => void) | (() => void)[];
116
+ renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
117
+ renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
118
+ errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
119
+ };
120
+ $forceUpdate: () => void;
121
+ $nextTick: typeof import("vue").nextTick;
122
+ $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
123
+ } & Readonly<{
124
+ as: import("reka-ui").AsTag | import("vue").Component;
125
+ }> & Omit<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
126
+ $slots: {
127
+ default?: (props: {}) => any;
128
+ };
129
+ }>, MaybeNull<{
130
+ $: import("vue").ComponentInternalInstance;
131
+ $data: {};
132
+ $props: {
133
+ readonly asChild?: boolean | undefined;
134
+ readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
135
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
136
+ $attrs: {
137
+ [x: string]: unknown;
138
+ };
139
+ $refs: {
140
+ [x: string]: unknown;
141
+ };
142
+ $slots: Readonly<{
143
+ [name: string]: import("vue").Slot<any> | undefined;
144
+ }>;
145
+ $root: import("vue").ComponentPublicInstance | null;
146
+ $parent: import("vue").ComponentPublicInstance | null;
147
+ $host: Element | null;
148
+ $emit: (event: string, ...args: any[]) => void;
149
+ $el: any;
150
+ $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
151
+ as: import("reka-ui").AsTag | import("vue").Component;
152
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
153
+ beforeCreate?: (() => void) | (() => void)[];
154
+ created?: (() => void) | (() => void)[];
155
+ beforeMount?: (() => void) | (() => void)[];
156
+ mounted?: (() => void) | (() => void)[];
157
+ beforeUpdate?: (() => void) | (() => void)[];
158
+ updated?: (() => void) | (() => void)[];
159
+ activated?: (() => void) | (() => void)[];
160
+ deactivated?: (() => void) | (() => void)[];
161
+ beforeDestroy?: (() => void) | (() => void)[];
162
+ beforeUnmount?: (() => void) | (() => void)[];
163
+ destroyed?: (() => void) | (() => void)[];
164
+ unmounted?: (() => void) | (() => void)[];
165
+ renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
166
+ renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
167
+ errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
168
+ };
169
+ $forceUpdate: () => void;
170
+ $nextTick: typeof import("vue").nextTick;
171
+ $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
172
+ } & Readonly<{
173
+ as: import("reka-ui").AsTag | import("vue").Component;
174
+ }> & Omit<Readonly<import("reka-ui").NumberFieldInputProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
175
+ $slots: {
176
+ default?: (props: {}) => any;
177
+ };
178
+ }>>;
179
+ }>) => void;
180
+ attrs: any;
181
+ slots: InputNumberSlots;
182
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: T) => void);
183
+ }>) => import("vue").VNode & {
184
+ __ctx?: Awaited<typeof __VLS_setup>;
186
185
  };
186
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
187
+ [K in keyof T]: T[K];
188
+ } : {
189
+ [K in keyof T as K]: T[K];
190
+ }) & {};
@@ -10,6 +10,7 @@ import { useAppConfig } from "#imports";
10
10
  import { useComponentIcons } from "../composables/useComponentIcons";
11
11
  import { useFieldGroup } from "../composables/useFieldGroup";
12
12
  import { useFormField } from "../composables/useFormField";
13
+ import { pick } from "../utils";
13
14
  import { cv, merge } from "../utils/style";
14
15
  import Avatar from "./Avatar.vue";
15
16
  import Icon from "./Icon.vue";
@@ -60,7 +61,7 @@ const appConfig = useAppConfig();
60
61
  const ui = computed(() => {
61
62
  const styler = cv(merge(theme, appConfig.ui.inputTags));
62
63
  return styler({
63
- ...props,
64
+ ...pick(props, ["variant", "loading"]),
64
65
  color: color.value,
65
66
  size: fieldGroupSize.value || formFieldSize.value,
66
67
  highlight: highlight.value,
@@ -3,10 +3,11 @@ import type { AcceptableInputValue, TagsInputRootEmits, TagsInputRootProps } fro
3
3
  import theme from '#build/ui/input-tags';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { ComponentBaseProps, ComponentStyler, ComponentUIProps, IconProps } from '../types';
6
+ import type { InputHTMLAttributes } from '../types/html';
6
7
  import type { StaticSlot } from '../types/utils';
7
8
  type ThemeVariants = VariantProps<typeof theme>;
8
9
  export type InputTagsItem = AcceptableInputValue;
9
- export interface InputTagsProps<T extends InputTagsItem = InputTagsItem> extends ComponentBaseProps, Pick<TagsInputRootProps<T>, 'modelValue' | 'defaultValue' | 'addOnPaste' | 'addOnTab' | 'addOnBlur' | 'duplicate' | 'disabled' | 'delimiter' | 'max' | 'id' | 'convertValue' | 'displayValue' | 'name' | 'required'>, UseComponentIconsProps {
10
+ export interface InputTagsProps<T extends InputTagsItem = InputTagsItem> extends ComponentBaseProps, Pick<TagsInputRootProps<T>, 'modelValue' | 'defaultValue' | 'addOnPaste' | 'addOnTab' | 'addOnBlur' | 'duplicate' | 'disabled' | 'delimiter' | 'max' | 'id' | 'convertValue' | 'displayValue' | 'name' | 'required'>, UseComponentIconsProps, /** @vue-ignore */ Omit<InputHTMLAttributes, 'disabled' | 'max' | 'required' | 'name' | 'placeholder'> {
10
11
  /**
11
12
  * The element or component this component should render as.
12
13
  * @default "div"
@@ -26,7 +27,7 @@ export interface InputTagsProps<T extends InputTagsItem = InputTagsItem> extends
26
27
  autofocusDelay?: number;
27
28
  /**
28
29
  * The icon displayed to delete a tag.
29
- * @default appConfig.ui.icons.close
30
+ * @default app.icons.close
30
31
  */
31
32
  deleteIcon?: IconProps['name'];
32
33
  /** Highlight the ring color like a focus state. */
@@ -59,27 +60,31 @@ export interface InputTagsSlots<T extends InputTagsItem = InputTagsItem> {
59
60
  ui: ComponentStyler<typeof theme>;
60
61
  }>;
61
62
  }
62
- declare const __VLS_export: <T extends InputTagsItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
63
- props: __VLS_PrettifyLocal<InputTagsProps<AcceptableInputValue> & {
64
- onChange?: ((event: Event) => any) | undefined;
63
+ declare const _default: typeof __VLS_export;
64
+ export default _default;
65
+ declare const __VLS_export: <T extends InputTagsItem>(__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<{
66
+ props: import("vue").PublicProps & __VLS_PrettifyLocal<InputTagsProps<AcceptableInputValue> & {
65
67
  onBlur?: ((event: FocusEvent) => any) | undefined;
68
+ onChange?: ((event: Event) => any) | undefined;
66
69
  onFocus?: ((event: FocusEvent) => any) | undefined;
67
70
  onInvalid?: ((payload: T) => any) | undefined;
68
71
  "onUpdate:modelValue"?: ((payload: T[]) => any) | undefined;
69
72
  onAddTag?: ((payload: T) => any) | undefined;
70
73
  onRemoveTag?: ((payload: T) => any) | undefined;
71
- }> & import("vue").PublicProps;
74
+ }> & (typeof globalThis extends {
75
+ __VLS_PROPS_FALLBACK: infer P;
76
+ } ? P : {});
72
77
  expose: (exposed: import("vue").ShallowUnwrapRef<{
73
78
  inputRef: Readonly<import("vue").Ref<HTMLInputElement, HTMLInputElement>>;
74
79
  }>) => void;
75
80
  attrs: any;
76
81
  slots: InputTagsSlots<T>;
77
- emit: ((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "invalid", payload: T) => void) & ((evt: "update:modelValue", payload: T[]) => void) & ((evt: "addTag", payload: T) => void) & ((evt: "removeTag", payload: T) => void);
82
+ emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "invalid", payload: T) => void) & ((evt: "update:modelValue", payload: T[]) => void) & ((evt: "addTag", payload: T) => void) & ((evt: "removeTag", payload: T) => void);
78
83
  }>) => import("vue").VNode & {
79
84
  __ctx?: Awaited<typeof __VLS_setup>;
80
85
  };
81
- declare const _default: typeof __VLS_export;
82
- export default _default;
83
- type __VLS_PrettifyLocal<T> = {
86
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
87
+ [K in keyof T]: T[K];
88
+ } : {
84
89
  [K in keyof T as K]: T[K];
85
- } & {};
90
+ }) & {};
@@ -7,6 +7,7 @@ import theme from "#build/ui/kbd";
7
7
  import { Primitive } from "reka-ui";
8
8
  import { useAppConfig } from "#imports";
9
9
  import { useKbd } from "../composables/useKbd";
10
+ import { pick } from "../utils";
10
11
  import { cv, merge } from "../utils/style";
11
12
  const props = defineProps({
12
13
  as: { type: null, required: false, default: "kbd" },
@@ -21,7 +22,7 @@ const { getKbdKey } = useKbd();
21
22
  const appConfig = useAppConfig();
22
23
  const ui = computed(() => {
23
24
  const styler = cv(merge(theme, appConfig.ui.kbd));
24
- return styler(props);
25
+ return styler(pick(props, ["color", "variant", "size"]));
25
26
  });
26
27
  </script>
27
28
 
@@ -22,11 +22,11 @@ export interface KbdProps extends ComponentBaseProps {
22
22
  export interface KbdSlots {
23
23
  default: StaticSlot;
24
24
  }
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
25
27
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<KbdProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<KbdProps> & Readonly<{}>, {
26
28
  as: import("reka-ui").AsTag | import("vue").Component;
27
29
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, KbdSlots>;
28
- declare const _default: typeof __VLS_export;
29
- export default _default;
30
30
  type __VLS_WithSlots<T, S> = T & {
31
31
  new (): {
32
32
  $slots: S;
@@ -9,6 +9,7 @@ import { useForwardProps } from "reka-ui";
9
9
  import { computed } from "vue";
10
10
  import theme from "#build/ui/link";
11
11
  import { useAppConfig, useRoute } from "#imports";
12
+ import { pick } from "../utils";
12
13
  import { isPartiallyEqual } from "../utils/link";
13
14
  import { cv, merge } from "../utils/style";
14
15
  import LinkBase from "./LinkBase.vue";
@@ -29,13 +30,14 @@ const props = defineProps({
29
30
  to: { type: null, required: false },
30
31
  href: { type: null, required: false },
31
32
  external: { type: Boolean, required: false },
32
- target: { type: [String, Object], required: false },
33
- rel: { type: [String, Object], required: false },
33
+ target: { type: [String, Object, null], required: false },
34
+ rel: { type: [String, Object, null], required: false },
34
35
  noRel: { type: Boolean, required: false },
35
36
  prefetchedClass: { type: String, required: false },
36
37
  prefetch: { type: Boolean, required: false },
37
38
  prefetchOn: { type: [String, Object], required: false },
38
39
  noPrefetch: { type: Boolean, required: false },
40
+ trailingSlash: { type: String, required: false },
39
41
  activeClass: { type: String, required: false },
40
42
  exactActiveClass: { type: String, required: false },
41
43
  ariaCurrentValue: { type: String, required: false, default: "page" },
@@ -82,7 +84,7 @@ function resolveLinkClass({ route: route2, isActive, isExactActive }) {
82
84
  const active = isLinkActive({ route: route2, isActive, isExactActive });
83
85
  if (props.raw)
84
86
  return [props.class, active ? props.activeClass : props.inactiveClass];
85
- return ui.value.base({ ...props, active });
87
+ return ui.value.base({ ...pick(props, ["class", "disabled"]), active });
86
88
  }
87
89
  </script>
88
90
 
@@ -1,7 +1,7 @@
1
1
  import type { PrimitiveProps } from 'reka-ui';
2
- import type { ButtonHTMLAttributes } from 'vue';
3
2
  import type { RouteLocationRaw, RouterLinkProps } from 'vue-router';
4
3
  import type { ComponentBaseProps } from '../types';
4
+ import type { AnchorHTMLAttributes, ButtonHTMLAttributes } from '../types/html';
5
5
  import type { StaticSlot } from '../types/utils';
6
6
  interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
7
7
  /**
@@ -19,11 +19,11 @@ interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
19
19
  /**
20
20
  * Where to display the linked URL, as the name for a browsing context.
21
21
  */
22
- target?: '_blank' | '_parent' | '_self' | '_top' | (string & {});
22
+ target?: '_blank' | '_parent' | '_self' | '_top' | (string & {}) | null;
23
23
  /**
24
24
  * A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.
25
25
  */
26
- rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {});
26
+ rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {}) | null;
27
27
  /**
28
28
  * If set to true, no rel attribute will be added to the link
29
29
  */
@@ -47,8 +47,13 @@ interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
47
47
  * Escape hatch to disable `prefetch` attribute.
48
48
  */
49
49
  noPrefetch?: boolean;
50
+ /**
51
+ * An option to either add or remove trailing slashes in the `href` for this specific link.
52
+ * Overrides the global `trailingSlash` option if provided.
53
+ */
54
+ trailingSlash?: 'append' | 'remove';
50
55
  }
51
- export interface LinkProps extends ComponentBaseProps, NuxtLinkProps {
56
+ export interface LinkProps extends ComponentBaseProps, Omit<NuxtLinkProps, 'custom'>, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled'>, /** @vue-ignore */ Omit<AnchorHTMLAttributes, 'href' | 'target' | 'rel' | 'type'> {
52
57
  /**
53
58
  * The element or component this component should render as when not a link.
54
59
  * @default "button"
@@ -75,19 +80,24 @@ export interface LinkProps extends ComponentBaseProps, NuxtLinkProps {
75
80
  /** When `true`, only styles from `class`, `activeClass`, and `inactiveClass` will be applied. */
76
81
  raw?: boolean;
77
82
  }
83
+ /**
84
+ * Link-related props that can be omitted from ButtonProps when link functionality is not needed.
85
+ * Use this with `Omit<ButtonProps, LinkPropsKeys>` in components where buttons should not act as links.
86
+ */
87
+ export type LinkPropsKeys = 'to' | 'href' | 'target' | 'rel' | 'noRel' | 'external' | 'prefetch' | 'prefetchOn' | 'prefetchedClass' | 'noPrefetch' | 'trailingSlash' | 'replace' | 'ariaCurrentValue' | 'active' | 'activeClass' | 'exact' | 'exactQuery' | 'exactHash' | 'inactiveClass' | 'download' | 'ping' | 'referrerpolicy' | 'hreflang' | 'media';
78
88
  export interface LinkSlots {
79
89
  default: StaticSlot<{
80
90
  active: boolean;
81
91
  }>;
82
92
  }
93
+ declare const _default: typeof __VLS_export;
94
+ export default _default;
83
95
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
84
96
  active: boolean;
85
97
  type: "reset" | "submit" | "button";
86
98
  ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
87
99
  as: import("reka-ui").AsTag | import("vue").Component;
88
100
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
89
- declare const _default: typeof __VLS_export;
90
- export default _default;
91
101
  type __VLS_WithSlots<T, S> = T & {
92
102
  new (): {
93
103
  $slots: S;
@@ -18,14 +18,14 @@ export interface LinkBaseProps {
18
18
  active?: boolean;
19
19
  isExternal?: boolean;
20
20
  }
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
21
23
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<LinkBaseProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkBaseProps> & Readonly<{}>, {
22
24
  type: string;
23
25
  as: import("reka-ui").AsTag | import("vue").Component;
24
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
25
27
  default?: (props: {}) => any;
26
28
  }>;
27
- declare const _default: typeof __VLS_export;
28
- export default _default;
29
29
  type __VLS_WithSlots<T, S> = T & {
30
30
  new (): {
31
31
  $slots: S;
@@ -6,6 +6,7 @@ import theme from "#build/ui/marquee";
6
6
  import { Primitive } from "reka-ui";
7
7
  import { computed } from "vue";
8
8
  import { useAppConfig } from "#imports";
9
+ import { pick } from "../utils";
9
10
  import { cv, merge } from "../utils/style";
10
11
  const props = defineProps({
11
12
  as: { type: null, required: false },
@@ -21,7 +22,7 @@ defineSlots();
21
22
  const appConfig = useAppConfig();
22
23
  const ui = computed(() => {
23
24
  const styler = cv(merge(theme, appConfig.ui.marquee));
24
- return styler(props);
25
+ return styler(pick(props, ["pauseOnHover", "orientation", "reverse", "overlay"]));
25
26
  });
26
27
  </script>
27
28