@evixcard/evx-ui-kit 1.7.1 → 1.9.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 (47) hide show
  1. package/dist/components/EvBadge/variants.d.ts +1 -1
  2. package/dist/components/EvButton/variants.d.ts +3 -0
  3. package/dist/components/EvCard/EvCard.spec.d.ts +1 -0
  4. package/dist/components/EvCard/EvCard.vue.d.ts +52 -0
  5. package/dist/components/EvCard/EvCardActions.spec.d.ts +1 -0
  6. package/dist/components/EvCard/EvCardActions.vue.d.ts +26 -0
  7. package/dist/components/EvCard/EvCardAvatar.spec.d.ts +1 -0
  8. package/dist/components/EvCard/EvCardAvatar.vue.d.ts +23 -0
  9. package/dist/components/EvCard/EvCardField.spec.d.ts +1 -0
  10. package/dist/components/EvCard/EvCardField.vue.d.ts +32 -0
  11. package/dist/components/EvCard/EvCardHeader.spec.d.ts +1 -0
  12. package/dist/components/EvCard/EvCardHeader.vue.d.ts +25 -0
  13. package/dist/components/EvCard/EvCardMedia.spec.d.ts +1 -0
  14. package/dist/components/EvCard/EvCardMedia.vue.d.ts +32 -0
  15. package/dist/components/EvCard/EvCardMeta.spec.d.ts +1 -0
  16. package/dist/components/EvCard/EvCardMeta.vue.d.ts +24 -0
  17. package/dist/components/EvCard/EvCardOverlayBadge.spec.d.ts +1 -0
  18. package/dist/components/EvCard/EvCardOverlayBadge.vue.d.ts +26 -0
  19. package/dist/components/EvCard/EvCardSection.spec.d.ts +1 -0
  20. package/dist/components/EvCard/EvCardSection.vue.d.ts +26 -0
  21. package/dist/components/EvCard/EvCardSubtitle.spec.d.ts +1 -0
  22. package/dist/components/EvCard/EvCardSubtitle.vue.d.ts +24 -0
  23. package/dist/components/EvCard/EvCardTitle.spec.d.ts +1 -0
  24. package/dist/components/EvCard/EvCardTitle.vue.d.ts +24 -0
  25. package/dist/components/EvCard/index.d.ts +22 -0
  26. package/dist/components/EvCheckbox/EvCheckbox.spec.d.ts +1 -0
  27. package/dist/components/EvCheckbox/EvCheckbox.vue.d.ts +7 -2
  28. package/dist/components/EvDataTable/EvDataCard.spec.d.ts +1 -0
  29. package/dist/components/EvDataTable/EvDataCard.vue.d.ts +39 -0
  30. package/dist/components/EvDataTable/EvDataTable.vue.d.ts +13 -9
  31. package/dist/components/EvDataTable/index.d.ts +1 -0
  32. package/dist/components/EvDataTable/types.d.ts +10 -0
  33. package/dist/components/EvIcon/icons.d.ts +2 -0
  34. package/dist/components/EvRadio/EvRadio.spec.d.ts +1 -0
  35. package/dist/components/EvRadio/EvRadio.vue.d.ts +1 -0
  36. package/dist/components/EvRadio/EvRadioOption.vue.d.ts +2 -0
  37. package/dist/components/EvSegmentedControl/EvSegmentedControl.vue.d.ts +8 -0
  38. package/dist/components/EvToggle/EvToggle.spec.d.ts +1 -0
  39. package/dist/components/EvToggle/EvToggle.vue.d.ts +7 -2
  40. package/dist/evx-ui-kit.cjs.js +26 -7
  41. package/dist/evx-ui-kit.cjs.js.map +1 -1
  42. package/dist/evx-ui-kit.css +1 -1
  43. package/dist/evx-ui-kit.es.js +6084 -5528
  44. package/dist/evx-ui-kit.es.js.map +1 -1
  45. package/dist/index.d.ts +1 -0
  46. package/dist/theme.css +6 -0
  47. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- export type BadgeVariant = 'active' | 'inactive' | 'pending' | 'warning' | 'info' | 'error' | 'count' | 'count-neutral';
1
+ export type BadgeVariant = 'active' | 'success' | 'inactive' | 'pending' | 'warning' | 'info' | 'confirmed' | 'error' | 'count' | 'count-neutral';
2
2
  export declare const badgeBase = "inline-flex items-center";
