@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.
- package/README.md +625 -594
- package/dist/index.es.js +1962 -1887
- package/dist/index.umd.js +6 -6
- package/dist/src/components/DatametriaForm.vue.d.ts +1 -1
- package/dist/src/components/DatametriaInput.vue.d.ts +9 -1
- package/dist/src/components/DatametriaSelect.vue.d.ts +10 -1
- package/dist/vue-components.css +1 -1
- package/package.json +103 -105
- package/src/components/DatametriaAlert.vue +151 -133
- package/src/components/DatametriaAutocomplete.vue +250 -229
- package/src/components/DatametriaAvatar.vue +256 -238
- package/src/components/DatametriaBadge.vue +101 -96
- package/src/components/DatametriaBreadcrumb.vue +132 -128
- package/src/components/DatametriaButton.vue +191 -173
- package/src/components/DatametriaCard.vue +84 -66
- package/src/components/DatametriaCheckbox.vue +197 -193
- package/src/components/DatametriaCheckboxGroup.vue +56 -38
- package/src/components/DatametriaChip.vue +159 -141
- package/src/components/DatametriaContainer.vue +70 -52
- package/src/components/DatametriaDataTable.vue +318 -300
- package/src/components/DatametriaDatePicker.vue +396 -378
- package/src/components/DatametriaDialog.vue +297 -293
- package/src/components/DatametriaDivider.vue +105 -98
- package/src/components/DatametriaDropdown.vue +356 -350
- package/src/components/DatametriaEmpty.vue +155 -151
- package/src/components/DatametriaFileUpload.vue +413 -395
- package/src/components/DatametriaFloatingBar.vue +144 -126
- package/src/components/DatametriaForm.vue +174 -156
- package/src/components/DatametriaFormItem.vue +183 -179
- package/src/components/DatametriaGrid.vue +55 -37
- package/src/components/DatametriaInput.vue +314 -263
- package/src/components/DatametriaMenu.vue +618 -600
- package/src/components/DatametriaModal.vue +147 -129
- package/src/components/DatametriaNavbar.vue +277 -223
- package/src/components/DatametriaPagination.vue +375 -371
- package/src/components/DatametriaPasswordInput.vue +444 -426
- package/src/components/DatametriaPopconfirm.vue +240 -234
- package/src/components/DatametriaProgress.vue +228 -224
- package/src/components/DatametriaRadio.vue +151 -147
- package/src/components/DatametriaRadioGroup.vue +55 -37
- package/src/components/DatametriaResult.vue +135 -131
- package/src/components/DatametriaSelect.vue +311 -211
- package/src/components/DatametriaSidebar.vue +294 -222
- package/src/components/DatametriaSkeleton.vue +257 -234
- package/src/components/DatametriaSlider.vue +409 -391
- package/src/components/DatametriaSortableTable.vue +820 -802
- package/src/components/DatametriaSpinner.vue +114 -110
- package/src/components/DatametriaSteps.vue +318 -312
- package/src/components/DatametriaSwitch.vue +146 -142
- package/src/components/DatametriaTabPane.vue +94 -76
- package/src/components/DatametriaTable.vue +118 -100
- package/src/components/DatametriaTabs.vue +315 -297
- package/src/components/DatametriaTextarea.vue +213 -195
- package/src/components/DatametriaTimePicker.vue +317 -299
- package/src/components/DatametriaToast.vue +176 -176
- package/src/components/DatametriaTooltip.vue +421 -400
- package/src/components/DatametriaTree.vue +126 -122
- package/src/components/DatametriaTreeNode.vue +176 -172
- package/src/components/DatametriaUpload.vue +379 -361
- package/src/components/__tests__/DatametriaAlert.test.js +35 -35
- package/src/components/__tests__/DatametriaAlert.test.ts +190 -190
- package/src/components/__tests__/DatametriaAvatar.test.ts +151 -151
- package/src/components/__tests__/DatametriaBadge.test.js +29 -29
- package/src/components/__tests__/DatametriaBadge.test.ts +167 -167
- package/src/components/__tests__/DatametriaBreadcrumb.test.ts +187 -0
- package/src/components/__tests__/DatametriaButton.test.js +30 -30
- package/src/components/__tests__/DatametriaButton.test.ts +283 -283
- package/src/components/__tests__/DatametriaCard.test.ts +201 -201
- package/src/components/__tests__/DatametriaCheckbox.test.ts +204 -0
- package/src/components/__tests__/DatametriaChip.test.js +38 -38
- package/src/components/__tests__/DatametriaContainer.test.ts +52 -52
- package/src/components/__tests__/DatametriaDialog.test.ts +338 -0
- package/src/components/__tests__/DatametriaDivider.test.ts +54 -54
- package/src/components/__tests__/DatametriaDropdown.test.ts +357 -0
- package/src/components/__tests__/DatametriaEmpty.test.ts +261 -0
- package/src/components/__tests__/DatametriaFileUpload.test.ts +290 -290
- package/src/components/__tests__/DatametriaFloatingBar.test.ts +137 -137
- package/src/components/__tests__/DatametriaForm.test.ts +96 -0
- package/src/components/__tests__/DatametriaFormItem.test.ts +58 -0
- package/src/components/__tests__/DatametriaGrid.test.ts +31 -31
- package/src/components/__tests__/DatametriaInput.test.ts +72 -72
- package/src/components/__tests__/DatametriaMenu.test.ts +366 -366
- package/src/components/__tests__/DatametriaModal.test.ts +86 -86
- package/src/components/__tests__/DatametriaNavbar.test.js +48 -48
- package/src/components/__tests__/DatametriaNavbar.test.ts +203 -203
- package/src/components/__tests__/DatametriaPasswordInput.test.js +305 -305
- package/src/components/__tests__/DatametriaRadio.test.ts +195 -0
- package/src/components/__tests__/DatametriaSelect.test.ts +77 -77
- package/src/components/__tests__/DatametriaSidebar.test.ts +169 -169
- package/src/components/__tests__/DatametriaSlider.test.ts +261 -261
- package/src/components/__tests__/DatametriaSortableTable.test.js +168 -168
- package/src/components/__tests__/DatametriaSpinner.test.ts +156 -156
- package/src/components/__tests__/DatametriaSteps.test.ts +211 -0
- package/src/components/__tests__/DatametriaSwitch.test.ts +129 -0
- package/src/components/__tests__/DatametriaTabPane.test.ts +205 -0
- package/src/components/__tests__/DatametriaTable.test.ts +97 -97
- package/src/components/__tests__/DatametriaTabs.test.ts +232 -232
- package/src/components/__tests__/DatametriaToast.test.js +48 -48
- package/src/components/__tests__/DatametriaToast.test.ts +99 -99
- package/src/components/__tests__/DatametriaTree.test.ts +376 -0
- package/src/components/__tests__/index.test.ts +48 -0
- package/src/composables/useAccessibilityScale.ts +94 -94
- package/src/composables/useBreakpoints.ts +82 -82
- package/src/composables/useHapticFeedback.ts +439 -439
- package/src/composables/useRipple.ts +218 -218
- package/src/composables/useTheme.ts +5 -1
- package/src/index.ts +84 -84
- package/src/stories/Variants.stories.js +95 -95
- package/src/styles/design-tokens.css +623 -623
- package/src/theme/ThemeProvider.vue +96 -96
- package/src/theme/__tests__/ThemeProvider.test.ts +208 -208
- package/src/theme/__tests__/constants.test.ts +31 -31
- package/src/theme/__tests__/presets.test.ts +166 -166
- package/src/theme/__tests__/tokens.test.ts +155 -155
- package/src/theme/__tests__/types.test.ts +153 -153
- package/src/theme/__tests__/useTheme.test.ts +146 -146
- package/src/theme/constants.ts +14 -14
- package/src/theme/index.ts +12 -12
- package/src/theme/presets/datametria.ts +94 -94
- package/src/theme/presets/default.ts +94 -94
- package/src/theme/presets/index.ts +8 -8
- package/src/theme/tokens/colors.ts +28 -28
- package/src/theme/tokens/index.ts +47 -47
- package/src/theme/tokens/spacing.ts +21 -21
- package/src/theme/tokens/typography.ts +35 -35
- package/src/theme/types.ts +111 -111
- package/src/theme/useTheme.ts +28 -28
- package/src/types/index.ts +55 -55
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest'
|
|
2
|
-
import { mount } from '@vue/test-utils'
|
|
3
|
-
import DatametriaModal from '../DatametriaModal.vue'
|
|
4
|
-
|
|
5
|
-
describe('DatametriaModal', () => {
|
|
6
|
-
it.skip('renders correctly when open', () => {
|
|
7
|
-
const wrapper = mount(DatametriaModal, {
|
|
8
|
-
props: { modelValue: true }
|
|
9
|
-
})
|
|
10
|
-
expect(wrapper.html()).toContain('datametria-modal')
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
it('does not render when closed', () => {
|
|
14
|
-
const wrapper = mount(DatametriaModal, {
|
|
15
|
-
props: { modelValue: false }
|
|
16
|
-
})
|
|
17
|
-
expect(wrapper.html()).not.toContain('datametria-modal')
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
it.skip('renders title when provided', () => {
|
|
21
|
-
const wrapper = mount(DatametriaModal, {
|
|
22
|
-
props: { modelValue: true, title: 'Test Title' }
|
|
23
|
-
})
|
|
24
|
-
expect(wrapper.html()).toContain('Test Title')
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
it.skip('renders close button when closable', () => {
|
|
28
|
-
const wrapper = mount(DatametriaModal, {
|
|
29
|
-
props: { modelValue: true, closable: true }
|
|
30
|
-
})
|
|
31
|
-
expect(wrapper.html()).toContain('datametria-modal__close')
|
|
32
|
-
})
|
|
33
|
-
|
|
34
|
-
it('does not render close button when not closable', () => {
|
|
35
|
-
const wrapper = mount(DatametriaModal, {
|
|
36
|
-
props: { modelValue: true, closable: false }
|
|
37
|
-
})
|
|
38
|
-
expect(wrapper.html()).not.toContain('datametria-modal__close')
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
it('emits update:modelValue when handleClose called', async () => {
|
|
42
|
-
const wrapper = mount(DatametriaModal, {
|
|
43
|
-
props: { modelValue: true, closable: true }
|
|
44
|
-
})
|
|
45
|
-
await (wrapper.vm as any).handleClose()
|
|
46
|
-
expect(wrapper.emitted('update:modelValue')?.[0]).toEqual([false])
|
|
47
|
-
})
|
|
48
|
-
|
|
49
|
-
it('emits close event when handleClose called', async () => {
|
|
50
|
-
const wrapper = mount(DatametriaModal, {
|
|
51
|
-
props: { modelValue: true, closable: true }
|
|
52
|
-
})
|
|
53
|
-
await (wrapper.vm as any).handleClose()
|
|
54
|
-
expect(wrapper.emitted('close')).toBeTruthy()
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
it.skip('applies custom size', () => {
|
|
58
|
-
const wrapper = mount(DatametriaModal, {
|
|
59
|
-
props: { modelValue: true, size: '50rem' }
|
|
60
|
-
})
|
|
61
|
-
expect(wrapper.html()).toContain('max-width: 50rem')
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
it.skip('renders body content', () => {
|
|
65
|
-
const wrapper = mount(DatametriaModal, {
|
|
66
|
-
props: { modelValue: true },
|
|
67
|
-
slots: { default: 'Body content' }
|
|
68
|
-
})
|
|
69
|
-
expect(wrapper.html()).toContain('Body content')
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
it.skip('renders footer slot when provided', () => {
|
|
73
|
-
const wrapper = mount(DatametriaModal, {
|
|
74
|
-
props: { modelValue: true },
|
|
75
|
-
slots: { footer: 'Footer content' }
|
|
76
|
-
})
|
|
77
|
-
expect(wrapper.html()).toContain('Footer content')
|
|
78
|
-
})
|
|
79
|
-
|
|
80
|
-
it.skip('uses CSS variables with fallbacks', () => {
|
|
81
|
-
const wrapper = mount(DatametriaModal, {
|
|
82
|
-
props: { modelValue: true }
|
|
83
|
-
})
|
|
84
|
-
expect(wrapper.html()).toContain('--dm-')
|
|
85
|
-
})
|
|
86
|
-
})
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { mount } from '@vue/test-utils'
|
|
3
|
+
import DatametriaModal from '../DatametriaModal.vue'
|
|
4
|
+
|
|
5
|
+
describe('DatametriaModal', () => {
|
|
6
|
+
it.skip('renders correctly when open', () => {
|
|
7
|
+
const wrapper = mount(DatametriaModal, {
|
|
8
|
+
props: { modelValue: true }
|
|
9
|
+
})
|
|
10
|
+
expect(wrapper.html()).toContain('datametria-modal')
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
it('does not render when closed', () => {
|
|
14
|
+
const wrapper = mount(DatametriaModal, {
|
|
15
|
+
props: { modelValue: false }
|
|
16
|
+
})
|
|
17
|
+
expect(wrapper.html()).not.toContain('datametria-modal')
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it.skip('renders title when provided', () => {
|
|
21
|
+
const wrapper = mount(DatametriaModal, {
|
|
22
|
+
props: { modelValue: true, title: 'Test Title' }
|
|
23
|
+
})
|
|
24
|
+
expect(wrapper.html()).toContain('Test Title')
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
it.skip('renders close button when closable', () => {
|
|
28
|
+
const wrapper = mount(DatametriaModal, {
|
|
29
|
+
props: { modelValue: true, closable: true }
|
|
30
|
+
})
|
|
31
|
+
expect(wrapper.html()).toContain('datametria-modal__close')
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('does not render close button when not closable', () => {
|
|
35
|
+
const wrapper = mount(DatametriaModal, {
|
|
36
|
+
props: { modelValue: true, closable: false }
|
|
37
|
+
})
|
|
38
|
+
expect(wrapper.html()).not.toContain('datametria-modal__close')
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
it('emits update:modelValue when handleClose called', async () => {
|
|
42
|
+
const wrapper = mount(DatametriaModal, {
|
|
43
|
+
props: { modelValue: true, closable: true }
|
|
44
|
+
})
|
|
45
|
+
await (wrapper.vm as any).handleClose()
|
|
46
|
+
expect(wrapper.emitted('update:modelValue')?.[0]).toEqual([false])
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
it('emits close event when handleClose called', async () => {
|
|
50
|
+
const wrapper = mount(DatametriaModal, {
|
|
51
|
+
props: { modelValue: true, closable: true }
|
|
52
|
+
})
|
|
53
|
+
await (wrapper.vm as any).handleClose()
|
|
54
|
+
expect(wrapper.emitted('close')).toBeTruthy()
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
it.skip('applies custom size', () => {
|
|
58
|
+
const wrapper = mount(DatametriaModal, {
|
|
59
|
+
props: { modelValue: true, size: '50rem' }
|
|
60
|
+
})
|
|
61
|
+
expect(wrapper.html()).toContain('max-width: 50rem')
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
it.skip('renders body content', () => {
|
|
65
|
+
const wrapper = mount(DatametriaModal, {
|
|
66
|
+
props: { modelValue: true },
|
|
67
|
+
slots: { default: 'Body content' }
|
|
68
|
+
})
|
|
69
|
+
expect(wrapper.html()).toContain('Body content')
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
it.skip('renders footer slot when provided', () => {
|
|
73
|
+
const wrapper = mount(DatametriaModal, {
|
|
74
|
+
props: { modelValue: true },
|
|
75
|
+
slots: { footer: 'Footer content' }
|
|
76
|
+
})
|
|
77
|
+
expect(wrapper.html()).toContain('Footer content')
|
|
78
|
+
})
|
|
79
|
+
|
|
80
|
+
it.skip('uses CSS variables with fallbacks', () => {
|
|
81
|
+
const wrapper = mount(DatametriaModal, {
|
|
82
|
+
props: { modelValue: true }
|
|
83
|
+
})
|
|
84
|
+
expect(wrapper.html()).toContain('--dm-')
|
|
85
|
+
})
|
|
86
|
+
})
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { describe, it, expect, vi } from 'vitest'
|
|
2
|
-
import { mount } from '@vue/test-utils'
|
|
3
|
-
import DatametriaNavbar from '../DatametriaNavbar.vue'
|
|
4
|
-
|
|
5
|
-
describe('DatametriaNavbar', () => {
|
|
6
|
-
it('renders with primary variant', () => {
|
|
7
|
-
const wrapper = mount(DatametriaNavbar, {
|
|
8
|
-
props: { variant: 'primary' }
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
expect(wrapper.classes()).toContain('dm-navbar--primary')
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
it('validates invalid variant in development', () => {
|
|
15
|
-
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
|
|
16
|
-
const originalEnv = process.env.NODE_ENV
|
|
17
|
-
process.env.NODE_ENV = 'development'
|
|
18
|
-
|
|
19
|
-
mount(DatametriaNavbar, {
|
|
20
|
-
props: { variant: 'invalid' }
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
expect(consoleSpy).toHaveBeenCalledWith(
|
|
24
|
-
expect.stringContaining('[DatametriaNavbar] Invalid variant "invalid"')
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
process.env.NODE_ENV = originalEnv
|
|
28
|
-
consoleSpy.mockRestore()
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
it('renders brand text', () => {
|
|
32
|
-
const wrapper = mount(DatametriaNavbar, {
|
|
33
|
-
props: { brand: 'DATAMETRIA' }
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
expect(wrapper.text()).toContain('DATAMETRIA')
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
it('toggles mobile menu', async () => {
|
|
40
|
-
const wrapper = mount(DatametriaNavbar, {
|
|
41
|
-
slots: { menu: '<div>Menu items</div>' }
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
const toggle = wrapper.find('.dm-navbar__toggle')
|
|
45
|
-
await toggle.trigger('click')
|
|
46
|
-
|
|
47
|
-
expect(wrapper.find('.dm-navbar__menu').classes()).toContain('dm-navbar__menu--open')
|
|
48
|
-
})
|
|
1
|
+
import { describe, it, expect, vi } from 'vitest'
|
|
2
|
+
import { mount } from '@vue/test-utils'
|
|
3
|
+
import DatametriaNavbar from '../DatametriaNavbar.vue'
|
|
4
|
+
|
|
5
|
+
describe('DatametriaNavbar', () => {
|
|
6
|
+
it('renders with primary variant', () => {
|
|
7
|
+
const wrapper = mount(DatametriaNavbar, {
|
|
8
|
+
props: { variant: 'primary' }
|
|
9
|
+
})
|
|
10
|
+
|
|
11
|
+
expect(wrapper.classes()).toContain('dm-navbar--primary')
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
it('validates invalid variant in development', () => {
|
|
15
|
+
const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => {})
|
|
16
|
+
const originalEnv = process.env.NODE_ENV
|
|
17
|
+
process.env.NODE_ENV = 'development'
|
|
18
|
+
|
|
19
|
+
mount(DatametriaNavbar, {
|
|
20
|
+
props: { variant: 'invalid' }
|
|
21
|
+
})
|
|
22
|
+
|
|
23
|
+
expect(consoleSpy).toHaveBeenCalledWith(
|
|
24
|
+
expect.stringContaining('[DatametriaNavbar] Invalid variant "invalid"')
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
process.env.NODE_ENV = originalEnv
|
|
28
|
+
consoleSpy.mockRestore()
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
it('renders brand text', () => {
|
|
32
|
+
const wrapper = mount(DatametriaNavbar, {
|
|
33
|
+
props: { brand: 'DATAMETRIA' }
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
expect(wrapper.text()).toContain('DATAMETRIA')
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
it('toggles mobile menu', async () => {
|
|
40
|
+
const wrapper = mount(DatametriaNavbar, {
|
|
41
|
+
slots: { menu: '<div>Menu items</div>' }
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
const toggle = wrapper.find('.dm-navbar__toggle')
|
|
45
|
+
await toggle.trigger('click')
|
|
46
|
+
|
|
47
|
+
expect(wrapper.find('.dm-navbar__menu').classes()).toContain('dm-navbar__menu--open')
|
|
48
|
+
})
|
|
49
49
|
})
|