@datametria/vue-components 2.4.0 → 2.4.2

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 (36) hide show
  1. package/README.md +57 -5
  2. package/dist/index.es.js +5812 -2837
  3. package/dist/index.umd.js +670 -10
  4. package/dist/src/components/DatametriaCheckbox.vue.d.ts +2 -0
  5. package/dist/src/components/DatametriaCheckboxGroup.vue.d.ts +6 -0
  6. package/dist/src/components/DatametriaFileUpload.vue.d.ts +5 -0
  7. package/dist/src/components/DatametriaFloatingBar.vue.d.ts +1 -1
  8. package/dist/src/components/DatametriaInput.vue.d.ts +2 -22
  9. package/dist/src/components/DatametriaNavbar.vue.d.ts +1 -1
  10. package/dist/src/components/DatametriaPasswordInput.vue.d.ts +2 -0
  11. package/dist/src/components/DatametriaRadio.vue.d.ts +2 -0
  12. package/dist/src/components/DatametriaRadioGroup.vue.d.ts +6 -0
  13. package/dist/src/components/DatametriaSelect.vue.d.ts +2 -3
  14. package/dist/src/components/DatametriaSidebar.vue.d.ts +1 -1
  15. package/dist/src/components/DatametriaSwitch.vue.d.ts +8 -1
  16. package/dist/src/components/DatametriaTabs.vue.d.ts +2 -2
  17. package/dist/src/components/DatametriaTextarea.vue.d.ts +6 -0
  18. package/dist/src/composables/useAnalytics.d.ts +8 -0
  19. package/dist/src/types/analytics.d.ts +50 -0
  20. package/dist/vue-components.css +1 -1
  21. package/package.json +3 -2
  22. package/src/components/DatametriaButton.vue +196 -195
  23. package/src/components/DatametriaCheckbox.vue +289 -197
  24. package/src/components/DatametriaCheckboxGroup.vue +161 -58
  25. package/src/components/DatametriaFileUpload.vue +493 -414
  26. package/src/components/DatametriaInput.vue +342 -316
  27. package/src/components/DatametriaPasswordInput.vue +433 -444
  28. package/src/components/DatametriaRadio.vue +240 -151
  29. package/src/components/DatametriaRadioGroup.vue +160 -57
  30. package/src/components/DatametriaSelect.vue +409 -313
  31. package/src/components/DatametriaSortableTable.vue +35 -29
  32. package/src/components/DatametriaSwitch.vue +319 -146
  33. package/src/components/DatametriaTabs.vue +2 -2
  34. package/src/components/DatametriaTextarea.vue +285 -213
  35. package/src/composables/useAnalytics.ts +70 -0
  36. package/src/types/analytics.ts +59 -0
@@ -5,6 +5,7 @@ interface Props {
5
5
  indeterminate?: boolean;
6
6
  trueValue?: boolean | string | number;
7
7
  falseValue?: boolean | string | number;
8
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8
9
  }
