@datametria/vue-components 1.2.0 → 2.0.1

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 (97) hide show
  1. package/README.md +548 -657
  2. package/dist/index.es.js +2353 -1364
  3. package/dist/index.umd.js +10 -10
  4. package/dist/vue-components.css +1 -1
  5. package/package.json +102 -98
  6. package/src/components/DatametriaAlert.vue +137 -137
  7. package/src/components/DatametriaAutocomplete.vue +184 -138
  8. package/src/components/DatametriaAvatar.vue +177 -33
  9. package/src/components/DatametriaBadge.vue +98 -98
  10. package/src/components/DatametriaBreadcrumb.vue +21 -21
  11. package/src/components/DatametriaButton.vue +177 -165
  12. package/src/components/DatametriaCard.vue +12 -12
  13. package/src/components/DatametriaCheckbox.vue +8 -8
  14. package/src/components/DatametriaChip.vue +145 -149
  15. package/src/components/DatametriaContainer.vue +4 -4
  16. package/src/components/DatametriaDatePicker.vue +686 -68
  17. package/src/components/DatametriaDivider.vue +13 -13
  18. package/src/components/DatametriaFileUpload.vue +272 -140
  19. package/src/components/DatametriaGrid.vue +3 -3
  20. package/src/components/DatametriaInput.vue +15 -15
  21. package/src/components/DatametriaMenu.vue +604 -619
  22. package/src/components/DatametriaModal.vue +16 -16
  23. package/src/components/DatametriaNavbar.vue +230 -252
  24. package/src/components/DatametriaPasswordInput.vue +430 -0
  25. package/src/components/DatametriaProgress.vue +18 -18
  26. package/src/components/DatametriaRadio.vue +20 -20
  27. package/src/components/DatametriaSelect.vue +15 -15
  28. package/src/components/DatametriaSkeleton.vue +243 -239
  29. package/src/components/DatametriaSlider.vue +395 -407
  30. package/src/components/DatametriaSortableTable.vue +585 -0
  31. package/src/components/DatametriaSpinner.vue +7 -7
  32. package/src/components/DatametriaSwitch.vue +16 -16
  33. package/src/components/DatametriaTable.vue +14 -14
  34. package/src/components/DatametriaTextarea.vue +28 -28
  35. package/src/components/DatametriaTimePicker.vue +285 -285
  36. package/src/components/DatametriaToast.vue +176 -176
  37. package/src/components/DatametriaTooltip.vue +408 -408
  38. package/src/components/__tests__/DatametriaAlert.test.js +35 -35
  39. package/src/components/__tests__/DatametriaAlert.test.ts +190 -0
  40. package/src/components/__tests__/DatametriaAutocomplete.test.ts +180 -0
  41. package/src/components/__tests__/DatametriaAvatar.test.ts +152 -0
  42. package/src/components/__tests__/DatametriaBadge.test.js +29 -29
  43. package/src/components/__tests__/DatametriaBadge.test.ts +167 -0
  44. package/src/components/__tests__/DatametriaBreadcrumb.test.ts +75 -0
  45. package/src/components/__tests__/DatametriaButton.test.js +30 -30
  46. package/src/components/__tests__/DatametriaButton.test.ts +283 -0
  47. package/src/components/__tests__/DatametriaCard.test.ts +201 -0
  48. package/src/components/__tests__/DatametriaCheckbox.test.ts +47 -0
  49. package/src/components/__tests__/DatametriaChip.test.js +38 -38
  50. package/src/components/__tests__/DatametriaContainer.test.ts +52 -0
  51. package/src/components/__tests__/DatametriaDatePicker.test.ts +234 -0
  52. package/src/components/__tests__/DatametriaDivider.test.ts +54 -0
  53. package/src/components/__tests__/DatametriaFileUpload.test.ts +291 -0
  54. package/src/components/__tests__/DatametriaGrid.test.ts +31 -0
  55. package/src/components/__tests__/DatametriaInput.test.ts +72 -0
  56. package/src/components/__tests__/DatametriaMenu.test.ts +366 -0
  57. package/src/components/__tests__/DatametriaModal.test.ts +86 -0
  58. package/src/components/__tests__/DatametriaNavbar.test.js +48 -48
  59. package/src/components/__tests__/DatametriaNavbar.test.ts +203 -0
  60. package/src/components/__tests__/DatametriaPasswordInput.test.js +305 -0
  61. package/src/components/__tests__/DatametriaProgress.test.ts +90 -0
  62. package/src/components/__tests__/DatametriaRadio.test.ts +77 -0
  63. package/src/components/__tests__/DatametriaSelect.test.ts +77 -0
  64. package/src/components/__tests__/DatametriaSlider.test.ts +261 -0
  65. package/src/components/__tests__/DatametriaSortableTable.test.js +168 -0
  66. package/src/components/__tests__/DatametriaSpinner.test.ts +156 -0
  67. package/src/components/__tests__/DatametriaSwitch.test.ts +64 -0
  68. package/src/components/__tests__/DatametriaTable.test.ts +97 -0
  69. package/src/components/__tests__/DatametriaTextarea.test.ts +66 -0
  70. package/src/components/__tests__/DatametriaToast.test.js +48 -48
  71. package/src/components/__tests__/DatametriaToast.test.ts +99 -0
  72. package/src/composables/useAccessibilityScale.ts +94 -94
  73. package/src/composables/useBreakpoints.ts +82 -82
  74. package/src/composables/useHapticFeedback.ts +439 -439
  75. package/src/composables/useRipple.ts +218 -218
  76. package/src/index.ts +68 -61
  77. package/src/stories/Variants.stories.js +95 -95
  78. package/src/styles/design-tokens.css +623 -623
  79. package/src/theme/ThemeProvider.vue +96 -0
  80. package/src/theme/__tests__/ThemeProvider.test.ts +208 -0
  81. package/src/theme/__tests__/constants.test.ts +31 -0
  82. package/src/theme/__tests__/presets.test.ts +166 -0
  83. package/src/theme/__tests__/tokens.test.ts +155 -0
  84. package/src/theme/__tests__/types.test.ts +153 -0
  85. package/src/theme/__tests__/useTheme.test.ts +146 -0
  86. package/src/theme/constants.ts +14 -0
  87. package/src/theme/index.ts +12 -0
  88. package/src/theme/presets/datametria.ts +94 -0
  89. package/src/theme/presets/default.ts +94 -0
  90. package/src/theme/presets/index.ts +8 -0
  91. package/src/theme/tokens/colors.ts +28 -0
  92. package/src/theme/tokens/index.ts +47 -0
  93. package/src/theme/tokens/spacing.ts +21 -0
  94. package/src/theme/tokens/typography.ts +35 -0
  95. package/src/theme/types.ts +111 -0
  96. package/src/theme/useTheme.ts +28 -0
  97. package/src/types/index.ts +19 -0
