@furystack/shades-common-components 12.3.0 → 12.5.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/CHANGELOG.md +86 -0
- package/esm/components/app-bar-link.spec.js +16 -19
- package/esm/components/app-bar-link.spec.js.map +1 -1
- package/esm/components/app-bar.spec.js +6 -4
- package/esm/components/app-bar.spec.js.map +1 -1
- package/esm/components/avatar.spec.js +9 -9
- package/esm/components/avatar.spec.js.map +1 -1
- package/esm/components/breadcrumb.spec.js +2 -2
- package/esm/components/breadcrumb.spec.js.map +1 -1
- package/esm/components/button-group.d.ts +32 -0
- package/esm/components/button-group.d.ts.map +1 -1
- package/esm/components/button-group.js +26 -2
- package/esm/components/button-group.js.map +1 -1
- package/esm/components/button-group.spec.js +127 -11
- package/esm/components/button-group.spec.js.map +1 -1
- package/esm/components/button.spec.js +4 -4
- package/esm/components/button.spec.js.map +1 -1
- package/esm/components/cache-view.spec.js +2 -3
- package/esm/components/cache-view.spec.js.map +1 -1
- package/esm/components/carousel.spec.js +47 -47
- package/esm/components/carousel.spec.js.map +1 -1
- package/esm/components/circular-progress.spec.js +2 -2
- package/esm/components/command-palette/command-palette-input.spec.js +23 -19
- package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js +27 -27
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
- package/esm/components/command-palette/index.spec.js +64 -51
- package/esm/components/command-palette/index.spec.js.map +1 -1
- package/esm/components/context-menu/context-menu.spec.js +33 -33
- package/esm/components/context-menu/context-menu.spec.js.map +1 -1
- package/esm/components/data-grid/body.spec.js +13 -13
- package/esm/components/data-grid/body.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid-row.spec.js +8 -8
- package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid.d.ts +40 -2
- package/esm/components/data-grid/data-grid.d.ts.map +1 -1
- package/esm/components/data-grid/data-grid.js +7 -10
- package/esm/components/data-grid/data-grid.js.map +1 -1
- package/esm/components/data-grid/data-grid.spec.js +71 -28
- package/esm/components/data-grid/data-grid.spec.js.map +1 -1
- package/esm/components/data-grid/filters/boolean-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/boolean-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.js +27 -0
- package/esm/components/data-grid/filters/boolean-filter.js.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.js +114 -0
- package/esm/components/data-grid/filters/boolean-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/date-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/date-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/date-filter.js +109 -0
- package/esm/components/data-grid/filters/date-filter.js.map +1 -0
- package/esm/components/data-grid/filters/date-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/date-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/date-filter.spec.js +145 -0
- package/esm/components/data-grid/filters/date-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.d.ts +16 -0
- package/esm/components/data-grid/filters/enum-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.js +72 -0
- package/esm/components/data-grid/filters/enum-filter.js.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/enum-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/enum-filter.spec.js +136 -0
- package/esm/components/data-grid/filters/enum-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.d.ts +6 -0
- package/esm/components/data-grid/filters/filter-dropdown.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.js +41 -0
- package/esm/components/data-grid/filters/filter-dropdown.js.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.js +69 -0
- package/esm/components/data-grid/filters/filter-dropdown.spec.js.map +1 -0
- package/esm/components/data-grid/filters/filter-styles.d.ts +24 -0
- package/esm/components/data-grid/filters/filter-styles.d.ts.map +1 -0
- package/esm/components/data-grid/filters/filter-styles.js +25 -0
- package/esm/components/data-grid/filters/filter-styles.js.map +1 -0
- package/esm/components/data-grid/filters/index.d.ts +7 -0
- package/esm/components/data-grid/filters/index.d.ts.map +1 -0
- package/esm/components/data-grid/filters/index.js +7 -0
- package/esm/components/data-grid/filters/index.js.map +1 -0
- package/esm/components/data-grid/filters/number-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/number-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/number-filter.js +65 -0
- package/esm/components/data-grid/filters/number-filter.js.map +1 -0
- package/esm/components/data-grid/filters/number-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/number-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/number-filter.spec.js +142 -0
- package/esm/components/data-grid/filters/number-filter.spec.js.map +1 -0
- package/esm/components/data-grid/filters/string-filter.d.ts +12 -0
- package/esm/components/data-grid/filters/string-filter.d.ts.map +1 -0
- package/esm/components/data-grid/filters/string-filter.js +63 -0
- package/esm/components/data-grid/filters/string-filter.js.map +1 -0
- package/esm/components/data-grid/filters/string-filter.spec.d.ts +2 -0
- package/esm/components/data-grid/filters/string-filter.spec.d.ts.map +1 -0
- package/esm/components/data-grid/filters/string-filter.spec.js +128 -0
- package/esm/components/data-grid/filters/string-filter.spec.js.map +1 -0
- package/esm/components/data-grid/footer.d.ts.map +1 -1
- package/esm/components/data-grid/footer.js +24 -9
- package/esm/components/data-grid/footer.js.map +1 -1
- package/esm/components/data-grid/footer.spec.js +38 -36
- package/esm/components/data-grid/footer.spec.js.map +1 -1
- package/esm/components/data-grid/header.d.ts +6 -9
- package/esm/components/data-grid/header.d.ts.map +1 -1
- package/esm/components/data-grid/header.js +51 -117
- package/esm/components/data-grid/header.js.map +1 -1
- package/esm/components/data-grid/header.spec.js +116 -187
- package/esm/components/data-grid/header.spec.js.map +1 -1
- package/esm/components/data-grid/index.d.ts +1 -0
- package/esm/components/data-grid/index.d.ts.map +1 -1
- package/esm/components/data-grid/index.js +1 -0
- package/esm/components/data-grid/index.js.map +1 -1
- package/esm/components/data-grid/selection-cell.spec.js +8 -8
- package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
- package/esm/components/drawer/drawer-toggle-button.spec.js +22 -22
- package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -1
- package/esm/components/drawer/index.spec.js +36 -36
- package/esm/components/drawer/index.spec.js.map +1 -1
- package/esm/components/dropdown.spec.js +38 -30
- package/esm/components/dropdown.spec.js.map +1 -1
- package/esm/components/fab.spec.js +4 -4
- package/esm/components/fab.spec.js.map +1 -1
- package/esm/components/form.d.ts +5 -2
- package/esm/components/form.d.ts.map +1 -1
- package/esm/components/form.js +28 -6
- package/esm/components/form.js.map +1 -1
- package/esm/components/form.spec.js +227 -20
- package/esm/components/form.spec.js.map +1 -1
- package/esm/components/grid.spec.js +3 -3
- package/esm/components/grid.spec.js.map +1 -1
- package/esm/components/image.spec.js +55 -52
- package/esm/components/image.spec.js.map +1 -1
- package/esm/components/inputs/autocomplete.spec.js +7 -14
- package/esm/components/inputs/autocomplete.spec.js.map +1 -1
- package/esm/components/inputs/checkbox.spec.js +22 -22
- package/esm/components/inputs/checkbox.spec.js.map +1 -1
- package/esm/components/inputs/input-number.spec.js +47 -47
- package/esm/components/inputs/input-number.spec.js.map +1 -1
- package/esm/components/inputs/input.spec.js +53 -53
- package/esm/components/inputs/input.spec.js.map +1 -1
- package/esm/components/inputs/radio-group.spec.js +14 -14
- package/esm/components/inputs/radio-group.spec.js.map +1 -1
- package/esm/components/inputs/radio.spec.js +16 -16
- package/esm/components/inputs/radio.spec.js.map +1 -1
- package/esm/components/inputs/select.spec.js +74 -74
- package/esm/components/inputs/select.spec.js.map +1 -1
- package/esm/components/inputs/slider.spec.js +16 -16
- package/esm/components/inputs/slider.spec.js.map +1 -1
- package/esm/components/inputs/switch.spec.js +24 -24
- package/esm/components/inputs/switch.spec.js.map +1 -1
- package/esm/components/inputs/text-area.spec.js +17 -17
- package/esm/components/inputs/text-area.spec.js.map +1 -1
- package/esm/components/linear-progress.spec.js +2 -2
- package/esm/components/list/list.spec.js +36 -36
- package/esm/components/list/list.spec.js.map +1 -1
- package/esm/components/markdown/markdown-display.spec.js +15 -15
- package/esm/components/markdown/markdown-display.spec.js.map +1 -1
- package/esm/components/markdown/markdown-editor.spec.js +8 -8
- package/esm/components/markdown/markdown-editor.spec.js.map +1 -1
- package/esm/components/markdown/markdown-input.spec.js +17 -17
- package/esm/components/markdown/markdown-input.spec.js.map +1 -1
- package/esm/components/menu/menu.spec.js +28 -28
- package/esm/components/menu/menu.spec.js.map +1 -1
- package/esm/components/modal.spec.js +15 -18
- package/esm/components/modal.spec.js.map +1 -1
- package/esm/components/noty-list.spec.js +25 -23
- package/esm/components/noty-list.spec.js.map +1 -1
- package/esm/components/page-container/index.spec.js +16 -16
- package/esm/components/page-container/index.spec.js.map +1 -1
- package/esm/components/page-container/page-header.spec.js +16 -16
- package/esm/components/page-container/page-header.spec.js.map +1 -1
- package/esm/components/page-layout/index.spec.js +29 -29
- package/esm/components/page-layout/index.spec.js.map +1 -1
- package/esm/components/paper.spec.js +3 -3
- package/esm/components/paper.spec.js.map +1 -1
- package/esm/components/rating.spec.js +61 -61
- package/esm/components/rating.spec.js.map +1 -1
- package/esm/components/skeleton.spec.js +10 -6
- package/esm/components/skeleton.spec.js.map +1 -1
- package/esm/components/suggest/suggest-input.spec.js +4 -10
- package/esm/components/suggest/suggest-input.spec.js.map +1 -1
- package/esm/components/tabs.spec.js +30 -30
- package/esm/components/tabs.spec.js.map +1 -1
- package/esm/components/tree/tree.spec.js +27 -27
- package/esm/components/tree/tree.spec.js.map +1 -1
- package/esm/components/typography.spec.js +3 -3
- package/esm/components/typography.spec.js.map +1 -1
- package/esm/components/wizard/index.spec.js +5 -5
- package/esm/components/wizard/index.spec.js.map +1 -1
- package/esm/utils/promisify-animation.d.ts.map +1 -1
- package/esm/utils/promisify-animation.js +3 -0
- package/esm/utils/promisify-animation.js.map +1 -1
- package/package.json +2 -2
- package/src/components/app-bar-link.spec.tsx +16 -19
- package/src/components/app-bar.spec.tsx +6 -4
- package/src/components/avatar.spec.tsx +9 -9
- package/src/components/breadcrumb.spec.tsx +2 -2
- package/src/components/button-group.spec.tsx +155 -11
- package/src/components/button-group.tsx +49 -2
- package/src/components/button.spec.tsx +4 -4
- package/src/components/cache-view.spec.tsx +3 -3
- package/src/components/carousel.spec.tsx +47 -47
- package/src/components/circular-progress.spec.tsx +2 -2
- package/src/components/command-palette/command-palette-input.spec.tsx +23 -19
- package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +27 -27
- package/src/components/command-palette/index.spec.tsx +64 -51
- package/src/components/context-menu/context-menu.spec.tsx +33 -33
- package/src/components/data-grid/body.spec.tsx +13 -13
- package/src/components/data-grid/data-grid-row.spec.tsx +8 -8
- package/src/components/data-grid/data-grid.spec.tsx +106 -28
- package/src/components/data-grid/data-grid.tsx +44 -11
- package/src/components/data-grid/filters/boolean-filter.spec.tsx +142 -0
- package/src/components/data-grid/filters/boolean-filter.tsx +45 -0
- package/src/components/data-grid/filters/date-filter.spec.tsx +181 -0
- package/src/components/data-grid/filters/date-filter.tsx +162 -0
- package/src/components/data-grid/filters/enum-filter.spec.tsx +168 -0
- package/src/components/data-grid/filters/enum-filter.tsx +119 -0
- package/src/components/data-grid/filters/filter-dropdown.spec.tsx +89 -0
- package/src/components/data-grid/filters/filter-dropdown.tsx +60 -0
- package/src/components/data-grid/filters/filter-styles.ts +26 -0
- package/src/components/data-grid/filters/index.ts +6 -0
- package/src/components/data-grid/filters/number-filter.spec.tsx +174 -0
- package/src/components/data-grid/filters/number-filter.tsx +115 -0
- package/src/components/data-grid/filters/string-filter.spec.tsx +157 -0
- package/src/components/data-grid/filters/string-filter.tsx +112 -0
- package/src/components/data-grid/footer.spec.tsx +38 -36
- package/src/components/data-grid/footer.tsx +21 -8
- package/src/components/data-grid/header.spec.tsx +128 -212
- package/src/components/data-grid/header.tsx +95 -183
- package/src/components/data-grid/index.tsx +1 -0
- package/src/components/data-grid/selection-cell.spec.tsx +8 -8
- package/src/components/drawer/drawer-toggle-button.spec.tsx +22 -22
- package/src/components/drawer/index.spec.tsx +36 -36
- package/src/components/dropdown.spec.tsx +38 -30
- package/src/components/fab.spec.tsx +4 -4
- package/src/components/form.spec.tsx +329 -20
- package/src/components/form.tsx +31 -8
- package/src/components/grid.spec.tsx +3 -3
- package/src/components/image.spec.tsx +55 -52
- package/src/components/inputs/autocomplete.spec.tsx +7 -14
- package/src/components/inputs/checkbox.spec.tsx +22 -22
- package/src/components/inputs/input-number.spec.tsx +47 -47
- package/src/components/inputs/input.spec.tsx +53 -53
- package/src/components/inputs/radio-group.spec.tsx +14 -14
- package/src/components/inputs/radio.spec.tsx +16 -16
- package/src/components/inputs/select.spec.tsx +74 -74
- package/src/components/inputs/slider.spec.tsx +16 -16
- package/src/components/inputs/switch.spec.tsx +24 -24
- package/src/components/inputs/text-area.spec.tsx +17 -17
- package/src/components/linear-progress.spec.tsx +2 -2
- package/src/components/list/list.spec.tsx +36 -36
- package/src/components/markdown/markdown-display.spec.tsx +15 -15
- package/src/components/markdown/markdown-editor.spec.tsx +8 -8
- package/src/components/markdown/markdown-input.spec.tsx +17 -17
- package/src/components/menu/menu.spec.tsx +28 -28
- package/src/components/modal.spec.tsx +15 -18
- package/src/components/noty-list.spec.tsx +25 -23
- package/src/components/page-container/index.spec.tsx +16 -16
- package/src/components/page-container/page-header.spec.tsx +16 -16
- package/src/components/page-layout/index.spec.tsx +29 -29
- package/src/components/paper.spec.tsx +3 -3
- package/src/components/rating.spec.tsx +61 -61
- package/src/components/skeleton.spec.tsx +10 -6
- package/src/components/suggest/suggest-input.spec.tsx +4 -10
- package/src/components/tabs.spec.tsx +30 -30
- package/src/components/tree/tree.spec.tsx +27 -27
- package/src/components/typography.spec.tsx +3 -3
- package/src/components/wizard/index.spec.tsx +5 -5
- package/src/utils/promisify-animation.ts +3 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot, LocationService } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot, LocationService } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { Tabs, type Tab } from './tabs.js'
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ describe('Tabs', () => {
|
|
|
44
44
|
jsxElement: <Tabs tabs={tabs} />,
|
|
45
45
|
})
|
|
46
46
|
|
|
47
|
-
await
|
|
47
|
+
await flushUpdates()
|
|
48
48
|
|
|
49
49
|
expect(document.body.innerHTML).toContain('Tab 1')
|
|
50
50
|
expect(document.body.innerHTML).toContain('Tab 2')
|
|
@@ -65,7 +65,7 @@ describe('Tabs', () => {
|
|
|
65
65
|
jsxElement: <Tabs tabs={tabs} />,
|
|
66
66
|
})
|
|
67
67
|
|
|
68
|
-
await
|
|
68
|
+
await flushUpdates()
|
|
69
69
|
|
|
70
70
|
expect(document.getElementById('content-2')).toBeTruthy()
|
|
71
71
|
expect(document.getElementById('content-1')).toBeFalsy()
|
|
@@ -86,7 +86,7 @@ describe('Tabs', () => {
|
|
|
86
86
|
jsxElement: <Tabs tabs={tabs} />,
|
|
87
87
|
})
|
|
88
88
|
|
|
89
|
-
await
|
|
89
|
+
await flushUpdates()
|
|
90
90
|
|
|
91
91
|
expect(document.getElementById('content-1')).toBeFalsy()
|
|
92
92
|
expect(document.getElementById('content-2')).toBeFalsy()
|
|
@@ -107,7 +107,7 @@ describe('Tabs', () => {
|
|
|
107
107
|
jsxElement: <Tabs tabs={tabs} />,
|
|
108
108
|
})
|
|
109
109
|
|
|
110
|
-
await
|
|
110
|
+
await flushUpdates()
|
|
111
111
|
|
|
112
112
|
expect(document.getElementById('content-1')).toBeTruthy()
|
|
113
113
|
|
|
@@ -115,7 +115,7 @@ describe('Tabs', () => {
|
|
|
115
115
|
window.location.hash = '#tab3'
|
|
116
116
|
injector.getInstance(LocationService).updateState()
|
|
117
117
|
|
|
118
|
-
await
|
|
118
|
+
await flushUpdates()
|
|
119
119
|
|
|
120
120
|
expect(document.getElementById('content-3')).toBeTruthy()
|
|
121
121
|
expect(document.getElementById('content-1')).toBeFalsy()
|
|
@@ -133,7 +133,7 @@ describe('Tabs', () => {
|
|
|
133
133
|
jsxElement: <Tabs tabs={tabs} />,
|
|
134
134
|
})
|
|
135
135
|
|
|
136
|
-
await
|
|
136
|
+
await flushUpdates()
|
|
137
137
|
|
|
138
138
|
// Tab headers extend anchor elements
|
|
139
139
|
const html = document.body.innerHTML
|
|
@@ -156,7 +156,7 @@ describe('Tabs', () => {
|
|
|
156
156
|
jsxElement: <Tabs tabs={tabs} />,
|
|
157
157
|
})
|
|
158
158
|
|
|
159
|
-
await
|
|
159
|
+
await flushUpdates()
|
|
160
160
|
|
|
161
161
|
// Verify the active tab content is shown
|
|
162
162
|
expect(document.getElementById('content-2')).toBeTruthy()
|
|
@@ -181,7 +181,7 @@ describe('Tabs', () => {
|
|
|
181
181
|
jsxElement: <Tabs tabs={tabs} />,
|
|
182
182
|
})
|
|
183
183
|
|
|
184
|
-
await
|
|
184
|
+
await flushUpdates()
|
|
185
185
|
|
|
186
186
|
// Verify tab1 is active
|
|
187
187
|
expect(document.getElementById('content-1')).toBeTruthy()
|
|
@@ -194,7 +194,7 @@ describe('Tabs', () => {
|
|
|
194
194
|
window.location.hash = '#tab2'
|
|
195
195
|
injector.getInstance(LocationService).updateState()
|
|
196
196
|
|
|
197
|
-
await
|
|
197
|
+
await flushUpdates()
|
|
198
198
|
|
|
199
199
|
// Verify tab2 is now active
|
|
200
200
|
expect(document.getElementById('content-2')).toBeTruthy()
|
|
@@ -217,7 +217,7 @@ describe('Tabs', () => {
|
|
|
217
217
|
jsxElement: <Tabs tabs={tabs} containerStyle={{ maxWidth: '800px' }} />,
|
|
218
218
|
})
|
|
219
219
|
|
|
220
|
-
await
|
|
220
|
+
await flushUpdates()
|
|
221
221
|
|
|
222
222
|
const tabsElement = document.querySelector('shade-tabs') as HTMLElement
|
|
223
223
|
expect(tabsElement.style.maxWidth).toBe('800px')
|
|
@@ -234,7 +234,7 @@ describe('Tabs', () => {
|
|
|
234
234
|
jsxElement: <Tabs tabs={[]} />,
|
|
235
235
|
})
|
|
236
236
|
|
|
237
|
-
await
|
|
237
|
+
await flushUpdates()
|
|
238
238
|
|
|
239
239
|
const tabHeaders = document.querySelectorAll('shade-tab-header')
|
|
240
240
|
expect(tabHeaders.length).toBe(0)
|
|
@@ -253,7 +253,7 @@ describe('Tabs', () => {
|
|
|
253
253
|
jsxElement: <Tabs tabs={tabs} activeKey="tab2" />,
|
|
254
254
|
})
|
|
255
255
|
|
|
256
|
-
await
|
|
256
|
+
await flushUpdates()
|
|
257
257
|
|
|
258
258
|
expect(document.getElementById('content-2')).toBeTruthy()
|
|
259
259
|
expect(document.getElementById('content-1')).toBeFalsy()
|
|
@@ -272,7 +272,7 @@ describe('Tabs', () => {
|
|
|
272
272
|
jsxElement: <Tabs tabs={tabs} activeKey="tab1" />,
|
|
273
273
|
})
|
|
274
274
|
|
|
275
|
-
await
|
|
275
|
+
await flushUpdates()
|
|
276
276
|
|
|
277
277
|
const buttons = document.querySelectorAll('.shade-tab-btn')
|
|
278
278
|
expect(buttons.length).toBe(3)
|
|
@@ -293,7 +293,7 @@ describe('Tabs', () => {
|
|
|
293
293
|
jsxElement: <Tabs tabs={tabs} activeKey="tab2" />,
|
|
294
294
|
})
|
|
295
295
|
|
|
296
|
-
await
|
|
296
|
+
await flushUpdates()
|
|
297
297
|
|
|
298
298
|
const buttons = document.querySelectorAll('.shade-tab-btn')
|
|
299
299
|
expect(buttons[0].classList.contains('active')).toBe(false)
|
|
@@ -314,7 +314,7 @@ describe('Tabs', () => {
|
|
|
314
314
|
jsxElement: <Tabs tabs={tabs} activeKey="tab1" onTabChange={onTabChange} />,
|
|
315
315
|
})
|
|
316
316
|
|
|
317
|
-
await
|
|
317
|
+
await flushUpdates()
|
|
318
318
|
|
|
319
319
|
const buttons = document.querySelectorAll('.shade-tab-btn')
|
|
320
320
|
;(buttons[1] as HTMLButtonElement).click()
|
|
@@ -336,7 +336,7 @@ describe('Tabs', () => {
|
|
|
336
336
|
jsxElement: <Tabs tabs={tabs} activeKey="tab1" />,
|
|
337
337
|
})
|
|
338
338
|
|
|
339
|
-
await
|
|
339
|
+
await flushUpdates()
|
|
340
340
|
|
|
341
341
|
// activeKey takes precedence over URL hash
|
|
342
342
|
expect(document.getElementById('content-1')).toBeTruthy()
|
|
@@ -357,7 +357,7 @@ describe('Tabs', () => {
|
|
|
357
357
|
jsxElement: <Tabs tabs={tabs} type="card" />,
|
|
358
358
|
})
|
|
359
359
|
|
|
360
|
-
await
|
|
360
|
+
await flushUpdates()
|
|
361
361
|
|
|
362
362
|
const tabsElement = document.querySelector('shade-tabs') as HTMLElement
|
|
363
363
|
expect(tabsElement.getAttribute('data-type')).toBe('card')
|
|
@@ -375,7 +375,7 @@ describe('Tabs', () => {
|
|
|
375
375
|
jsxElement: <Tabs tabs={tabs} type="line" />,
|
|
376
376
|
})
|
|
377
377
|
|
|
378
|
-
await
|
|
378
|
+
await flushUpdates()
|
|
379
379
|
|
|
380
380
|
const tabsElement = document.querySelector('shade-tabs') as HTMLElement
|
|
381
381
|
expect(tabsElement.getAttribute('data-type')).toBeNull()
|
|
@@ -395,7 +395,7 @@ describe('Tabs', () => {
|
|
|
395
395
|
jsxElement: <Tabs tabs={tabs} orientation="vertical" />,
|
|
396
396
|
})
|
|
397
397
|
|
|
398
|
-
await
|
|
398
|
+
await flushUpdates()
|
|
399
399
|
|
|
400
400
|
const tabsElement = document.querySelector('shade-tabs') as HTMLElement
|
|
401
401
|
expect(tabsElement.getAttribute('data-orientation')).toBe('vertical')
|
|
@@ -413,7 +413,7 @@ describe('Tabs', () => {
|
|
|
413
413
|
jsxElement: <Tabs tabs={tabs} orientation="horizontal" />,
|
|
414
414
|
})
|
|
415
415
|
|
|
416
|
-
await
|
|
416
|
+
await flushUpdates()
|
|
417
417
|
|
|
418
418
|
const tabsElement = document.querySelector('shade-tabs') as HTMLElement
|
|
419
419
|
expect(tabsElement.getAttribute('data-orientation')).toBeNull()
|
|
@@ -436,7 +436,7 @@ describe('Tabs', () => {
|
|
|
436
436
|
jsxElement: <Tabs tabs={tabs} activeKey="tab1" onClose={() => {}} />,
|
|
437
437
|
})
|
|
438
438
|
|
|
439
|
-
await
|
|
439
|
+
await flushUpdates()
|
|
440
440
|
|
|
441
441
|
const closeButtons = document.querySelectorAll('.shade-tab-close')
|
|
442
442
|
expect(closeButtons.length).toBe(1)
|
|
@@ -456,7 +456,7 @@ describe('Tabs', () => {
|
|
|
456
456
|
jsxElement: <Tabs tabs={tabs} activeKey="tab1" />,
|
|
457
457
|
})
|
|
458
458
|
|
|
459
|
-
await
|
|
459
|
+
await flushUpdates()
|
|
460
460
|
|
|
461
461
|
const closeButtons = document.querySelectorAll('.shade-tab-close')
|
|
462
462
|
expect(closeButtons.length).toBe(0)
|
|
@@ -478,7 +478,7 @@ describe('Tabs', () => {
|
|
|
478
478
|
jsxElement: <Tabs tabs={tabs} activeKey="tab1" onClose={onClose} />,
|
|
479
479
|
})
|
|
480
480
|
|
|
481
|
-
await
|
|
481
|
+
await flushUpdates()
|
|
482
482
|
|
|
483
483
|
const closeButtons = document.querySelectorAll('.shade-tab-close')
|
|
484
484
|
;(closeButtons[1] as HTMLElement).click()
|
|
@@ -502,7 +502,7 @@ describe('Tabs', () => {
|
|
|
502
502
|
jsxElement: <Tabs tabs={tabs} activeKey="tab1" onClose={onClose} onTabChange={onTabChange} />,
|
|
503
503
|
})
|
|
504
504
|
|
|
505
|
-
await
|
|
505
|
+
await flushUpdates()
|
|
506
506
|
|
|
507
507
|
const closeButton = document.querySelector('.shade-tab-close') as HTMLElement
|
|
508
508
|
closeButton.click()
|
|
@@ -525,7 +525,7 @@ describe('Tabs', () => {
|
|
|
525
525
|
jsxElement: <Tabs tabs={tabs} onAdd={() => {}} />,
|
|
526
526
|
})
|
|
527
527
|
|
|
528
|
-
await
|
|
528
|
+
await flushUpdates()
|
|
529
529
|
|
|
530
530
|
const addButton = document.querySelector('.shade-tab-add')
|
|
531
531
|
expect(addButton).toBeTruthy()
|
|
@@ -544,7 +544,7 @@ describe('Tabs', () => {
|
|
|
544
544
|
jsxElement: <Tabs tabs={tabs} />,
|
|
545
545
|
})
|
|
546
546
|
|
|
547
|
-
await
|
|
547
|
+
await flushUpdates()
|
|
548
548
|
|
|
549
549
|
const addButton = document.querySelector('.shade-tab-add')
|
|
550
550
|
expect(addButton).toBeFalsy()
|
|
@@ -563,7 +563,7 @@ describe('Tabs', () => {
|
|
|
563
563
|
jsxElement: <Tabs tabs={tabs} onAdd={onAdd} />,
|
|
564
564
|
})
|
|
565
565
|
|
|
566
|
-
await
|
|
566
|
+
await flushUpdates()
|
|
567
567
|
|
|
568
568
|
const addButton = document.querySelector('.shade-tab-add') as HTMLButtonElement
|
|
569
569
|
addButton.click()
|
|
@@ -586,7 +586,7 @@ describe('Tabs', () => {
|
|
|
586
586
|
jsxElement: <Tabs tabs={tabs} onTabChange={onTabChange} />,
|
|
587
587
|
})
|
|
588
588
|
|
|
589
|
-
await
|
|
589
|
+
await flushUpdates()
|
|
590
590
|
|
|
591
591
|
const tabHeaders = document.querySelectorAll('a[is="shade-tab-header"]')
|
|
592
592
|
;(tabHeaders[1] as HTMLElement).click()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import { TreeService } from '../../services/tree-service.js'
|
|
6
6
|
import { Tree } from './tree.js'
|
|
@@ -60,7 +60,7 @@ describe('Tree', () => {
|
|
|
60
60
|
),
|
|
61
61
|
})
|
|
62
62
|
|
|
63
|
-
await
|
|
63
|
+
await flushUpdates()
|
|
64
64
|
|
|
65
65
|
const tree = document.querySelector('shade-tree')
|
|
66
66
|
expect(tree).not.toBeNull()
|
|
@@ -87,7 +87,7 @@ describe('Tree', () => {
|
|
|
87
87
|
),
|
|
88
88
|
})
|
|
89
89
|
|
|
90
|
-
await
|
|
90
|
+
await flushUpdates()
|
|
91
91
|
|
|
92
92
|
const tree = document.querySelector('shade-tree')
|
|
93
93
|
const items = tree?.querySelectorAll('shade-tree-item')
|
|
@@ -115,7 +115,7 @@ describe('Tree', () => {
|
|
|
115
115
|
),
|
|
116
116
|
})
|
|
117
117
|
|
|
118
|
-
await
|
|
118
|
+
await flushUpdates()
|
|
119
119
|
|
|
120
120
|
const tree = document.querySelector('shade-tree')
|
|
121
121
|
expect(tree).not.toBeNull()
|
|
@@ -144,7 +144,7 @@ describe('Tree', () => {
|
|
|
144
144
|
),
|
|
145
145
|
})
|
|
146
146
|
|
|
147
|
-
await
|
|
147
|
+
await flushUpdates()
|
|
148
148
|
|
|
149
149
|
const tree = document.querySelector('shade-tree')
|
|
150
150
|
const treeItems = tree?.querySelectorAll('[role="treeitem"]')
|
|
@@ -173,7 +173,7 @@ describe('Tree', () => {
|
|
|
173
173
|
),
|
|
174
174
|
})
|
|
175
175
|
|
|
176
|
-
await
|
|
176
|
+
await flushUpdates()
|
|
177
177
|
|
|
178
178
|
const tree = document.querySelector('shade-tree')
|
|
179
179
|
const icons = tree?.querySelectorAll('[data-testid="icon"]')
|
|
@@ -202,7 +202,7 @@ describe('Tree', () => {
|
|
|
202
202
|
),
|
|
203
203
|
})
|
|
204
204
|
|
|
205
|
-
await
|
|
205
|
+
await flushUpdates()
|
|
206
206
|
|
|
207
207
|
const tree = document.querySelector('shade-tree') as HTMLElement
|
|
208
208
|
expect(tree?.getAttribute('data-variant')).toBe('contained')
|
|
@@ -229,7 +229,7 @@ describe('Tree', () => {
|
|
|
229
229
|
),
|
|
230
230
|
})
|
|
231
231
|
|
|
232
|
-
await
|
|
232
|
+
await flushUpdates()
|
|
233
233
|
|
|
234
234
|
const tree = document.querySelector('shade-tree')
|
|
235
235
|
const treeItems = tree?.querySelectorAll('shade-tree-item') as NodeListOf<HTMLElement>
|
|
@@ -259,7 +259,7 @@ describe('Tree', () => {
|
|
|
259
259
|
),
|
|
260
260
|
})
|
|
261
261
|
|
|
262
|
-
await
|
|
262
|
+
await flushUpdates()
|
|
263
263
|
|
|
264
264
|
const tree = document.querySelector('shade-tree')
|
|
265
265
|
const treeItems = tree?.querySelectorAll('shade-tree-item') as NodeListOf<HTMLElement>
|
|
@@ -293,7 +293,7 @@ describe('Tree', () => {
|
|
|
293
293
|
),
|
|
294
294
|
})
|
|
295
295
|
|
|
296
|
-
await
|
|
296
|
+
await flushUpdates()
|
|
297
297
|
|
|
298
298
|
const tree = document.querySelector('shade-tree') as HTMLElement
|
|
299
299
|
tree?.click()
|
|
@@ -325,7 +325,7 @@ describe('Tree', () => {
|
|
|
325
325
|
),
|
|
326
326
|
})
|
|
327
327
|
|
|
328
|
-
await
|
|
328
|
+
await flushUpdates()
|
|
329
329
|
|
|
330
330
|
const tree = document.querySelector('shade-tree') as HTMLElement
|
|
331
331
|
tree?.click()
|
|
@@ -358,7 +358,7 @@ describe('Tree', () => {
|
|
|
358
358
|
),
|
|
359
359
|
})
|
|
360
360
|
|
|
361
|
-
await
|
|
361
|
+
await flushUpdates()
|
|
362
362
|
|
|
363
363
|
const tree = document.querySelector('shade-tree')
|
|
364
364
|
const treeItems = tree?.querySelectorAll('shade-tree-item') as NodeListOf<HTMLElement>
|
|
@@ -388,10 +388,10 @@ describe('Tree', () => {
|
|
|
388
388
|
),
|
|
389
389
|
})
|
|
390
390
|
|
|
391
|
-
await
|
|
391
|
+
await flushUpdates()
|
|
392
392
|
|
|
393
393
|
service.focusedItem.setValue(treeData[1])
|
|
394
|
-
await
|
|
394
|
+
await flushUpdates()
|
|
395
395
|
|
|
396
396
|
const tree = document.querySelector('shade-tree')
|
|
397
397
|
const treeItems = tree?.querySelectorAll('shade-tree-item') as NodeListOf<HTMLElement>
|
|
@@ -422,10 +422,10 @@ describe('Tree', () => {
|
|
|
422
422
|
),
|
|
423
423
|
})
|
|
424
424
|
|
|
425
|
-
await
|
|
425
|
+
await flushUpdates()
|
|
426
426
|
|
|
427
427
|
service.selection.setValue([treeData[0], treeData[2]])
|
|
428
|
-
await
|
|
428
|
+
await flushUpdates()
|
|
429
429
|
|
|
430
430
|
const tree = document.querySelector('shade-tree')
|
|
431
431
|
const treeItems = tree?.querySelectorAll('shade-tree-item') as NodeListOf<HTMLElement>
|
|
@@ -455,10 +455,10 @@ describe('Tree', () => {
|
|
|
455
455
|
),
|
|
456
456
|
})
|
|
457
457
|
|
|
458
|
-
await
|
|
458
|
+
await flushUpdates()
|
|
459
459
|
|
|
460
460
|
service.selection.setValue([treeData[0]])
|
|
461
|
-
await
|
|
461
|
+
await flushUpdates()
|
|
462
462
|
|
|
463
463
|
const tree = document.querySelector('shade-tree')
|
|
464
464
|
const treeItems = tree?.querySelectorAll('shade-tree-item') as NodeListOf<HTMLElement>
|
|
@@ -489,10 +489,10 @@ describe('Tree', () => {
|
|
|
489
489
|
),
|
|
490
490
|
})
|
|
491
491
|
|
|
492
|
-
await
|
|
492
|
+
await flushUpdates()
|
|
493
493
|
|
|
494
494
|
service.selection.setValue([treeData[0]])
|
|
495
|
-
await
|
|
495
|
+
await flushUpdates()
|
|
496
496
|
|
|
497
497
|
expect(onSelectionChange).toHaveBeenCalledWith([treeData[0]])
|
|
498
498
|
|
|
@@ -525,7 +525,7 @@ describe('Tree', () => {
|
|
|
525
525
|
),
|
|
526
526
|
})
|
|
527
527
|
|
|
528
|
-
await
|
|
528
|
+
await flushUpdates()
|
|
529
529
|
|
|
530
530
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
531
531
|
|
|
@@ -558,7 +558,7 @@ describe('Tree', () => {
|
|
|
558
558
|
),
|
|
559
559
|
})
|
|
560
560
|
|
|
561
|
-
await
|
|
561
|
+
await flushUpdates()
|
|
562
562
|
|
|
563
563
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowRight', bubbles: true }))
|
|
564
564
|
|
|
@@ -592,7 +592,7 @@ describe('Tree', () => {
|
|
|
592
592
|
),
|
|
593
593
|
})
|
|
594
594
|
|
|
595
|
-
await
|
|
595
|
+
await flushUpdates()
|
|
596
596
|
|
|
597
597
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowLeft', bubbles: true }))
|
|
598
598
|
|
|
@@ -625,7 +625,7 @@ describe('Tree', () => {
|
|
|
625
625
|
),
|
|
626
626
|
})
|
|
627
627
|
|
|
628
|
-
await
|
|
628
|
+
await flushUpdates()
|
|
629
629
|
|
|
630
630
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
631
631
|
|
|
@@ -660,12 +660,12 @@ describe('Tree', () => {
|
|
|
660
660
|
),
|
|
661
661
|
})
|
|
662
662
|
|
|
663
|
-
await
|
|
663
|
+
await flushUpdates()
|
|
664
664
|
|
|
665
665
|
const tree = document.querySelector('shade-tree') as HTMLElement
|
|
666
666
|
tree.remove()
|
|
667
667
|
|
|
668
|
-
await
|
|
668
|
+
await flushUpdates()
|
|
669
669
|
|
|
670
670
|
window.dispatchEvent(new KeyboardEvent('keydown', { key: 'ArrowDown', bubbles: true }))
|
|
671
671
|
expect(service.focusedItem.getValue()).toEqual(treeData[0])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
|
-
import { createComponent, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
-
import {
|
|
2
|
+
import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
|
|
3
|
+
import { usingAsync } from '@furystack/utils'
|
|
4
4
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
5
5
|
import type { TypographyProps, TypographyVariant } from './typography.js'
|
|
6
6
|
import { Typography } from './typography.js'
|
|
@@ -22,7 +22,7 @@ describe('Typography', () => {
|
|
|
22
22
|
rootElement: root,
|
|
23
23
|
jsxElement: <Typography {...props}>{children}</Typography>,
|
|
24
24
|
})
|
|
25
|
-
await
|
|
25
|
+
await flushUpdates()
|
|
26
26
|
return {
|
|
27
27
|
injector,
|
|
28
28
|
element: root.querySelector('shade-typography') as HTMLElement,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Injector } from '@furystack/inject'
|
|
2
2
|
import type { ChildrenList } from '@furystack/shades'
|
|
3
|
-
import { createComponent, initializeShadeRoot, Shade } from '@furystack/shades'
|
|
4
|
-
import {
|
|
3
|
+
import { createComponent, flushUpdates, initializeShadeRoot, Shade } from '@furystack/shades'
|
|
4
|
+
import { usingAsync } from '@furystack/utils'
|
|
5
5
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|
6
6
|
import type { WizardStepProps } from './index.js'
|
|
7
7
|
import { Wizard } from './index.js'
|
|
@@ -80,7 +80,7 @@ describe('Wizard', () => {
|
|
|
80
80
|
rootElement: root,
|
|
81
81
|
jsxElement: <Wizard steps={steps} onFinish={onFinish} />,
|
|
82
82
|
})
|
|
83
|
-
await
|
|
83
|
+
await flushUpdates()
|
|
84
84
|
|
|
85
85
|
const wizard = root.querySelector('shades-wizard') as HTMLElement
|
|
86
86
|
|
|
@@ -96,12 +96,12 @@ describe('Wizard', () => {
|
|
|
96
96
|
clickNext: async () => {
|
|
97
97
|
const btn = getStepElement()?.querySelector('.next-btn') as HTMLButtonElement
|
|
98
98
|
btn?.click()
|
|
99
|
-
await
|
|
99
|
+
await flushUpdates()
|
|
100
100
|
},
|
|
101
101
|
clickPrev: async () => {
|
|
102
102
|
const btn = getStepElement()?.querySelector('.prev-btn') as HTMLButtonElement
|
|
103
103
|
btn?.click()
|
|
104
|
-
await
|
|
104
|
+
await flushUpdates()
|
|
105
105
|
},
|
|
106
106
|
[Symbol.asyncDispose]: () => injector[Symbol.asyncDispose](),
|
|
107
107
|
}
|
|
@@ -13,6 +13,9 @@ export const promisifyAnimation = async (
|
|
|
13
13
|
if (!el) {
|
|
14
14
|
return reject(new Error('No element provided'))
|
|
15
15
|
}
|
|
16
|
+
if (typeof el.animate !== 'function') {
|
|
17
|
+
return resolve({} as AnimationPlaybackEvent)
|
|
18
|
+
}
|
|
16
19
|
const prefersReducedMotion = window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches
|
|
17
20
|
const resolvedOptions: KeyframeAnimationOptions =
|
|
18
21
|
typeof options === 'number' ? { duration: options } : { ...options }
|