@evixcard/evx-ui-kit 1.1.1 → 1.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 (46) hide show
  1. package/dist/components/BrandCard/BrandCard.vue.d.ts +1 -1
  2. package/dist/components/EvAppBackground/EvAppBackground.vue.d.ts +1 -1
  3. package/dist/components/EvButton/variants.d.ts +3 -0
  4. package/dist/components/EvComboboxSelect/EvComboboxSelect.spec.d.ts +1 -0
  5. package/dist/components/EvComboboxSelect/EvComboboxSelect.vue.d.ts +62 -0
  6. package/dist/components/EvComboboxSelect/index.d.ts +2 -0
  7. package/dist/components/EvComboboxSelect/types.d.ts +8 -0
  8. package/dist/components/EvConfirmDialog/EvConfirmDialog.vue.d.ts +1 -1
  9. package/dist/components/EvDatePicker/EvDatePicker.vue.d.ts +26 -0
  10. package/dist/components/EvDatePicker/index.d.ts +1 -0
  11. package/dist/components/EvIcon/EvIcon.spec.d.ts +1 -0
  12. package/dist/components/EvIcon/EvIcon.vue.d.ts +15 -0
  13. package/dist/components/EvIcon/icons.d.ts +69 -0
  14. package/dist/components/EvIcon/index.d.ts +2 -0
  15. package/dist/components/EvInput/EvInput.spec.d.ts +1 -0
  16. package/dist/components/EvInput/EvInput.vue.d.ts +2 -0
  17. package/dist/components/EvMenu/EvMenu.spec.d.ts +1 -0
  18. package/dist/components/EvMenu/EvMenu.vue.d.ts +44 -0
  19. package/dist/components/EvMenu/EvMenuDivider.vue.d.ts +5 -0
  20. package/dist/components/EvMenu/EvMenuItem.vue.d.ts +37 -0
  21. package/dist/components/EvMenu/index.d.ts +4 -0
  22. package/dist/components/EvMenu/types.d.ts +13 -0
  23. package/dist/components/EvMultiSelect/EvMultiSelect.spec.d.ts +1 -0
  24. package/dist/components/EvMultiSelect/EvMultiSelect.vue.d.ts +26 -0
  25. package/dist/components/EvMultiSelect/index.d.ts +2 -0
  26. package/dist/components/EvMultiSelect/types.d.ts +5 -0
  27. package/dist/components/EvPopup/EvPopup.vue.d.ts +9 -0
  28. package/dist/components/EvSearch/EvSearch.vue.d.ts +6 -0
  29. package/dist/components/EvSelect/EvSelect.spec.d.ts +1 -0
  30. package/dist/components/EvSelect/EvSelect.vue.d.ts +18 -1
  31. package/dist/components/EvTabs/EvTabs.vue.d.ts +17 -3
  32. package/dist/components/EvTooltip/EvTooltip.spec.d.ts +1 -0
  33. package/dist/components/EvTooltip/EvTooltip.vue.d.ts +39 -0
  34. package/dist/components/EvTooltip/index.d.ts +2 -0
  35. package/dist/components/EvTooltip/variants.d.ts +12 -0
  36. package/dist/components/charts/ChartTooltip.spec.d.ts +1 -0
  37. package/dist/components/charts/useChartTheme.spec.d.ts +1 -0
  38. package/dist/evx-ui-kit.cjs.js +12 -11
  39. package/dist/evx-ui-kit.cjs.js.map +1 -1
  40. package/dist/evx-ui-kit.css +1 -1
  41. package/dist/evx-ui-kit.es.js +8174 -6516
  42. package/dist/evx-ui-kit.es.js.map +1 -1
  43. package/dist/index.d.ts +8 -0
  44. package/dist/theme.css +171 -5
  45. package/package.json +2 -1
  46. package/dist/components/EvCopyField/icons.d.ts +0 -32
@@ -17,8 +17,8 @@ declare function __VLS_template(): {
17
17
  };