@@ -1,83 +1,83 @@
1
- import { ref, onMounted, onUnmounted } from 'vue'
2
-
3
- export const breakpoints = {
4
- xs: 475,
5
- sm: 640,
6
- md: 768,
7
- lg: 1024,
8
- xl: 1280,
9
- '2xl': 1536
10
- } as const
11
-
12
- export type Breakpoint = keyof typeof breakpoints
13
-
14
- export function useBreakpoints() {
15
- const windowWidth = ref(0)
16
-
17
- const updateWidth = () => {
18
- windowWidth.value = window.innerWidth
19
- }
20
-
21
- const isGreaterOrEqual = (breakpoint: Breakpoint) => {
22
- return windowWidth.value >= breakpoints[breakpoint]
23
- }
24
-
25
- const isLessOrEqual = (breakpoint: Breakpoint) => {
26
- return windowWidth.value <= breakpoints[breakpoint]
27
- }
28
-
29
- const isBetween = (min: Breakpoint, max: Breakpoint) => {
30
- return windowWidth.value >= breakpoints[min] && windowWidth.value <= breakpoints[max]
31
- }
32
-
33
- const getCurrentBreakpoint = (): Breakpoint => {
34
- const width = windowWidth.value
35
-
36
- if (width >= breakpoints['2xl']) return '2xl'
37
- if (width >= breakpoints.xl) return 'xl'
38
- if (width >= breakpoints.lg) return 'lg'
39
- if (width >= breakpoints.md) return 'md'
40
- if (width >= breakpoints.sm) return 'sm'
41
- return 'xs'
42
- }
43
-
44
- // Reactive breakpoint checks
45
- const isXs = () => windowWidth.value < breakpoints.sm
46
- const isSm = () => isGreaterOrEqual('sm') && windowWidth.value < breakpoints.md
47
- const isMd = () => isGreaterOrEqual('md') && windowWidth.value < breakpoints.lg
48
- const isLg = () => isGreaterOrEqual('lg') && windowWidth.value < breakpoints.xl
49
- const isXl = () => isGreaterOrEqual('xl') && windowWidth.value < breakpoints['2xl']
50
- const is2xl = () => isGreaterOrEqual('2xl')
51
-
52
- // Mobile/tablet/desktop helpers
53
- const isMobile = () => windowWidth.value < breakpoints.md
54
- const isTablet = () => isBetween('md', 'lg')
55
- const isDesktop = () => isGreaterOrEqual('lg')
56
-
57
- onMounted(() => {
58
- updateWidth()
59
- window.addEventListener('resize', updateWidth)
60
- })
61
-
62
- onUnmounted(() => {
63
- window.removeEventListener('resize', updateWidth)
64
- })
65
-
66
- return {
67
- windowWidth,
68
- breakpoints,
69
- isGreaterOrEqual,
70
- isLessOrEqual,
71
- isBetween,
72
- getCurrentBreakpoint,
73
- isXs,
74
- isSm,
75
- isMd,
76
- isLg,
77
- isXl,
78
- is2xl,
79
- isMobile,
80
- isTablet,
81
- isDesktop
82
- }
1
+ import { ref, onMounted, onUnmounted } from 'vue'
2
+
3
+ export const breakpoints = {
4
+ xs: 475,
5
+ sm: 640,
6
+ md: 768,
7
+ lg: 1024,
8
+ xl: 1280,
9
+ '2xl': 1536
10
+ } as const
11
+
12
+ export type Breakpoint = keyof typeof breakpoints
13
+
14
+ export function useBreakpoints() {
15
+ const windowWidth = ref(0)
16
+
17
+ const updateWidth = () => {
18
+ windowWidth.value = window.innerWidth
19
+ }
20
+
21
+ const isGreaterOrEqual = (breakpoint: Breakpoint) => {
22
+ return windowWidth.value >= breakpoints[breakpoint]
23
+ }
24
+
25
+ const isLessOrEqual = (breakpoint: Breakpoint) => {
26
+ return windowWidth.value <= breakpoints[breakpoint]
27
+ }
28
+
29
+ const isBetween = (min: Breakpoint, max: Breakpoint) => {
30
+ return windowWidth.value >= breakpoints[min] && windowWidth.value <= breakpoints[max]
31
+ }
32
+
33
+ const getCurrentBreakpoint = (): Breakpoint => {
34
+ const width = windowWidth.value
35
+
36
+ if (width >= breakpoints['2xl']) return '2xl'
37
+ if (width >= breakpoints.xl) return 'xl'
38
+ if (width >= breakpoints.lg) return 'lg'
39
+ if (width >= breakpoints.md) return 'md'
40
+ if (width >= breakpoints.sm) return 'sm'
41
+ return 'xs'
42
+ }
43
+
44
+ // Reactive breakpoint checks
45
+ const isXs = () => windowWidth.value < breakpoints.sm
46
+ const isSm = () => isGreaterOrEqual('sm') && windowWidth.value < breakpoints.md
47
+ const isMd = () => isGreaterOrEqual('md') && windowWidth.value < breakpoints.lg
48
+ const isLg = () => isGreaterOrEqual('lg') && windowWidth.value < breakpoints.xl
49
+ const isXl = () => isGreaterOrEqual('xl') && windowWidth.value < breakpoints['2xl']
50
+ const is2xl = () => isGreaterOrEqual('2xl')
51
+
52
+ // Mobile/tablet/desktop helpers
53
+ const isMobile = () => windowWidth.value < breakpoints.md
54
+ const isTablet = () => isBetween('md', 'lg')
55
+ const isDesktop = () => isGreaterOrEqual('lg')
56
+
57
+ onMounted(() => {
58
+ updateWidth()
59
+ window.addEventListener('resize', updateWidth)
60
+ })
61
+
62
+ onUnmounted(() => {
63
+ window.removeEventListener('resize', updateWidth)
64
+ })
65
+
66
+ return {
67
+ windowWidth,
68
+ breakpoints,
69
+ isGreaterOrEqual,
70
+ isLessOrEqual,
71
+ isBetween,
72
+ getCurrentBreakpoint,
73
+ isXs,
74
+ isSm,
75
+ isMd,
76
+ isLg,
77
+ isXl,
78
+ is2xl,
79
+ isMobile,
80
+ isTablet,
81
+ isDesktop
82
+ }
83
83
  }