3
3
  export declare const statusBase = "px-3 py-1 rounded-full text-xs-regular ring-1 ring-inset";
4
4
  export declare const countBase = "px-1.5 py-0.5 rounded text-[10px] font-medium leading-none";
@@ -10,6 +10,9 @@ export declare const variants: {
10
10
  danger: string;
11
11
  success: string;
12
12
  warning: string;
13
+ action: string;
14
+ growth: string;
15
+ accent: string;
13
16
  icon: string;
14
17
  };
15
18
  export declare const sizes: {
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ /**
2
+ * DEV-631 — root container brick of the `EvCard.*` compound family.
3
+ * Token-driven, polymorphic (`div`/`button`/`a`), `class` always twMerge'd.
4
+ * Selection is controlled/external — `selected` is a purely visual state; the
5
+ * select checkbox lives in the recipe, not here.
6
+ */
7
+ export interface EvCardProps {
8
+ /** Polymorphic root element. */
9
+ as?: 'div' | 'button' | 'a';
10
+ /** Visual selected state (border-brand-blue + #F5F8FF). Controlled externally. */
11
+ selected?: boolean;
12
+ /** Hover affordance + cursor for clickable cards. */
13
+ interactive?: boolean;
14
+ /** Dims + blocks interaction; native `disabled` when `as="button"`. */
15
+ disabled?: boolean;
16
+ /** Visual-only dim (e.g. a hidden/archived card) — stays interactive. */
17
+ dimmed?: boolean;
18
+ /** Padding scale: none=0, sm=12px, md=16px. */
19
+ padding?: 'none' | 'sm' | 'md';
20
+ /** Radius: md=8px, lg=12px, xl=16px. */
21
+ radius?: 'md' | 'lg' | 'xl';
22
+ class?: string;
23
+ }
24
+ declare function __VLS_template(): {
25
+ attrs: Partial<{}>;
26
+ slots: {
27
+ default?(_: {}): any;
28
+ };
29
+ refs: {};
30
+ rootEl: any;
31
+ };
32
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
33
+ declare const __VLS_component: import('vue').DefineComponent<EvCardProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
34
+ click: (event: MouseEvent) => any;
35
+ }, string, import('vue').PublicProps, Readonly<EvCardProps> & Readonly<{
36
+ onClick?: ((event: MouseEvent) => any) | undefined;
37
+ }>, {
38
+ as: "div" | "button" | "a";
39
+ disabled: boolean;
40
+ radius: "md" | "lg" | "xl";
41
+ selected: boolean;
42
+ interactive: boolean;
43
+ dimmed: boolean;
44
+ padding: "none" | "sm" | "md";
45
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
46
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
47
+ export default _default;
48
+ type __VLS_WithTemplateSlots<T, S> = T & {
49
+ new (): {
50
+ $slots: S;
51
+ };
52
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ /** DEV-631 — bottom action row; optional top divider. */
2
+ export interface EvCardActionsProps {
3
+ divided?: boolean;
4
+ justify?: 'start' | 'center' | 'end' | 'between';
5
+ class?: string;
6
+ }
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ default?(_: {}): any;
11
+ };
12
+ refs: {};
13
+ rootEl: HTMLDivElement;
14
+ };
15
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
+ declare const __VLS_component: import('vue').DefineComponent<EvCardActionsProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardActionsProps> & Readonly<{}>, {
17
+ divided: boolean;
18
+ justify: "start" | "center" | "end" | "between";
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
20
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
21
+ export default _default;
22
+ type __VLS_WithTemplateSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ /** DEV-631 — round avatar brick: image when `src` is set, else the name initial. */
2
+ export interface EvCardAvatarProps {
3
+ src?: string;
4
+ name?: string;
5
+ class?: string;
6
+ }
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ default?(_: {}): any;
11
+ };
12
+ refs: {};
13
+ rootEl: HTMLSpanElement;
14
+ };
15
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
+ declare const __VLS_component: import('vue').DefineComponent<EvCardAvatarProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardAvatarProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
17
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
18
+ export default _default;
19
+ type __VLS_WithTemplateSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ /** DEV-631 — label/value unit. Default slot wins over the `value` prop. */
2
+ export interface EvCardFieldProps {
3
+ label?: string;
4
+ value?: string | number;
5
+ align?: 'start' | 'end';
6
+ /** Tabular figures for aligned numbers/dates. */
7
+ numeric?: boolean;
8
+ /** Single-line truncation of the value. Disable for chips / wrapping values. */
9
+ truncate?: boolean;
10
+ class?: string;
11
+ }
12
+ declare function __VLS_template(): {
13
+ attrs: Partial<{}>;
14
+ slots: {
15
+ default?(_: {}): any;
16
+ };
17
+ refs: {};
18
+ rootEl: HTMLDivElement;
19
+ };
20
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
+ declare const __VLS_component: import('vue').DefineComponent<EvCardFieldProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardFieldProps> & Readonly<{}>, {
22
+ truncate: boolean;
23
+ numeric: boolean;
24
+ align: "start" | "end";
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
27
+ export default _default;
28
+ type __VLS_WithTemplateSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ /** DEV-631 — top row: title block (default slot) + #trailing (badge / menu). */
2
+ export interface EvCardHeaderProps {
3
+ align?: 'start' | 'center' | 'end';
4
+ class?: string;
5
+ }
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ default?(_: {}): any;
10
+ trailing?(_: {}): any;
11
+ };
12
+ refs: {};
13
+ rootEl: HTMLDivElement;
14
+ };
15
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
+ declare const __VLS_component: import('vue').DefineComponent<EvCardHeaderProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardHeaderProps> & Readonly<{}>, {
17
+ align: "start" | "center" | "end";
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
19
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
20
+ export default _default;
21
+ type __VLS_WithTemplateSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,32 @@
1
+ /** DEV-631 — cover/media region. Framed by default (concentric 4px inner radius). */
2
+ export interface EvCardMediaProps {
3
+ /** Aspect ratio token, applied as inline `aspect-ratio` (e.g. '8/5'). */
4
+ ratio?: string;
5
+ /** Concentric frame: outer p-1 + inner ring + rounded-[4px]. */
6
+ framed?: boolean;
7
+ objectFit?: 'cover' | 'contain';
8
+ class?: string;
9
+ }
10
+ declare function __VLS_template(): {
11
+ attrs: Partial<{}>;
12
+ slots: {
13
+ default?(_: {}): any;
14
+ placeholder?(_: {}): any;
15
+ overlay?(_: {}): any;
16
+ };
17
+ refs: {};
18
+ rootEl: HTMLDivElement;
19
+ };
20
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
+ declare const __VLS_component: import('vue').DefineComponent<EvCardMediaProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardMediaProps> & Readonly<{}>, {
22
+ ratio: string;
23
+ framed: boolean;
24
+ objectFit: "cover" | "contain";
25
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
26
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
27
+ export default _default;
28
+ type __VLS_WithTemplateSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ /** DEV-631 — small muted meta line (e.g. '#1024 · 5 denom.'). */
2
+ export interface EvCardMetaProps {
3
+ tabularNums?: boolean;
4
+ class?: string;
5
+ }
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ default?(_: {}): any;
10
+ };
11
+ refs: {};
12
+ rootEl: HTMLSpanElement;
13
+ };
14
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
+ declare const __VLS_component: import('vue').DefineComponent<EvCardMetaProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardMetaProps> & Readonly<{}>, {
16
+ tabularNums: boolean;
17
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
18
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
19
+ export default _default;
20
+ type __VLS_WithTemplateSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,26 @@
1
+ /** DEV-631 — corner badge over `EvCardMedia` (e.g. Popular / Hidden). */
2
+ export interface EvCardOverlayBadgeProps {
3
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
4
+ tone?: 'dark' | 'light';
5
+ class?: string;
6
+ }
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ default?(_: {}): any;
11
+ };
12
+ refs: {};
13
+ rootEl: HTMLSpanElement;
14
+ };
15
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
+ declare const __VLS_component: import('vue').DefineComponent<EvCardOverlayBadgeProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardOverlayBadgeProps> & Readonly<{}>, {
17
+ position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
18
+ tone: "dark" | "light";
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
20
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
21
+ export default _default;
22
+ type __VLS_WithTemplateSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,26 @@
1
+ /** DEV-631 — body section; optional top divider + field-grid mode. */
2
+ export interface EvCardSectionProps {
3
+ divided?: boolean;
4
+ cols?: 1 | 2 | 3;
5
+ class?: string;
6
+ }
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ default?(_: {}): any;
11
+ };
12
+ refs: {};
13
+ rootEl: HTMLDivElement;
14
+ };
15
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
+ declare const __VLS_component: import('vue').DefineComponent<EvCardSectionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardSectionProps> & Readonly<{}>, {
17
+ divided: boolean;
18
+ cols: 1 | 2 | 3;
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
20
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
21
+ export default _default;
22
+ type __VLS_WithTemplateSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ /** DEV-631 — muted subtitle line under the title. */
2
+ export interface EvCardSubtitleProps {
3
+ lines?: 1 | 2;
4
+ class?: string;
5
+ }
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ default?(_: {}): any;
10
+ };
11
+ refs: {};
12
+ rootEl: HTMLDivElement;
13
+ };
14
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
+ declare const __VLS_component: import('vue').DefineComponent<EvCardSubtitleProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardSubtitleProps> & Readonly<{}>, {
16
+ lines: 1 | 2;
17
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
18
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
19
+ export default _default;
20
+ type __VLS_WithTemplateSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ /** DEV-631 — card title. Clamps + auto title-attr tooltip for truncated text. */
2
+ export interface EvCardTitleProps {
3
+ lines?: 1 | 2 | 3;
4
+ class?: string;
5
+ }
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ default?(_: {}): any;
10
+ };
11
+ refs: {};
12
+ rootEl: HTMLDivElement;
13
+ };
14
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
+ declare const __VLS_component: import('vue').DefineComponent<EvCardTitleProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvCardTitleProps> & Readonly<{}>, {
16
+ lines: 1 | 2 | 3;
17
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
18
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
19
+ export default _default;
20
+ type __VLS_WithTemplateSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
@@ -0,0 +1,22 @@
1
+ export { default as EvCard } from './EvCard.vue';
2
+ export { default as EvCardMedia } from './EvCardMedia.vue';
3
+ export { default as EvCardOverlayBadge } from './EvCardOverlayBadge.vue';
4
+ export { default as EvCardHeader } from './EvCardHeader.vue';
5
+ export { default as EvCardTitle } from './EvCardTitle.vue';
6
+ export { default as EvCardSubtitle } from './EvCardSubtitle.vue';
7
+ export { default as EvCardSection } from './EvCardSection.vue';
8
+ export { default as EvCardField } from './EvCardField.vue';
9
+ export { default as EvCardActions } from './EvCardActions.vue';
10
+ export { default as EvCardMeta } from './EvCardMeta.vue';
11
+ export { default as EvCardAvatar } from './EvCardAvatar.vue';
12
+ export type { EvCardProps } from './EvCard.vue';
13
+ export type { EvCardMediaProps } from './EvCardMedia.vue';
14
+ export type { EvCardOverlayBadgeProps } from './EvCardOverlayBadge.vue';
15
+ export type { EvCardHeaderProps } from './EvCardHeader.vue';
16
+ export type { EvCardTitleProps } from './EvCardTitle.vue';
17
+ export type { EvCardSubtitleProps } from './EvCardSubtitle.vue';
18
+ export type { EvCardSectionProps } from './EvCardSection.vue';
19
+ export type { EvCardFieldProps } from './EvCardField.vue';
20
+ export type { EvCardActionsProps } from './EvCardActions.vue';
21
+ export type { EvCardMetaProps } from './EvCardMeta.vue';
22
+ export type { EvCardAvatarProps } from './EvCardAvatar.vue';
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,14 @@
1
+ type __VLS_Props = {
2
+ variant?: 'default' | 'brand';
3
+ };
1
4
  type __VLS_PublicProps = {
2
5
  modelValue?: boolean;
3
- };
6
+ } & __VLS_Props;
4
7
  declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