9
10
  declare function __VLS_template(): {
10
11
  attrs: Partial<{}>;
@@ -26,6 +27,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
26
27
  "onUpdate:modelValue"?: ((value: string | number | boolean | (string | number)[]) => any) | undefined;
27
28
  onChange?: ((value: string | number | boolean | (string | number)[]) => any) | undefined;
28
29
  }>, {
30
+ size: "xs" | "sm" | "md" | "lg" | "xl";
29
31
  disabled: boolean;
30
32
  modelValue: boolean | string | number;
31
33
  indeterminate: boolean;
@@ -1,6 +1,10 @@
1
1
  interface Props {
2
2
  modelValue?: (string | number)[];
3
3
  disabled?: boolean;
4
+ label?: string;
5
+ required?: boolean;
6
+ errorMessage?: string;
7
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
8
  }
5
9
  declare function __VLS_template(): {
6
10
  attrs: Partial<{}>;
@@ -18,8 +22,10 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
18
22
  "onUpdate:modelValue"?: ((value: (string | number)[]) => any) | undefined;
19
23
  onChange?: ((value: (string | number)[]) => any) | undefined;
20
24
  }>, {
25
+ size: "xs" | "sm" | "md" | "lg" | "xl";
21
26
  disabled: boolean;
22
27
  modelValue: (string | number)[];
28
+ required: boolean;
23
29
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
24
30
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
25
31
  export default _default;
@@ -9,6 +9,9 @@ interface Props {
9
9
  progress?: number;
10
10
  uploadText?: string;
11
11
  error?: string;
12
+ label?: string;
13
+ required?: boolean;
14
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
12
15
  }
13
16
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
14
17
  "update:modelValue": (value: File | File[]) => any;
@@ -19,8 +22,10 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
19
22
  "onFile-added"?: ((file: File) => any) | undefined;
20
23
  "onFile-removed"?: ((file: File, index: number) => any) | undefined;
21
24
  }>, {
25
+ size: "xs" | "sm" | "md" | "lg" | "xl";
22
26
  disabled: boolean;
23
27
  loading: boolean;
28
+ required: boolean;
24
29
  multiple: boolean;
25
30
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
26
31
  fileInputRef: HTMLInputElement;
@@ -17,9 +17,9 @@ declare function __VLS_template(): {
17
17
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
18
  declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
19
19
  variant: "light" | "dark" | "primary";
20
+ ariaLabel: string;
20
21
  position: "top" | "bottom" | "left" | "right";
21
22
  offset: string;
22
- ariaLabel: string;
23
23
  rounded: boolean;
24
24
  shadow: boolean;
25
25
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
@@ -1,37 +1,17 @@
1
- /**
2
- * DatametriaInput - Input de texto com validação e slots
3
- *
4
- * @component
5
- * @example
6
- * <DatametriaInput v-model="value" placeholder="Digite algo" />
7
- */
8
1
  interface Props {
9
- /** Valor do input */
10
2
  modelValue?: string | number;
11
- /** Label do input */
12
3
  label?: string;
13
- /** Campo obrigatório */
14
4
  required?: boolean;
15
- /** Mensagem de erro */
16
5
  errorMessage?: string;
17
- /** Tipo do input */
18
6
  type?: 'text' | 'password' | 'email' | 'number' | 'tel' | 'url';
19
- /** Placeholder */
20
7
  placeholder?: string;
21
- /** Input desabilitado */
22
8
  disabled?: boolean;
23
- /** Input somente leitura */
24
9
  readonly?: boolean;
25
- /** Botão de limpar */
26
10
  clearable?: boolean;
27
- /** Comprimento máximo */
28
11
  maxlength?: number;
29
- /** Ícone prefixo */
30
12
  prefixIcon?: string;
31
- /** Ícone sufixo */
32
13
  suffixIcon?: string;
33
- /** Tamanho */
34
- size?: 'small' | 'default' | 'large';
14
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
35
15
  }
36
16
  declare function __VLS_template(): {
37
17
  attrs: Partial<{}>;
@@ -65,7 +45,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
65
45
  onBlur?: ((event: FocusEvent) => any) | undefined;
66
46
  onClear?: (() => any) | undefined;
67
47
  }>, {
68
- size: "small" | "default" | "large";
48
+ size: "xs" | "sm" | "md" | "lg" | "xl";
69
49
  disabled: boolean;
70
50
  type: "text" | "password" | "email" | "number" | "tel" | "url";
71
51
  modelValue: string | number;
@@ -19,9 +19,9 @@ declare function __VLS_template(): {
19
19
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
20
  declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
21
21
  variant: "light" | "dark" | "transparent" | "primary";
22
+ ariaLabel: string;
22
23
  transparent: boolean;
23
24
  sticky: boolean;
24
- ariaLabel: string;
25
25
  brand: string;
26
26
  bordered: boolean;
27
27
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
@@ -10,6 +10,7 @@ interface Props {
10
10
  showStrength?: boolean;
11
11
  showRequirements?: boolean;
12
12
  autocomplete?: 'current-password' | 'new-password';
13
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
13
14
  }
14
15
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
16
  "update:modelValue": (value: string) => any;
@@ -18,6 +19,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
18
19
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
19
20
  "onStrength-change"?: ((strength: number) => any) | undefined;
20
21
  }>, {
22
+ size: "xs" | "sm" | "md" | "lg" | "xl";
21
23
  disabled: boolean;
22
24
  modelValue: string;
23
25
  required: boolean;
@@ -2,6 +2,7 @@ interface Props {
2
2
  modelValue?: string | number | boolean;
3
3
  label?: string;
4
4
  disabled?: boolean;
5
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
5
6
  }
6
7
  declare function __VLS_template(): {
7
8
  attrs: Partial<{}>;
@@ -23,6 +24,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
23
24
  "onUpdate:modelValue"?: ((value: string | number | boolean) => any) | undefined;
24
25
  onChange?: ((value: string | number | boolean) => any) | undefined;
25
26
  }>, {
27
+ size: "xs" | "sm" | "md" | "lg" | "xl";
26
28
  disabled: boolean;
27
29
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
28
30
  inputRef: HTMLInputElement;
@@ -1,6 +1,10 @@
1
1
  interface Props {
2
2
  modelValue?: string | number | boolean;
3
3
  disabled?: boolean;
4
+ label?: string;
5
+ required?: boolean;
6
+ errorMessage?: string;
7
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
4
8
  }
5
9
  declare function __VLS_template(): {
6
10
  attrs: Partial<{}>;
@@ -18,7 +22,9 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
18
22
  "onUpdate:modelValue"?: ((value: string | number | boolean) => any) | undefined;
19
23
  onChange?: ((value: string | number | boolean) => any) | undefined;
20
24
  }>, {
25
+ size: "xs" | "sm" | "md" | "lg" | "xl";
21
26
  disabled: boolean;
27
+ required: boolean;
22
28
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
23
29
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
24
30
  export default _default;
@@ -6,17 +6,15 @@ interface SelectOption {
6
6
  interface Props {
7
7
  modelValue: any | any[];
8
8
  options: SelectOption[];
9
- /** Label do select */
10
9
  label?: string;
11
- /** Campo obrigatório */
12
10
  required?: boolean;
13
- /** Mensagem de erro */
14
11
  errorMessage?: string;
15
12
  placeholder?: string;
16
13
  disabled?: boolean;
17
14
  clearable?: boolean;
18
15
  filterable?: boolean;
19
16
  multiple?: boolean;
17
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
20
18
  }
21
19
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
22
20
  "update:modelValue": (value: any) => any;
@@ -25,6 +23,7 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
25
23
  "onUpdate:modelValue"?: ((value: any) => any) | undefined;
26
24
  onChange?: ((value: any) => any) | undefined;
27
25
  }>, {
26
+ size: "xs" | "sm" | "md" | "lg" | "xl";
28
27
  disabled: boolean;
29
28
  required: boolean;
30
29
  placeholder: string;
@@ -31,8 +31,8 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {
31
31
  }>, {
32
32
  variant: "light" | "dark" | "primary";
33
33
  width: string;
34
- position: "left" | "right";
35
34
  ariaLabel: string;
35
+ position: "left" | "right";
36
36
  collapsible: boolean;
37
37
  defaultOpen: boolean;
38
38
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>;
@@ -2,8 +2,13 @@ interface Props {
2
2
  modelValue?: boolean;
3
3
  disabled?: boolean;
4
4
  loading?: boolean;
5
+ label?: string;
6
+ ariaLabel?: string;
7
+ required?: boolean;
8
+ errorMessage?: string;
5
9
  activeColor?: string;
6
10
  inactiveColor?: string;
11
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
7
12
  }
8
13
  declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
14
  "update:modelValue": (value: boolean) => any;
@@ -12,10 +17,12 @@ declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, imp
12
17
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
13
18
  onChange?: ((value: boolean) => any) | undefined;
14
19
  }>, {
20
+ size: "xs" | "sm" | "md" | "lg" | "xl";
15
21
  disabled: boolean;
16
22
  loading: boolean;
17
23
  modelValue: boolean;
24
+ required: boolean;
18
25
  activeColor: string;
19
26
  inactiveColor: string;
20
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLButtonElement>;
27
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
21
28
  export default _default;
@@ -7,7 +7,7 @@ interface Tab {
7
7
  interface Props {
8
8
  tabs: (string | Tab)[];
9
9
  modelValue?: number;
10
- variant?: 'default' | 'pills' | 'underline';
10
+ variant?: 'md' | 'pills' | 'underline';
11
11
  orientation?: 'horizontal' | 'vertical';
12
12
  showIndicator?: boolean;
13
13
  ariaLabel?: string;
@@ -26,7 +26,7 @@ declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {},
26
26
  "onUpdate:modelValue"?: ((index: number) => any) | undefined;
27
27
  onChange?: ((index: number) => any) | undefined;
28
28
  }>, {
29
- variant: "default" | "pills" | "underline";
29
+ variant: "md" | "pills" | "underline";
30
30
  modelValue: number;
31
31
  ariaLabel: string;
32
32
  orientation: "horizontal" | "vertical";
@@ -10,6 +10,10 @@ interface Props {
10
10
  minRows?: number;
11
11
  maxRows?: number;
12
12
  };
13
+ label?: string;
14
+ required?: boolean;
15
+ errorMessage?: string;
16
+ size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
13
17
  }
14
18
  declare const _default: import('vue').DefineComponent<Props, {
15
19
  focus: () => void | undefined;
@@ -25,8 +29,10 @@ declare const _default: import('vue').DefineComponent<Props, {
25
29
  onFocus?: ((event: FocusEvent) => any) | undefined;
26
30
  onBlur?: ((event: FocusEvent) => any) | undefined;
27
31
  }>, {
32
+ size: "xs" | "sm" | "md" | "lg" | "xl";
28
33
  disabled: boolean;
29
34
  modelValue: string;
35
+ required: boolean;
30
36
  placeholder: string;
31
37
  readonly: boolean;
32
38
  rows: number;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Firebase Analytics Composable
3
+ * @author Vander Loto - CTO DATAMETRIA
4
+ * @date 22/12/2025
5
+ */
6
+ export declare function useAnalytics(): {
7
+ trackEvent: (eventName: string, params?: Record<string, any>) => void;
8
+ };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Component Size Type (5 sizes)
3
+ * @author Vander Loto - CTO DATAMETRIA
4
+ * @date 22/12/2025
5
+ */
6
+ export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
7
+ export declare const ComponentSizeEnum: {
8
+ XS: ComponentSize;
9
+ SM: ComponentSize;
10
+ MD: ComponentSize;
11
+ LG: ComponentSize;
12
+ XL: ComponentSize;
13
+ };
14
+ /**
15
+ * Analytics Event Types
16
+ */
17
+ export interface AnalyticsEvent {
18
+ component: string;
19
+ [key: string]: any;
20
+ }
21
+ export interface ButtonClickEvent extends AnalyticsEvent {
22
+ variant?: string;
23
+ size?: ComponentSize;
24
+ }
25
+ export interface InputEvent extends AnalyticsEvent {
26
+ type?: string;
27
+ size?: ComponentSize;
28
+ hasValue?: boolean;
29
+ }
30
+ export interface ModalEvent extends AnalyticsEvent {
31
+ title?: string;
32
+ action?: 'open' | 'close' | 'confirm' | 'cancel';
33
+ }
34
+ export interface TableEvent extends AnalyticsEvent {
35
+ column?: string;
36
+ direction?: 'asc' | 'desc';
37
+ filterType?: string;
38
+ selectedCount?: number;
39
+ page?: number;
40
+ pageSize?: number;
41
+ }
42
+ export interface TabEvent extends AnalyticsEvent {
43
+ tabId: string;
44
+ tabLabel?: string;
45
+ }
46
+ export interface FormEvent extends AnalyticsEvent {
47
+ formId?: string;
48
+ fieldCount?: number;
49
+ errorCount?: number;
50
+ }