18
18
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
19
19
  declare const __VLS_component: import('vue').DefineComponent<BrandCardProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BrandCardProps> & Readonly<{}>, {
20
- orientation: "portrait" | "albom";
21
20
  direction: "col" | "row";
21
+ orientation: "portrait" | "albom";
22
22
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
23
23
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
24
24
  export default _default;
@@ -19,7 +19,7 @@ export interface EvAppBackgroundProps {
19
19
  }
20
20
  declare const _default: import('vue').DefineComponent<EvAppBackgroundProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvAppBackgroundProps> & Readonly<{}>, {
21
21
  animate: boolean;
22
- backgroundColor: string;
23
22
  speed: number;
23
+ backgroundColor: string;
24
24
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
25
25
  export default _default;
@@ -1,4 +1,6 @@
1
1
  export declare const variants: {
2
+ destructive: string;
3
+ outline: string;
2
4
  primary: string;
3
5
  secondary: string;
4
6
  link: string;
@@ -13,6 +15,7 @@ export declare const variants: {
13
15
  export declare const sizes: {
14
16
  xl: string;
15
17
  lg: string;
18
+ md: string;
16
19
  sm: string;
17
20
  icon: string;
18
21
  };
@@ -0,0 +1,62 @@
1
+ import { EvComboboxOption } from './types';
2
+ type __VLS_Props = {
3
+ options: EvComboboxOption[];
4
+ /** Value text shown in the trigger when nothing is selected. */
5
+ placeholder?: string;
6
+ /** Placeholder for the search input inside the menu. */
7
+ searchPlaceholder?: string;
8
+ /** Small label rendered above the value inside the trigger. */
9
+ label?: string;
10
+ /** Title rendered in the menu header. Omit to hide the header. */
11
+ headerTitle?: string;
12
+ /** Show a "Clear" action in the menu header that resets the selection. */
13
+ clearable?: boolean;
14
+ /** Text shown when the search yields no matches. */
15
+ noResultsText?: string;
16
+ disabled?: boolean;
17
+ error?: boolean;
18
+ errorMessage?: string | null;
19
+ helperText?: string | null;
20
+ class?: string;
21
+ };
22
+ type __VLS_PublicProps = {
23
+ modelValue?: string | number | null;
24
+ } & __VLS_Props;
25
+ declare function __VLS_template(): {
26
+ attrs: Partial<{}>;
27
+ slots: {
28
+ icon?(_: {
29
+ option: EvComboboxOption;
30
+ }): any;
31
+ };
32
+ refs: {
33
+ root: HTMLDivElement;
34
+ searchInput: HTMLInputElement;
35
+ listRef: HTMLUListElement;
36
+ };
37
+ rootEl: any;
38
+ };
39
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
40
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
41
+ "update:modelValue": (value: string | number | null) => any;
42
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
43
+ "onUpdate:modelValue"?: ((value: string | number | null) => any) | undefined;
44
+ }>, {
45
+ disabled: boolean;
46
+ placeholder: string;
47
+ error: boolean;
48
+ searchPlaceholder: string;
49
+ noResultsText: string;
50
+ clearable: boolean;
51
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
52
+ root: HTMLDivElement;
53
+ searchInput: HTMLInputElement;
54
+ listRef: HTMLUListElement;
55
+ }, any>;
56
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
57
+ export default _default;
58
+ type __VLS_WithTemplateSlots<T, S> = T & {
59
+ new (): {
60
+ $slots: S;
61
+ };
62
+ };
@@ -0,0 +1,2 @@
1
+ export { default as EvComboboxSelect } from './EvComboboxSelect.vue';
2
+ export type { EvComboboxOption } from './types';
@@ -0,0 +1,8 @@
1
+ export interface EvComboboxOption {
2
+ value: string | number;
3
+ /** Primary line (14px #232525 in the design). */
4
+ title: string;
5
+ /** Optional secondary line (12px #777f7f in the design). Omit to render a single-line row. */
6
+ meta?: string;
7
+ disabled?: boolean;
8
+ }
@@ -38,12 +38,12 @@ declare const __VLS_component: import('vue').DefineComponent<EvConfirmDialogProp
38
38
  onConfirm?: (() => any) | undefined;
39
39
  }>, {
40
40
  size: EvPopupSize;
41
+ destructive: boolean;
41
42
  blur: boolean;
42
43
  showCloseButton: boolean;
43
44
  confirmLabel: string;
44
45
  cancelLabel: string;
45
46
  loading: boolean;
46
- destructive: boolean;
47
47
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
48
48
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
49
49
  export default _default;
@@ -0,0 +1,26 @@
1
+ type __VLS_Props = {
2
+ placeholder?: string;
3
+ disabled?: boolean;
4
+ error?: boolean;
5
+ label?: string;
6
+ class?: string;
7
+ /** Lower bound, inclusive — ISO 'YYYY-MM-DD'. */
8
+ min?: string | null;
9
+ /** Upper bound, inclusive — ISO 'YYYY-MM-DD'. */
10
+ max?: string | null;
11
+ };
12
+ type __VLS_PublicProps = {
13
+ modelValue?: string | null;
14
+ } & __VLS_Props;
15
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
+ "update:modelValue": (value: string | null) => any;
17
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
+ "onUpdate:modelValue"?: ((value: string | null) => any) | undefined;
19
+ }>, {
20
+ disabled: boolean;
21
+ placeholder: string;
22
+ error: boolean;
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
24
+ root: HTMLDivElement;
25
+ }, any>;
26
+ export default _default;
@@ -0,0 +1 @@
1
+ export { default as EvDatePicker } from './EvDatePicker.vue';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ interface Props {
2
+ /** Kebab-case Lucide icon name, e.g. "trash-2", "log-out", "chevron-down". */
3
+ name: string;
4
+ /** Pixel size (width & height). */
5
+ size?: number;
6
+ strokeWidth?: number;
7
+ /** Stroke color; defaults to currentColor. */
8
+ color?: string;
9
+ class?: string;
10
+ }
11
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
12
+ size: number;
13
+ strokeWidth: number;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Canonical icon registry — the Lucide set used by the EvixCash admin design
3
+ * (Figma export, lucide 0.487). Keyed by kebab-case Lucide name so that
4
+ * `<EvIcon name="…" />` matches the design references 1:1.
5
+ *
6
+ * A few keys map to a renamed-but-identical Lucide glyph (the design used the
7
+ * older alias): `edit` → square-pen, `check-circle-2` → circle-check-big,
8
+ * `alert-circle` → circle-alert, `alert-triangle` → triangle-alert.
9
+ */
10
+ export declare const icons: {
11
+ 'layout-dashboard': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
12
+ 'layout-grid': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
13
+ layers: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
14
+ table: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
15
+ menu: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
16
+ 'chevron-left': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
17
+ 'chevron-right': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
18
+ 'chevron-down': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
19
+ 'chevron-up': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
20
+ plus: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
21
+ pencil: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
22
+ edit: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
23
+ 'trash-2': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
24
+ check: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
25
+ 'check-check': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
26
+ x: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
27
+ upload: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
28
+ download: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
29
+ copy: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
30
+ send: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
31
+ 'dollar-sign': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
32
+ banknote: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
33
+ coins: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
34
+ 'arrow-left-right': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
35
+ 'arrow-up-right': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
36
+ 'arrow-left': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
37
+ 'trending-up': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
38
+ receipt: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
39
+ store: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
40
+ gift: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
41
+ webhook: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
42
+ users: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
43
+ 'user-plus': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
44
+ 'user-cog': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
45
+ 'log-out': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
46
+ power: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
47
+ 'check-circle-2': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
48
+ 'alert-circle': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
49
+ 'alert-triangle': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
50
+ info: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
51
+ clock: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
52
+ bell: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
53
+ search: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
54
+ eye: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
55
+ 'eye-off': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
56
+ filter: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
57
+ 'sliders-horizontal': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
58
+ calendar: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
59
+ 'refresh-cw': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
60
+ 'rotate-cw': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
61
+ 'file-text': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
62
+ 'book-open': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
63
+ briefcase: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
64
+ settings: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
65
+ image: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
66
+ sparkles: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
67
+ construction: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
68
+ };
69
+ export type EvIconName = keyof typeof icons;
@@ -0,0 +1,2 @@
1
+ export { default as EvIcon } from './EvIcon.vue';
2
+ export { icons as evIcons, type EvIconName } from './icons';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,6 +1,7 @@
1
1
  import { EvInputSize, InputType } from './types';
2
2
  type __VLS_Props = {
3
3
  modelValue?: string | number | null;
4
+ label?: string;
4
5
  placeholder?: string;
5
6
  class?: string;
6
7
  inputClass?: string;
@@ -10,6 +11,7 @@ type __VLS_Props = {
10
11
  disabled?: boolean;
11
12
  required?: boolean;
12
13
  error?: boolean;
14
+ success?: boolean;
13
15
  errorMessage?: string | null;
14
16
  helperText?: string | null;
15
17
  size?: EvInputSize;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,44 @@
1
+ import { EvMenuAlign } from './types';
2
+ interface Props {
3
+ /** Which edge of the trigger the popover aligns to. Defaults to `right`. */
4
+ align?: EvMenuAlign;
5
+ class?: string;
6
+ }
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ trigger?(_: {
11
+ open: boolean;
12
+ ariaExpanded: boolean;
13
+ ariaHaspopup: string;
14
+ }): any;
15
+ default?(_: {}): any;
16
+ };
17
+ refs: {
18
+ root: HTMLDivElement;
19
+ triggerWrap: HTMLDivElement;
20
+ popover: HTMLDivElement;
21
+ };
22
+ rootEl: any;
23
+ };
24
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
25
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
26
+ open: () => any;
27
+ close: () => any;
28
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
29
+ onOpen?: (() => any) | undefined;
30
+ onClose?: (() => any) | undefined;
31
+ }>, {
32
+ align: EvMenuAlign;
33
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
34
+ root: HTMLDivElement;
35
+ triggerWrap: HTMLDivElement;
36
+ popover: HTMLDivElement;
37
+ }, any>;
38
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
39
+ export default _default;
40
+ type __VLS_WithTemplateSlots<T, S> = T & {
41
+ new (): {
42
+ $slots: S;
43
+ };
44
+ };
@@ -0,0 +1,5 @@
1
+ interface Props {
2
+ class?: string;
3
+ }
4
+ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLHRElement>;
5
+ export default _default;
@@ -0,0 +1,37 @@
1
+ interface Props {
2
+ /** Item text. Ignored when the default slot is provided or `divider` is set. */
3
+ label?: string;
4
+ /** Kebab-case Lucide icon name rendered before the label, e.g. `pencil`, `trash-2`. */
5
+ icon?: string;
6
+ /** Renders red text/icon for destructive actions (e.g. Delete). */
7
+ destructive?: boolean;
8
+ disabled?: boolean;
9
+ /** When `true`, renders a horizontal separator instead of an interactive item. */
10
+ divider?: boolean;
11
+ class?: string;
12
+ }
13
+ declare function __VLS_template(): {
14
+ attrs: Partial<{}>;
15
+ slots: {
16
+ default?(_: {}): any;
17
+ };
18
+ refs: {};
19
+ rootEl: any;
20
+ };
21
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
23
+ click: (event: MouseEvent) => any;
24
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
25
+ onClick?: ((event: MouseEvent) => any) | undefined;
26
+ }>, {
27
+ destructive: boolean;
28
+ disabled: boolean;
29
+ divider: boolean;
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
31
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
32
+ export default _default;
33
+ type __VLS_WithTemplateSlots<T, S> = T & {
34
+ new (): {
35
+ $slots: S;
36
+ };
37
+ };
@@ -0,0 +1,4 @@
1
+ export { default as EvMenu } from './EvMenu.vue';
2
+ export { default as EvMenuItem } from './EvMenuItem.vue';
3
+ export { default as EvMenuDivider } from './EvMenuDivider.vue';
4
+ export type { EvMenuAlign, EvMenuContext } from './types';
@@ -0,0 +1,13 @@
1
+ import { InjectionKey } from 'vue';
2
+ /** Horizontal edge the popover aligns to relative to the trigger. */
3
+ export type EvMenuAlign = 'left' | 'right';
4
+ /**
5
+ * Context provided by `EvMenu` to descendant `EvMenuItem`s so that selecting an
6
+ * item can close the popover. Provided/injected rather than threaded through
7
+ * props so consumers can place items behind arbitrary wrapper markup.
8
+ */
9
+ export interface EvMenuContext {
10
+ /** Closes the menu popover. Called by an item after it emits `click`. */
11
+ close: () => void;
12
+ }
13
+ export declare const EvMenuContextKey: InjectionKey<EvMenuContext>;
@@ -0,0 +1,26 @@
1
+ import { EvMultiSelectOption, EvMultiSelectValue } from './types';
2
+ type __VLS_Props = {
3
+ options: EvMultiSelectOption[];
4
+ placeholder?: string;
5
+ searchable?: boolean;
6
+ disabled?: boolean;
7
+ error?: boolean;
8
+ label?: string;
9
+ class?: string;
10
+ };
11
+ type __VLS_PublicProps = {
12
+ modelValue?: EvMultiSelectValue[];
13
+ } & __VLS_Props;
14
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
+ "update:modelValue": (value: EvMultiSelectValue[]) => any;
16
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
17
+ "onUpdate:modelValue"?: ((value: EvMultiSelectValue[]) => any) | undefined;
18
+ }>, {
19
+ disabled: boolean;
20
+ placeholder: string;
21
+ error: boolean;
22
+ searchable: boolean;
23
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
24
+ root: HTMLDivElement;
25
+ }, any>;
26
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as EvMultiSelect } from './EvMultiSelect.vue';
2
+ export type { EvMultiSelectOption, EvMultiSelectValue } from './types';
@@ -0,0 +1,5 @@
1
+ export type EvMultiSelectValue = string | number;
2
+ export interface EvMultiSelectOption {
3
+ value: EvMultiSelectValue;
4
+ label: string;
5
+ }
@@ -1,4 +1,11 @@
1
1
  export type EvPopupSize = 'sm' | 'md';