8
  "update:modelValue": (value: boolean) => any;
6
9
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
7
10
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
8
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ }>, {
12
+ variant: "default" | "brand";
13
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
9
14
  export default _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ import { EvDataTableColumn } from './types.ts';
2
+ declare const _default: <T extends Record<string, unknown> = Record<string, unknown>>(__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<{
3
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
+ readonly onClick?: (() => any) | undefined;
5
+ readonly onToggle?: (() => any) | undefined;
6
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onClick" | "onToggle"> & {
7
+ row: T;
8
+ /** Column shown as the card heading (top, full width). */
9
+ titleColumn?: EvDataTableColumn;
10
+ /** Columns rendered in the label:value grid. */
11
+ gridColumns?: EvDataTableColumn[];
12
+ /** Column rendered in the actions footer (right-aligned). */
13
+ actionsColumn?: EvDataTableColumn;
14
+ selectable?: boolean;
15
+ selected?: boolean;
16
+ selectLabel?: string;
17
+ /** Grid density for the label:value section. */
18
+ gridCols?: 1 | 2 | 3;
19
+ } & Partial<{}>> & import('vue').PublicProps;
20
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
21
+ attrs: any;
22
+ slots: Partial<Record<`cell-${string}`, (_: {
23
+ row: T;
24
+ value: unknown;
25
+ }) => any>> & Partial<Record<`cell-${string}`, (_: {
26
+ row: T;
27
+ value: unknown;
28
+ }) => any>> & Partial<Record<`cell-${string}`, (_: {
29
+ row: T;
30
+ value: unknown;
31
+ }) => any>>;
32
+ emit: ((evt: "click") => void) & ((evt: "toggle") => void);
33
+ }>) => import('vue').VNode & {
34
+ __ctx?: Awaited<typeof __VLS_setup>;
35
+ };
36
+ export default _default;
37
+ type __VLS_PrettifyLocal<T> = {
38
+ [K in keyof T]: T[K];
39
+ } & {};
@@ -3,28 +3,32 @@ declare const _default: <T extends Record<string, unknown> = Record<string, unkn
3
3
  props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
