@datametria/vue-components 2.3.0 → 2.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 (128) hide show
  1. package/README.md +625 -594
  2. package/dist/index.es.js +1962 -1887
  3. package/dist/index.umd.js +6 -6
  4. package/dist/src/components/DatametriaForm.vue.d.ts +1 -1
  5. package/dist/src/components/DatametriaInput.vue.d.ts +9 -1
  6. package/dist/src/components/DatametriaSelect.vue.d.ts +10 -1
  7. package/dist/vue-components.css +1 -1
  8. package/package.json +103 -105
  9. package/src/components/DatametriaAlert.vue +151 -133
  10. package/src/components/DatametriaAutocomplete.vue +250 -229
  11. package/src/components/DatametriaAvatar.vue +256 -238
  12. package/src/components/DatametriaBadge.vue +101 -96
  13. package/src/components/DatametriaBreadcrumb.vue +132 -128
  14. package/src/components/DatametriaButton.vue +191 -173
  15. package/src/components/DatametriaCard.vue +84 -66
  16. package/src/components/DatametriaCheckbox.vue +197 -193
  17. package/src/components/DatametriaCheckboxGroup.vue +56 -38
  18. package/src/components/DatametriaChip.vue +159 -141
  19. package/src/components/DatametriaContainer.vue +70 -52
  20. package/src/components/DatametriaDataTable.vue +318 -300
  21. package/src/components/DatametriaDatePicker.vue +396 -378
  22. package/src/components/DatametriaDialog.vue +297 -293
  23. package/src/components/DatametriaDivider.vue +105 -98
  24. package/src/components/DatametriaDropdown.vue +356 -350
  25. package/src/components/DatametriaEmpty.vue +155 -151
  26. package/src/components/DatametriaFileUpload.vue +413 -395
  27. package/src/components/DatametriaFloatingBar.vue +144 -126
  28. package/src/components/DatametriaForm.vue +174 -156
  29. package/src/components/DatametriaFormItem.vue +183 -179
  30. package/src/components/DatametriaGrid.vue +55 -37
  31. package/src/components/DatametriaInput.vue +314 -263
  32. package/src/components/DatametriaMenu.vue +618 -600
  33. package/src/components/DatametriaModal.vue +147 -129
  34. package/src/components/DatametriaNavbar.vue +277 -223
  35. package/src/components/DatametriaPagination.vue +375 -371
  36. package/src/components/DatametriaPasswordInput.vue +444 -426
  37. package/src/components/DatametriaPopconfirm.vue +240 -234
  38. package/src/components/DatametriaProgress.vue +228 -224
  39. package/src/components/DatametriaRadio.vue +151 -147
  40. package/src/components/DatametriaRadioGroup.vue +55 -37
  41. package/src/components/DatametriaResult.vue +135 -131
  42. package/src/components/DatametriaSelect.vue +311 -211
  43. package/src/components/DatametriaSidebar.vue +294 -222
  44. package/src/components/DatametriaSkeleton.vue +257 -234
  45. package/src/components/DatametriaSlider.vue +409 -391
  46. package/src/components/DatametriaSortableTable.vue +820 -802
  47. package/src/components/DatametriaSpinner.vue +114 -110
  48. package/src/components/DatametriaSteps.vue +318 -312
  49. package/src/components/DatametriaSwitch.vue +146 -142
  50. package/src/components/DatametriaTabPane.vue +94 -76
  51. package/src/components/DatametriaTable.vue +118 -100
  52. package/src/components/DatametriaTabs.vue +315 -297
  53. package/src/components/DatametriaTextarea.vue +213 -195
  54. package/src/components/DatametriaTimePicker.vue +317 -299
  55. package/src/components/DatametriaToast.vue +176 -176
  56. package/src/components/DatametriaTooltip.vue +421 -400
  57. package/src/components/DatametriaTree.vue +126 -122
  58. package/src/components/DatametriaTreeNode.vue +176 -172
  59. package/src/components/DatametriaUpload.vue +379 -361
  60. package/src/components/__tests__/DatametriaAlert.test.js +35 -35
  61. package/src/components/__tests__/DatametriaAlert.test.ts +190 -190
  62. package/src/components/__tests__/DatametriaAvatar.test.ts +151 -151
  63. package/src/components/__tests__/DatametriaBadge.test.js +29 -29
  64. package/src/components/__tests__/DatametriaBadge.test.ts +167 -167
  65. package/src/components/__tests__/DatametriaBreadcrumb.test.ts +187 -0
  66. package/src/components/__tests__/DatametriaButton.test.js +30 -30
  67. package/src/components/__tests__/DatametriaButton.test.ts +283 -283
  68. package/src/components/__tests__/DatametriaCard.test.ts +201 -201
  69. package/src/components/__tests__/DatametriaCheckbox.test.ts +204 -0
  70. package/src/components/__tests__/DatametriaChip.test.js +38 -38
  71. package/src/components/__tests__/DatametriaContainer.test.ts +52 -52
  72. package/src/components/__tests__/DatametriaDialog.test.ts +338 -0
  73. package/src/components/__tests__/DatametriaDivider.test.ts +54 -54
  74. package/src/components/__tests__/DatametriaDropdown.test.ts +357 -0
  75. package/src/components/__tests__/DatametriaEmpty.test.ts +261 -0
  76. package/src/components/__tests__/DatametriaFileUpload.test.ts +290 -290
  77. package/src/components/__tests__/DatametriaFloatingBar.test.ts +137 -137
  78. package/src/components/__tests__/DatametriaForm.test.ts +96 -0
  79. package/src/components/__tests__/DatametriaFormItem.test.ts +58 -0
  80. package/src/components/__tests__/DatametriaGrid.test.ts +31 -31
  81. package/src/components/__tests__/DatametriaInput.test.ts +72 -72
  82. package/src/components/__tests__/DatametriaMenu.test.ts +366 -366
  83. package/src/components/__tests__/DatametriaModal.test.ts +86 -86
  84. package/src/components/__tests__/DatametriaNavbar.test.js +48 -48
  85. package/src/components/__tests__/DatametriaNavbar.test.ts +203 -203
  86. package/src/components/__tests__/DatametriaPasswordInput.test.js +305 -305
  87. package/src/components/__tests__/DatametriaRadio.test.ts +195 -0
  88. package/src/components/__tests__/DatametriaSelect.test.ts +77 -77
  89. package/src/components/__tests__/DatametriaSidebar.test.ts +169 -169
  90. package/src/components/__tests__/DatametriaSlider.test.ts +261 -261
  91. package/src/components/__tests__/DatametriaSortableTable.test.js +168 -168
  92. package/src/components/__tests__/DatametriaSpinner.test.ts +156 -156
  93. package/src/components/__tests__/DatametriaSteps.test.ts +211 -0
  94. package/src/components/__tests__/DatametriaSwitch.test.ts +129 -0
  95. package/src/components/__tests__/DatametriaTabPane.test.ts +205 -0
  96. package/src/components/__tests__/DatametriaTable.test.ts +97 -97
  97. package/src/components/__tests__/DatametriaTabs.test.ts +232 -232
  98. package/src/components/__tests__/DatametriaToast.test.js +48 -48
  99. package/src/components/__tests__/DatametriaToast.test.ts +99 -99
  100. package/src/components/__tests__/DatametriaTree.test.ts +376 -0
  101. package/src/components/__tests__/index.test.ts +48 -0
  102. package/src/composables/useAccessibilityScale.ts +94 -94
  103. package/src/composables/useBreakpoints.ts +82 -82
  104. package/src/composables/useHapticFeedback.ts +439 -439
  105. package/src/composables/useRipple.ts +218 -218
  106. package/src/composables/useTheme.ts +5 -1
  107. package/src/index.ts +84 -84
  108. package/src/stories/Variants.stories.js +95 -95
  109. package/src/styles/design-tokens.css +623 -623
  110. package/src/theme/ThemeProvider.vue +96 -96
  111. package/src/theme/__tests__/ThemeProvider.test.ts +208 -208
  112. package/src/theme/__tests__/constants.test.ts +31 -31
  113. package/src/theme/__tests__/presets.test.ts +166 -166
  114. package/src/theme/__tests__/tokens.test.ts +155 -155
  115. package/src/theme/__tests__/types.test.ts +153 -153
  116. package/src/theme/__tests__/useTheme.test.ts +146 -146
  117. package/src/theme/constants.ts +14 -14
  118. package/src/theme/index.ts +12 -12
  119. package/src/theme/presets/datametria.ts +94 -94
  120. package/src/theme/presets/default.ts +94 -94
  121. package/src/theme/presets/index.ts +8 -8
  122. package/src/theme/tokens/colors.ts +28 -28
  123. package/src/theme/tokens/index.ts +47 -47
  124. package/src/theme/tokens/spacing.ts +21 -21
  125. package/src/theme/tokens/typography.ts +35 -35
  126. package/src/theme/types.ts +111 -111
  127. package/src/theme/useTheme.ts +28 -28
  128. package/src/types/index.ts +55 -55