2
+ /** Per-element class overrides, merged over the defaults via `twMerge`. */
3
+ export interface EvPopupClasses {
4
+ backdrop?: string;
5
+ panel?: string;
6
+ header?: string;
7
+ title?: string;
8
+ }
2
9
  export interface EvPopupProps {
3
10
  isOpen: boolean;
4
11
  title?: string;
@@ -18,6 +25,8 @@ export interface EvPopupProps {
18
25
  * default `bg-black/30`. Pair with destructive or attention-demanding flows.
19
26
  */
20
27
  blur?: boolean;
28
+ /** Per-element class overrides, merged over the defaults via `twMerge`. */
29
+ classes?: EvPopupClasses;
21
30
  }
22
31
  declare function __VLS_template(): {
23
32
  attrs: Partial<{}>;
@@ -25,6 +25,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
25
25
  $data: {};
26
26
  $props: {
27
27
  readonly modelValue?: string | number | null | undefined;
28
+ readonly label?: string | undefined;
28
29
  readonly placeholder?: string | undefined;
29
30
  readonly class?: string | undefined;
30
31
  readonly inputClass?: string | undefined;
@@ -34,6 +35,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
34
35
  readonly disabled?: boolean | undefined;
35
36
  readonly required?: boolean | undefined;
36
37
  readonly error?: boolean | undefined;
38
+ readonly success?: boolean | undefined;
37
39
  readonly errorMessage?: string | null | undefined;
38
40
  readonly helperText?: string | null | undefined;
39
41
  readonly size?: EvInputSize | undefined;
@@ -61,6 +63,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
61
63
  $el: any;
62
64
  $options: import('vue').ComponentOptionsBase<Readonly<{
63
65
  modelValue?: string | number | null;
66
+ label?: string;
64
67
  placeholder?: string;
65
68
  class?: string;
66
69
  inputClass?: string;
@@ -70,6 +73,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
70
73
  disabled?: boolean;
71
74
  required?: boolean;
72
75
  error?: boolean;
76
+ success?: boolean;
73
77
  errorMessage?: string | null;
74
78
  helperText?: string | null;
75
79
  size?: EvInputSize;
@@ -121,6 +125,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
121
125
  required: boolean;
122
126
  }> & Omit<Readonly<{
123
127
  modelValue?: string | number | null;
128
+ label?: string;
124
129
  placeholder?: string;
125
130
  class?: string;
126
131
  inputClass?: string;
@@ -130,6 +135,7 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
130
135
  disabled?: boolean;
131
136
  required?: boolean;
132
137
  error?: boolean;
138
+ success?: boolean;
133
139
  errorMessage?: string | null;
134
140
  helperText?: string | null;
135
141
  size?: EvInputSize;
@@ -0,0 +1 @@
1
+ export {};
@@ -13,6 +13,15 @@ type __VLS_Props = {
13
13
  helperText?: string | null;
14
14
  class?: string;
15
15
  selectClass?: string;
16
+ /**
17
+ * Opt-in custom dropdown with a filterable text input. When `false`
18
+ * (default) the component renders the native `<select>` exactly as before.
19
+ */
20
+ searchable?: boolean;
21
+ /** Placeholder for the filter input shown in `searchable` mode. */
22
+ searchPlaceholder?: string;
23
+ /** Text shown in the popover when the filter matches no options. */
24
+ noResultsText?: string;
16
25
  };
17
26
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
18
27
  "update:modelValue": (value: string | number | null) => any;
@@ -28,5 +37,13 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
28
37
  size: EvSelectSize;
29
38
  disabled: boolean;
30
39
  required: boolean;
31
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
40
+ searchable: boolean;
41
+ searchPlaceholder: string;
42
+ noResultsText: string;
43
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
44
+ root: HTMLDivElement;
45
+ trigger: HTMLButtonElement;
46
+ popover: HTMLDivElement;
47
+ filterInput: HTMLInputElement;
48
+ }, any>;
32
49
  export default _default;
@@ -1,11 +1,20 @@
1
1
  export interface TabItem {
2
2
  label: string;
3
3
  content?: string;
4
+ /** Optional kebab-case Lucide icon name (via EvIcon), rendered before the label. */
5
+ icon?: string;
4
6
  }
5
7
  export interface EvTabsProps {
6
8
  tabs: TabItem[];
7
- size?: 'sm' | 'md';
9
+ size?: 'sm' | 'md' | 'lg';
8
10
  variant?: 'pill' | 'underline';
11
+ /**
12
+ * Controlled active tab index. When provided the component is controlled and
13
+ * emits `update:modelValue` (v-model) on change; the parent owns the state.
14
+ */
15
+ modelValue?: number;
16
+ /** Initial active tab index when uncontrolled (no `modelValue`). Defaults to 0. */
17
+ defaultTab?: number;
9
18
  }
10
19
  declare function __VLS_template(): {
11
20
  attrs: Partial<{}>;
@@ -18,9 +27,14 @@ declare function __VLS_template(): {
18
27
  rootEl: any;
19
28
  };
20
29
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
- declare const __VLS_component: import('vue').DefineComponent<EvTabsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvTabsProps> & Readonly<{}>, {
22
- size: "sm" | "md";
30
+ declare const __VLS_component: import('vue').DefineComponent<EvTabsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
31
+ "update:modelValue": (value: number) => any;
32
+ }, string, import('vue').PublicProps, Readonly<EvTabsProps> & Readonly<{
33
+ "onUpdate:modelValue"?: ((value: number) => any) | undefined;
34
+ }>, {
35
+ size: "sm" | "md" | "lg";
23
36
  variant: "pill" | "underline";
37
+ defaultTab: number;
24
38
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
25
39
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
26
40
  export default _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ import { EvTooltipPosition } from './variants';
2
+ interface Props {
3
+ /** Tooltip text. Ignored when the `#content` slot is provided. */
4
+ content?: string;
5
+ /** Side of the trigger the tooltip appears on. Default: `top`. */
6
+ position?: EvTooltipPosition;
7
+ /** When `true`, the tooltip never opens (trigger still renders). */
8
+ disabled?: boolean;
9
+ /** Merged over the bubble's default classes via `twMerge`. */
10
+ class?: string;
11
+ }
12
+ declare function __VLS_template(): {
13
+ attrs: Partial<{}>;
14
+ slots: Readonly<{
15
+ /** The trigger element(s) — always rendered. */
16
+ default: () => unknown;
17
+ /** Optional rich tooltip body; overrides the `content` prop when present. */
18
+ content?: () => unknown;
19
+ }> & {
20
+ /** The trigger element(s) — always rendered. */
21
+ default: () => unknown;
22
+ /** Optional rich tooltip body; overrides the `content` prop when present. */
23
+ content?: () => unknown;
24
+ };
25
+ refs: {};
26
+ rootEl: HTMLSpanElement;
27
+ };
28
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
29
+ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
30
+ disabled: boolean;
31
+ position: EvTooltipPosition;
32
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
33
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
34
+ export default _default;
35
+ type __VLS_WithTemplateSlots<T, S> = T & {
36
+ new (): {
37
+ $slots: S;
38
+ };
39
+ };
@@ -0,0 +1,2 @@
1
+ export { default as EvTooltip } from './EvTooltip.vue';
2
+ export type { EvTooltipPosition } from './variants';
@@ -0,0 +1,12 @@
1
+ export type EvTooltipPosition = 'top' | 'bottom' | 'left' | 'right';
2
+ /**
3
+ * Wrapper-relative placement for the tooltip bubble. The bubble is absolutely
4
+ * positioned against the `relative` trigger wrapper, then centered on the
5
+ * cross-axis via translate utilities.
6
+ */
7
+ export declare const tooltipPositionClasses: Record<EvTooltipPosition, string>;
8
+ /**
9
+ * Placement of the small arrow square. It is rotated 45deg and pinned to the
10
+ * edge of the bubble that faces the trigger, so it visually points back at it.
11
+ */
12
+ export declare const tooltipArrowClasses: Record<EvTooltipPosition, string>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};