4
4
  readonly onSort?: ((field: string, direction: "desc" | "asc") => any) | undefined;
5
5
  readonly "onUpdate:page"?: ((page: number) => any) | undefined;
6
+ readonly "onUpdate:view"?: ((value: "table" | "cards") => any) | undefined;
6
7
  readonly "onRow-click"?: ((row: T) => any) | undefined;
7
8
  readonly "onUpdate:selectedKeys"?: ((keys: (string | number)[]) => any) | undefined;
8
- } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:page" | "onSort" | "onRow-click" | "onUpdate:selectedKeys"> & EvDataTableProps<T> & Partial<{}>> & import('vue').PublicProps;
9
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:page" | "onSort" | "onUpdate:view" | "onRow-click" | "onUpdate:selectedKeys"> & ({
10
+ view?: "table" | "cards";
11
+ } & EvDataTableProps<T>) & Partial<{}>> & import('vue').PublicProps;
9
12
  expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
10
13
  attrs: any;
11
14
  slots: Partial<Record<`cell-${string}`, (_: {
12
15
  row: T;
13
16
  value: unknown;
14
- }) => any>> & Partial<Record<`cell-${string}`, (_: {
15
- row: T;
16
- value: unknown;
17
- }) => any>> & Partial<Record<`cell-${string}`, (_: {
18
- row: T;
19
- value: unknown;
20
- }) => any>> & Partial<Record<`cell-${string}`, (_: {
17
+ }) => any>> & Partial<Record<number, (_: {
21
18
  row: T;
22
19
  value: unknown;
23
20
  }) => any>> & {
24
21
  empty?(_: {}): any;
25
22
  empty?(_: {}): any;
23
+ card?(_: {
24
+ row: T;
25
+ index: number;
26
+ selected: boolean;
27
+ selectable: boolean;
28
+ toggleSelect: () => void;
29
+ }): any;
26
30
  };