@@ -1,112 +1,116 @@
1
- <template>
2
- <div
3
- class="dm-spinner"
4
- :class="[`dm-spinner--${size}`, `dm-spinner--${variant}`]"
5
- role="status"
6
- :aria-label="ariaLabel"
7
- >
8
- <svg class="dm-spinner__svg" viewBox="0 0 50 50">
9
- <circle
10
- class="dm-spinner__circle"
11
- cx="25"
12
- cy="25"
13
- r="20"
14
- fill="none"
15
- stroke-width="4"
16
- ></circle>
17
- </svg>
18
- <span v-if="label" class="dm-spinner__label">{{ label }}</span>
19
- </div>
20
- </template>
21
-
22
- <script setup lang="ts">
23
- interface Props {
24
- size?: 'sm' | 'md' | 'lg'
25
- variant?: 'primary' | 'secondary' | 'white'
26
- label?: string
27
- ariaLabel?: string
28
- }
29
-
30
- withDefaults(defineProps<Props>(), {
31
- size: 'md',
32
- variant: 'primary',
33
- ariaLabel: 'Carregando'
34
- })
35
- </script>
36
-
37
- <style scoped>
38
- .dm-spinner {
39
- display: inline-flex;
40
- flex-direction: column;
41
- align-items: center;
42
- gap: var(--dm-spacing-2, 0.5rem);
43
- }
44
-
45
- .dm-spinner__svg {
46
- animation: dm-spinner-rotate 2s linear infinite;
47
- }
48
-
49
- .dm-spinner--sm .dm-spinner__svg {
50
- width: 20px;
51
- height: 20px;
52
- }
53
-
54
- .dm-spinner--md .dm-spinner__svg {
55
- width: 40px;
56
- height: 40px;
57
- }
58
-
59
- .dm-spinner--lg .dm-spinner__svg {
60
- width: 60px;
61
- height: 60px;
62
- }
63
-
64
- .dm-spinner__circle {
65
- stroke-linecap: round;
66
- animation: dm-spinner-dash 1.5s ease-in-out infinite;
67
- }
68
-
69
- .dm-spinner--primary .dm-spinner__circle {
70
- stroke: var(--dm-primary, #0072CE);
71
- }
72
-
73
- .dm-spinner--secondary .dm-spinner__circle {
74
- stroke: var(--dm-secondary, #4B0078);
75
- }
76
-
77
- .dm-spinner--white .dm-spinner__circle {
78
- stroke: var(--dm-neutral-50, #ffffff);
79
- }
80
-
81
- .dm-spinner__label {
82
- font-size: var(--dm-font-size-sm, 0.875rem);
83
- color: var(--dm-neutral-600, #4b5563);
84
- }
85
-
86
- @keyframes dm-spinner-rotate {
87
- 100% {
88
- transform: rotate(360deg);
1
+ <template>
2
+ <div
3
+ class="dm-spinner"
4
+ :class="[`dm-spinner--${size}`, `dm-spinner--${variant}`]"
5
+ role="status"
6
+ :aria-label="ariaLabel"
7
+ >
8
+ <svg class="dm-spinner__svg" viewBox="0 0 50 50">
9
+ <circle
10
+ class="dm-spinner__circle"
11
+ cx="25"
12
+ cy="25"
13
+ r="20"
14
+ fill="none"
15
+ stroke-width="4"
16
+ ></circle>
17
+ </svg>
18
+ <span v-if="label" class="dm-spinner__label">{{ label }}</span>
19
+ </div>
20
+ </template>
21
+
22
+ <script setup lang="ts">
23
+ interface Props {
24
+ size?: 'sm' | 'md' | 'lg'
25
+ variant?: 'primary' | 'secondary' | 'white'
26
+ label?: string
27
+ ariaLabel?: string
28
+ }
29
+
30
+ withDefaults(defineProps<Props>(), {
31
+ size: 'md',
32
+ variant: 'primary',
33
+ ariaLabel: 'Carregando'
34
+ })
35
+ </script>
36
+
37
+ <style scoped>
38
+ .dm-spinner {
39
+ display: inline-flex;
40
+ flex-direction: column;
41
+ align-items: center;
42
+ gap: var(--dm-spacing-2, 0.5rem);
43
+ }
44
+
45
+ .dm-spinner__svg {
46
+ animation: dm-spinner-rotate 2s linear infinite;
47
+ }
48
+
49
+ .dm-spinner--sm .dm-spinner__svg {
50
+ width: 20px;
51
+ height: 20px;
52
+ }
53
+
54
+ .dm-spinner--md .dm-spinner__svg {
55
+ width: 40px;
56
+ height: 40px;
57
+ }
58
+
59
+ .dm-spinner--lg .dm-spinner__svg {
60
+ width: 60px;
61
+ height: 60px;
62
+ }
63
+
64
+ .dm-spinner__circle {
65
+ stroke-linecap: round;
66
+ animation: dm-spinner-dash 1.5s ease-in-out infinite;
67
+ }
68
+
69
+ .dm-spinner--primary .dm-spinner__circle {
70
+ stroke: var(--dm-primary, #0072CE);
71
+ }
72
+
73
+ .dm-spinner--secondary .dm-spinner__circle {
74
+ stroke: var(--dm-secondary, #4B0078);
75
+ }
76
+
77
+ .dm-spinner--white .dm-spinner__circle {
78
+ stroke: var(--dm-neutral-50, #ffffff);
79
+ }
80
+
81
+ .dm-spinner__label {
82
+ font-size: var(--dm-font-size-sm, 0.875rem);
83
+ color: var(--dm-neutral-600, #4b5563);
84
+ }
85
+
86
+ @keyframes dm-spinner-rotate {
87
+ 100% {
88
+ transform: rotate(360deg);
89
+ }
90
+ }
91
+
92
+ @keyframes dm-spinner-dash {
93
+ 0% {
94
+ stroke-dasharray: 1, 150;
95
+ stroke-dashoffset: 0;
96
+ }
97
+ 50% {
98
+ stroke-dasharray: 90, 150;
99
+ stroke-dashoffset: -35;
100
+ }
101
+ 100% {
102
+ stroke-dasharray: 90, 150;
103
+ stroke-dashoffset: -124;
104
+ }
105
+ }
106
+
107
+ @media (prefers-color-scheme: dark) {
108
+ .dm-spinner__label {
109
+ color: var(--dm-neutral-400, #9ca3af);
89
110
  }
90
- }
91
111
 
92
- @keyframes dm-spinner-dash {
93
- 0% {
94
- stroke-dasharray: 1, 150;
95
- stroke-dashoffset: 0;
96
- }
97
- 50% {
98
- stroke-dasharray: 90, 150;
99
- stroke-dashoffset: -35;
100
- }
101
- 100% {
102
- stroke-dasharray: 90, 150;
103
- stroke-dashoffset: -124;
104
- }
105
- }
106
-
107
- @media (prefers-color-scheme: dark) {
108
- .dm-spinner__label {
109
- color: var(--dm-neutral-400, #9ca3af);
110
- }
111
- }
112
- </style>
112
+ [data-theme="dark"] .dm-spinner__label {
113
+ color: var(--dm-neutral-400, #9ca3af);
114
+ }
115
+ }
116
+ </style>