27
- emit: ((evt: "sort", field: string, direction: "desc" | "asc") => void) & ((evt: "update:page", page: number) => void) & ((evt: "row-click", row: T) => void) & ((evt: "update:selectedKeys", keys: (string | number)[]) => void);
31
+ emit: (((evt: "sort", field: string, direction: "desc" | "asc") => void) & ((evt: "update:page", page: number) => void) & ((evt: "row-click", row: T) => void) & ((evt: "update:selectedKeys", keys: (string | number)[]) => void)) & ((evt: "update:view", value: "table" | "cards") => void);
28
32
  }>) => import('vue').VNode & {
29
33
  __ctx?: Awaited<typeof __VLS_setup>;
30
34
  };
@@ -1,2 +1,3 @@
1
1
  export { default as EvDataTable } from './EvDataTable.vue';
2
+ export { default as EvDataCard } from './EvDataCard.vue';
2
3
  export type { EvDataTableColumn, EvDataTableProps } from './types.ts';
@@ -24,6 +24,16 @@ export interface EvDataTableProps<T extends Record<string, unknown> = Record<str
24
24
  mobileLayout?: 'auto' | 'cards' | 'table';
25
25
  /** Column key used as the card title in card layout. Defaults to the first column. */
26
26
  cardTitleKey?: string;
27
+ /** Card grid density for the label:value section. Default 2. */
28
+ cardGridCols?: 1 | 2 | 3;
29
+ /**
30
+ * Scope of the Card/Table view toggle (DEV-611):
31
+ * - false (default): legacy — toggle under lg only, desktop always table (`mobileLayout` rules).
32
+ * - true: toggle shown at ALL breakpoints and switches table<->cards on desktop too,
33
+ * driven by the `view` v-model (defaults to 'table'). When true, `mobileLayout` is
34
+ * ignored and the card list renders as a responsive grid (1/2/3 cols by breakpoint).
35
+ */
36
+ viewToggle?: boolean;
27
37
  /**
28
38
  * Accessible-name builder for the per-row selection checkbox (card + table).
29
39
  * Defaults to `Select <rowKey value>`. The header select-all is always "Select all".
@@ -11,6 +11,7 @@ export declare const icons: {
11
11
  'layout-dashboard': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
12
12
  'layout-grid': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
13
13
  layers: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
14
+ list: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
14
15
  table: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
15
16
  menu: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
16
17
  'chevron-left': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
@@ -64,6 +65,7 @@ export declare const icons: {
64
65
  settings: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
65
66
  image: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
66
67
  sparkles: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
68
+ star: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
67
69
  construction: import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
68
70
  'chevrons-up-down': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
69
71
  'ellipsis-vertical': import('vue').FunctionalComponent<import('lucide-vue-next').LucideProps, {}, any, {}>;
@@ -0,0 +1 @@
1
+ export {};
@@ -10,6 +10,7 @@ export interface EvRadioProps {
10
10
  label?: string;
11
11
  disabled?: boolean;
12
12
  name?: string;
13
+ variant?: 'default' | 'brand';
13
14
  }
14
15
  declare const _default: import('vue').DefineComponent<EvRadioProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
16
  "update:modelValue": (...args: any[]) => void;
@@ -2,6 +2,7 @@ export interface EvRadioOptionProps {
2
2
  value: any;
3
3
  disabled?: boolean;
4
4
  as?: string | object;
5
+ variant?: 'default' | 'brand';
5
6
  }
6
7
  declare function __VLS_template(): {
7
8
  attrs: Partial<{}>;
@@ -25,6 +26,7 @@ declare function __VLS_template(): {
25
26
  };
26
27
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
27
28
  declare const __VLS_component: import('vue').DefineComponent<EvRadioOptionProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<EvRadioOptionProps> & Readonly<{}>, {
29
+ variant: "default" | "brand";
28
30
  as: string | object;
29
31
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
30
32
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -2,6 +2,13 @@ import { SegmentOption } from './types';
2
2
  interface Props {
3
3
  options: SegmentOption[];
4
4
  size?: 'sm' | 'md' | 'lg';
5
+ /**
6
+ * When true AND there are exactly 2 options, the whole control behaves as a
7
+ * boolean toggle: a click (or Enter/Space) anywhere flips to the other option,
8
+ * so the user doesn't have to aim at the inactive segment. With ≠2 options it
9
+ * is ignored and the control stays a normal segmented selector.
10
+ */
11
+ toggle?: boolean;
5
12
  class?: string;
6
13
  }
7
14
  type __VLS_Props = Props;
@@ -14,5 +21,6 @@ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {},
14
21
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
15
22
  }>, {
16
23
  size: "sm" | "md" | "lg";
24
+ toggle: boolean;
17
25
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
18
26
  export default _default;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,14 @@
1
+ type __VLS_Props = {
2
+ variant?: 'default' | 'brand';
3
+ };
1
4
  type __VLS_PublicProps = {
2
5
  modelValue?: boolean;
3
- };
6
+ } & __VLS_Props;
4
7
  declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
8
  "update:modelValue": (value: boolean) => any;
6
9
  }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
7
10
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
8
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ }>, {
12
+ variant: "default" | "brand";
13
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
9
14
  export default _default;