@rolder-kit/ui 0.1.0-alpha.9 → 0.1.0-beta.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.
- package/dist/__tests__/AnimatedChevron.test.js +181 -0
- package/dist/__tests__/DefaultError.test.js +240 -0
- package/dist/__tests__/DefaultNotFound.test.js +188 -0
- package/dist/__tests__/Forbidden.test.js +181 -0
- package/dist/__tests__/HoverPaper.test.js +193 -0
- package/dist/__tests__/JsonInput.test.js +204 -0
- package/dist/__tests__/RouterLink.test.js +201 -0
- package/dist/__tests__/ScrollAreaRoot.test.js +228 -0
- package/dist/__tests__/ScrollButton.test.js +239 -0
- package/dist/__tests__/blurOnError.test.js +116 -0
- package/dist/__tests__/defaultErrorNotification.test.js +155 -0
- package/dist/__tests__/editorContent.test.js +196 -0
- package/dist/__tests__/editorRoot.test.js +262 -0
- package/dist/__tests__/editorStore.test.js +154 -0
- package/dist/__tests__/editorToolbar.test.js +284 -0
- package/dist/__tests__/formButtons.test.js +284 -0
- package/dist/__tests__/formContext.test.js +182 -0
- package/dist/__tests__/formFields.test.js +610 -0
- package/dist/__tests__/saveInput.test.js +418 -0
- package/dist/__tests__/scrollAreaMethods.test.js +293 -0
- package/dist/__tests__/usePaperHover.test.js +150 -0
- package/dist/scrollArea/Root.js +1 -1
- package/package.json +18 -18
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import * as __rspack_external__testing_library_react_f5b64048 from "@testing-library/react";
|
|
2
|
+
import * as __rspack_external_react_jsx_runtime_225474f2 from "react/jsx-runtime";
|
|
3
|
+
import * as __rspack_external_vitest from "vitest";
|
|
4
|
+
var __webpack_modules__ = {
|
|
5
|
+
"./src/__tests__/RouterLink.test.tsx" (module, __webpack_exports__, __webpack_require__) {
|
|
6
|
+
__webpack_require__.a(module, async function(__rspack_load_async_deps, __rspack_async_done) {
|
|
7
|
+
try {
|
|
8
|
+
__webpack_require__.r(__webpack_exports__);
|
|
9
|
+
var react_jsx_runtime__rspack_import_0 = __webpack_require__("react/jsx-runtime");
|
|
10
|
+
var _testing_library_react__rspack_import_1 = __webpack_require__("@testing-library/react");
|
|
11
|
+
var vitest__rspack_import_2 = __webpack_require__("vitest");
|
|
12
|
+
vitest__rspack_import_2.vi.mock('@mantine/core', ()=>({
|
|
13
|
+
Anchor: ({ children, classNames, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("a", {
|
|
14
|
+
"data-testid": "anchor",
|
|
15
|
+
"data-classnames": JSON.stringify(classNames),
|
|
16
|
+
...props,
|
|
17
|
+
children: children
|
|
18
|
+
}),
|
|
19
|
+
Button: ({ children, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("button", {
|
|
20
|
+
"data-testid": "button",
|
|
21
|
+
...props,
|
|
22
|
+
children: children
|
|
23
|
+
}),
|
|
24
|
+
ActionIcon: ({ children, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("button", {
|
|
25
|
+
"data-testid": "action-icon",
|
|
26
|
+
...props,
|
|
27
|
+
children: children
|
|
28
|
+
}),
|
|
29
|
+
UnstyledButton: ({ children, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("button", {
|
|
30
|
+
"data-testid": "unstyled-button",
|
|
31
|
+
...props,
|
|
32
|
+
children: children
|
|
33
|
+
})
|
|
34
|
+
}));
|
|
35
|
+
vitest__rspack_import_2.vi.mock('@tanstack/react-router', ()=>({
|
|
36
|
+
createLink: (component)=>component
|
|
37
|
+
}));
|
|
38
|
+
const { RouterLink } = await import("../RouterLink.js");
|
|
39
|
+
(0, vitest__rspack_import_2.describe)('RouterLink', ()=>{
|
|
40
|
+
(0, vitest__rspack_import_2.afterEach)(()=>(0, _testing_library_react__rspack_import_1.cleanup)());
|
|
41
|
+
(0, vitest__rspack_import_2.it)('renders base anchor with children', ()=>{
|
|
42
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(RouterLink, {
|
|
43
|
+
children: "Link text"
|
|
44
|
+
}));
|
|
45
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Link text')).toBeDefined();
|
|
46
|
+
});
|
|
47
|
+
(0, vitest__rspack_import_2.it)('sets rolder-router-link-root classname on anchor', ()=>{
|
|
48
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(RouterLink, {
|
|
49
|
+
children: "Link"
|
|
50
|
+
}));
|
|
51
|
+
const anchor = _testing_library_react__rspack_import_1.screen.getByTestId('anchor');
|
|
52
|
+
const classNames = JSON.parse(anchor.getAttribute('data-classnames'));
|
|
53
|
+
(0, vitest__rspack_import_2.expect)(classNames.root).toBe('rolder-router-link-root');
|
|
54
|
+
});
|
|
55
|
+
(0, vitest__rspack_import_2.it)('renders Button variant', ()=>{
|
|
56
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(RouterLink.Button, {
|
|
57
|
+
children: "Click me"
|
|
58
|
+
}));
|
|
59
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('button')).toBeDefined();
|
|
60
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Click me')).toBeDefined();
|
|
61
|
+
});
|
|
62
|
+
(0, vitest__rspack_import_2.it)('renders ActionIcon variant', ()=>{
|
|
63
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(RouterLink.ActionIcon, {
|
|
64
|
+
children: "Icon"
|
|
65
|
+
}));
|
|
66
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('action-icon')).toBeDefined();
|
|
67
|
+
});
|
|
68
|
+
(0, vitest__rspack_import_2.it)('renders UnstyledButton variant', ()=>{
|
|
69
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(RouterLink.UnstyledButton, {
|
|
70
|
+
children: "Plain"
|
|
71
|
+
}));
|
|
72
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('unstyled-button')).toBeDefined();
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
__rspack_async_done();
|
|
76
|
+
} catch (e) {
|
|
77
|
+
__rspack_async_done(e);
|
|
78
|
+
}
|
|
79
|
+
}, 1);
|
|
80
|
+
},
|
|
81
|
+
"@testing-library/react" (module) {
|
|
82
|
+
module.exports = __rspack_external__testing_library_react_f5b64048;
|
|
83
|
+
},
|
|
84
|
+
"react/jsx-runtime" (module) {
|
|
85
|
+
module.exports = __rspack_external_react_jsx_runtime_225474f2;
|
|
86
|
+
},
|
|
87
|
+
vitest (module) {
|
|
88
|
+
module.exports = __rspack_external_vitest;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
var __webpack_module_cache__ = {};
|
|
92
|
+
function __webpack_require__(moduleId) {
|
|
93
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
94
|
+
if (void 0 !== cachedModule) return cachedModule.exports;
|
|
95
|
+
var module = __webpack_module_cache__[moduleId] = {
|
|
96
|
+
exports: {}
|
|
97
|
+
};
|
|
98
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
99
|
+
return module.exports;
|
|
100
|
+
}
|
|
101
|
+
(()=>{
|
|
102
|
+
var hasSymbol = "function" == typeof Symbol;
|
|
103
|
+
var rspackQueues = hasSymbol ? Symbol("rspack queues") : "__rspack_queues";
|
|
104
|
+
var rspackExports = __webpack_require__.aE = hasSymbol ? Symbol("rspack exports") : "__webpack_exports__";
|
|
105
|
+
var rspackError = hasSymbol ? Symbol("rspack error") : "__rspack_error";
|
|
106
|
+
var rspackDone = hasSymbol ? Symbol("rspack done") : "__rspack_done";
|
|
107
|
+
var rspackDefer = __webpack_require__.zS = hasSymbol ? Symbol("rspack defer") : "__rspack_defer";
|
|
108
|
+
var resolveQueue = (queue)=>{
|
|
109
|
+
if (queue && queue.d < 1) {
|
|
110
|
+
queue.d = 1;
|
|
111
|
+
queue.forEach((fn)=>fn.r--);
|
|
112
|
+
queue.forEach((fn)=>fn.r-- ? fn.r++ : fn());
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
var wrapDeps = (deps)=>deps.map((dep)=>{
|
|
116
|
+
if (null !== dep && "object" == typeof dep) {
|
|
117
|
+
if (!dep[rspackQueues] && dep[rspackDefer]) {
|
|
118
|
+
var asyncDeps = dep[rspackDefer];
|
|
119
|
+
var hasUnresolvedAsyncSubgraph = asyncDeps.some((id)=>{
|
|
120
|
+
var cache = __webpack_module_cache__[id];
|
|
121
|
+
return !cache || false === cache[rspackDone];
|
|
122
|
+
});
|
|
123
|
+
if (!hasUnresolvedAsyncSubgraph) return dep;
|
|
124
|
+
var d = dep;
|
|
125
|
+
dep = {
|
|
126
|
+
then (callback) {
|
|
127
|
+
Promise.all(asyncDeps.map(__webpack_require__)).then(()=>callback(d));
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
if (dep[rspackQueues]) return dep;
|
|
132
|
+
if (dep.then) {
|
|
133
|
+
var queue = [];
|
|
134
|
+
queue.d = 0;
|
|
135
|
+
dep.then((r)=>{
|
|
136
|
+
obj[rspackExports] = r;
|
|
137
|
+
resolveQueue(queue);
|
|
138
|
+
}, (e)=>{
|
|
139
|
+
obj[rspackError] = e;
|
|
140
|
+
resolveQueue(queue);
|
|
141
|
+
});
|
|
142
|
+
var obj = {};
|
|
143
|
+
obj[rspackDefer] = false;
|
|
144
|
+
obj[rspackQueues] = (fn)=>fn(queue);
|
|
145
|
+
return obj;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
var ret = {};
|
|
149
|
+
ret[rspackQueues] = ()=>{};
|
|
150
|
+
ret[rspackExports] = dep;
|
|
151
|
+
return ret;
|
|
152
|
+
});
|
|
153
|
+
__webpack_require__.a = (module, body, hasAwait)=>{
|
|
154
|
+
var queue;
|
|
155
|
+
hasAwait && ((queue = []).d = -1);
|
|
156
|
+
var depQueues = new Set();
|
|
157
|
+
var exports = module.exports;
|
|
158
|
+
var currentDeps;
|
|
159
|
+
var outerResolve;
|
|
160
|
+
var reject;
|
|
161
|
+
var promise = new Promise((resolve, rej)=>{
|
|
162
|
+
reject = rej;
|
|
163
|
+
outerResolve = resolve;
|
|
164
|
+
});
|
|
165
|
+
promise[rspackExports] = exports;
|
|
166
|
+
promise[rspackQueues] = (fn)=>{
|
|
167
|
+
queue && fn(queue), depQueues.forEach(fn), promise["catch"](()=>{});
|
|
168
|
+
};
|
|
169
|
+
module.exports = promise;
|
|
170
|
+
var handle = (deps)=>{
|
|
171
|
+
currentDeps = wrapDeps(deps);
|
|
172
|
+
var fn;
|
|
173
|
+
var getResult = ()=>currentDeps.map((d)=>{
|
|
174
|
+
if (d[rspackDefer]) return d;
|
|
175
|
+
if (d[rspackError]) throw d[rspackError];
|
|
176
|
+
return d[rspackExports];
|
|
177
|
+
});
|
|
178
|
+
var promise = new Promise((resolve)=>{
|
|
179
|
+
fn = ()=>resolve(getResult);
|
|
180
|
+
fn.r = 0;
|
|
181
|
+
var fnQueue = (q)=>q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)));
|
|
182
|
+
currentDeps.map((dep)=>dep[rspackDefer] || dep[rspackQueues](fnQueue));
|
|
183
|
+
});
|
|
184
|
+
return fn.r ? promise : getResult();
|
|
185
|
+
};
|
|
186
|
+
var done = (err)=>(err ? reject(promise[rspackError] = err) : outerResolve(exports), resolveQueue(queue), promise[rspackDone] = true);
|
|
187
|
+
body(handle, done);
|
|
188
|
+
queue && queue.d < 0 && (queue.d = 0);
|
|
189
|
+
};
|
|
190
|
+
})();
|
|
191
|
+
(()=>{
|
|
192
|
+
__webpack_require__.r = (exports)=>{
|
|
193
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports, Symbol.toStringTag, {
|
|
194
|
+
value: 'Module'
|
|
195
|
+
});
|
|
196
|
+
Object.defineProperty(exports, '__esModule', {
|
|
197
|
+
value: true
|
|
198
|
+
});
|
|
199
|
+
};
|
|
200
|
+
})();
|
|
201
|
+
__webpack_require__("./src/__tests__/RouterLink.test.tsx");
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import * as __rspack_external__testing_library_react_f5b64048 from "@testing-library/react";
|
|
2
|
+
import * as __rspack_external_react_jsx_runtime_225474f2 from "react/jsx-runtime";
|
|
3
|
+
import * as __rspack_external_vitest from "vitest";
|
|
4
|
+
var __webpack_modules__ = {
|
|
5
|
+
"./src/__tests__/ScrollAreaRoot.test.tsx" (module, __webpack_exports__, __webpack_require__) {
|
|
6
|
+
__webpack_require__.a(module, async function(__rspack_load_async_deps, __rspack_async_done) {
|
|
7
|
+
try {
|
|
8
|
+
__webpack_require__.r(__webpack_exports__);
|
|
9
|
+
var react_jsx_runtime__rspack_import_0 = __webpack_require__("react/jsx-runtime");
|
|
10
|
+
var _testing_library_react__rspack_import_1 = __webpack_require__("@testing-library/react");
|
|
11
|
+
var vitest__rspack_import_2 = __webpack_require__("vitest");
|
|
12
|
+
const mockSetAutoScroll = vitest__rspack_import_2.vi.fn();
|
|
13
|
+
const mockSetHeight = vitest__rspack_import_2.vi.fn();
|
|
14
|
+
const mockSetScrollAreaRef = vitest__rspack_import_2.vi.fn();
|
|
15
|
+
const mockSetIsAboveCenter = vitest__rspack_import_2.vi.fn();
|
|
16
|
+
vitest__rspack_import_2.vi.mock('../scrollArea/store', ()=>({
|
|
17
|
+
setAutoScroll: (...args)=>mockSetAutoScroll(...args),
|
|
18
|
+
setHeight: (...args)=>mockSetHeight(...args),
|
|
19
|
+
setScrollAreaRef: (...args)=>mockSetScrollAreaRef(...args),
|
|
20
|
+
setIsAboveCenter: (...args)=>mockSetIsAboveCenter(...args),
|
|
21
|
+
getHeight: ()=>0,
|
|
22
|
+
getScrollAreaRef: ()=>null,
|
|
23
|
+
getHasScrollableContent: ()=>false,
|
|
24
|
+
getIsAboveCenter: ()=>false
|
|
25
|
+
}));
|
|
26
|
+
vitest__rspack_import_2.vi.mock('../scrollArea/methods', ()=>({
|
|
27
|
+
isAboveCenter: vitest__rspack_import_2.vi.fn(()=>false)
|
|
28
|
+
}));
|
|
29
|
+
let mockElementHeight = 100;
|
|
30
|
+
vitest__rspack_import_2.vi.mock('@mantine/hooks', ()=>({
|
|
31
|
+
useElementSize: ()=>({
|
|
32
|
+
ref: vitest__rspack_import_2.vi.fn(),
|
|
33
|
+
height: mockElementHeight
|
|
34
|
+
})
|
|
35
|
+
}));
|
|
36
|
+
vitest__rspack_import_2.vi.mock('@mantine/core', ()=>({
|
|
37
|
+
ScrollArea: ({ children, viewportRef, h, classNames, style, onScrollPositionChange, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("div", {
|
|
38
|
+
"data-testid": "scroll-area",
|
|
39
|
+
"data-height": h,
|
|
40
|
+
"data-classnames": JSON.stringify(classNames),
|
|
41
|
+
children: children
|
|
42
|
+
}),
|
|
43
|
+
Box: ({ children, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("div", {
|
|
44
|
+
"data-testid": "content-box",
|
|
45
|
+
children: children
|
|
46
|
+
}),
|
|
47
|
+
getRadius: (r)=>`var(--mantine-radius-${r})`
|
|
48
|
+
}));
|
|
49
|
+
const { Root } = await import("../scrollArea/Root.js");
|
|
50
|
+
(0, vitest__rspack_import_2.describe)('ScrollArea Root', ()=>{
|
|
51
|
+
(0, vitest__rspack_import_2.afterEach)(()=>{
|
|
52
|
+
(0, _testing_library_react__rspack_import_1.cleanup)();
|
|
53
|
+
vitest__rspack_import_2.vi.clearAllMocks();
|
|
54
|
+
});
|
|
55
|
+
(0, vitest__rspack_import_2.it)('renders ScrollArea with height', ()=>{
|
|
56
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Root, {
|
|
57
|
+
height: 500,
|
|
58
|
+
children: "Content"
|
|
59
|
+
}));
|
|
60
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('scroll-area').getAttribute('data-height')).toBe('500');
|
|
61
|
+
});
|
|
62
|
+
(0, vitest__rspack_import_2.it)('renders children in Box', ()=>{
|
|
63
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Root, {
|
|
64
|
+
height: 500,
|
|
65
|
+
children: "Child content"
|
|
66
|
+
}));
|
|
67
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Child content')).toBeDefined();
|
|
68
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('content-box')).toBeDefined();
|
|
69
|
+
});
|
|
70
|
+
(0, vitest__rspack_import_2.it)('sets correct classNames', ()=>{
|
|
71
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Root, {
|
|
72
|
+
height: 500,
|
|
73
|
+
children: "Test"
|
|
74
|
+
}));
|
|
75
|
+
const classNames = JSON.parse(_testing_library_react__rspack_import_1.screen.getByTestId('scroll-area').getAttribute('data-classnames'));
|
|
76
|
+
(0, vitest__rspack_import_2.expect)(classNames.viewport).toBe('rolder-scroll-area-viewport');
|
|
77
|
+
(0, vitest__rspack_import_2.expect)(classNames.scrollbar).toBe('rolder-scroll-area-scrollbar');
|
|
78
|
+
});
|
|
79
|
+
(0, vitest__rspack_import_2.it)('calls setAutoScroll with prop value', ()=>{
|
|
80
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Root, {
|
|
81
|
+
height: 500,
|
|
82
|
+
autoScroll: true,
|
|
83
|
+
children: "Test"
|
|
84
|
+
}));
|
|
85
|
+
(0, vitest__rspack_import_2.expect)(mockSetAutoScroll).toHaveBeenCalledWith(true);
|
|
86
|
+
});
|
|
87
|
+
(0, vitest__rspack_import_2.it)('defaults autoScroll to false', ()=>{
|
|
88
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Root, {
|
|
89
|
+
height: 500,
|
|
90
|
+
children: "Test"
|
|
91
|
+
}));
|
|
92
|
+
(0, vitest__rspack_import_2.expect)(mockSetAutoScroll).toHaveBeenCalledWith(false);
|
|
93
|
+
});
|
|
94
|
+
(0, vitest__rspack_import_2.it)('calls setHeight with content height', ()=>{
|
|
95
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Root, {
|
|
96
|
+
height: 500,
|
|
97
|
+
children: "Test"
|
|
98
|
+
}));
|
|
99
|
+
(0, vitest__rspack_import_2.expect)(mockSetHeight).toHaveBeenCalledWith(100);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
__rspack_async_done();
|
|
103
|
+
} catch (e) {
|
|
104
|
+
__rspack_async_done(e);
|
|
105
|
+
}
|
|
106
|
+
}, 1);
|
|
107
|
+
},
|
|
108
|
+
"@testing-library/react" (module) {
|
|
109
|
+
module.exports = __rspack_external__testing_library_react_f5b64048;
|
|
110
|
+
},
|
|
111
|
+
"react/jsx-runtime" (module) {
|
|
112
|
+
module.exports = __rspack_external_react_jsx_runtime_225474f2;
|
|
113
|
+
},
|
|
114
|
+
vitest (module) {
|
|
115
|
+
module.exports = __rspack_external_vitest;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
var __webpack_module_cache__ = {};
|
|
119
|
+
function __webpack_require__(moduleId) {
|
|
120
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
121
|
+
if (void 0 !== cachedModule) return cachedModule.exports;
|
|
122
|
+
var module = __webpack_module_cache__[moduleId] = {
|
|
123
|
+
exports: {}
|
|
124
|
+
};
|
|
125
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
126
|
+
return module.exports;
|
|
127
|
+
}
|
|
128
|
+
(()=>{
|
|
129
|
+
var hasSymbol = "function" == typeof Symbol;
|
|
130
|
+
var rspackQueues = hasSymbol ? Symbol("rspack queues") : "__rspack_queues";
|
|
131
|
+
var rspackExports = __webpack_require__.aE = hasSymbol ? Symbol("rspack exports") : "__webpack_exports__";
|
|
132
|
+
var rspackError = hasSymbol ? Symbol("rspack error") : "__rspack_error";
|
|
133
|
+
var rspackDone = hasSymbol ? Symbol("rspack done") : "__rspack_done";
|
|
134
|
+
var rspackDefer = __webpack_require__.zS = hasSymbol ? Symbol("rspack defer") : "__rspack_defer";
|
|
135
|
+
var resolveQueue = (queue)=>{
|
|
136
|
+
if (queue && queue.d < 1) {
|
|
137
|
+
queue.d = 1;
|
|
138
|
+
queue.forEach((fn)=>fn.r--);
|
|
139
|
+
queue.forEach((fn)=>fn.r-- ? fn.r++ : fn());
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
var wrapDeps = (deps)=>deps.map((dep)=>{
|
|
143
|
+
if (null !== dep && "object" == typeof dep) {
|
|
144
|
+
if (!dep[rspackQueues] && dep[rspackDefer]) {
|
|
145
|
+
var asyncDeps = dep[rspackDefer];
|
|
146
|
+
var hasUnresolvedAsyncSubgraph = asyncDeps.some((id)=>{
|
|
147
|
+
var cache = __webpack_module_cache__[id];
|
|
148
|
+
return !cache || false === cache[rspackDone];
|
|
149
|
+
});
|
|
150
|
+
if (!hasUnresolvedAsyncSubgraph) return dep;
|
|
151
|
+
var d = dep;
|
|
152
|
+
dep = {
|
|
153
|
+
then (callback) {
|
|
154
|
+
Promise.all(asyncDeps.map(__webpack_require__)).then(()=>callback(d));
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
if (dep[rspackQueues]) return dep;
|
|
159
|
+
if (dep.then) {
|
|
160
|
+
var queue = [];
|
|
161
|
+
queue.d = 0;
|
|
162
|
+
dep.then((r)=>{
|
|
163
|
+
obj[rspackExports] = r;
|
|
164
|
+
resolveQueue(queue);
|
|
165
|
+
}, (e)=>{
|
|
166
|
+
obj[rspackError] = e;
|
|
167
|
+
resolveQueue(queue);
|
|
168
|
+
});
|
|
169
|
+
var obj = {};
|
|
170
|
+
obj[rspackDefer] = false;
|
|
171
|
+
obj[rspackQueues] = (fn)=>fn(queue);
|
|
172
|
+
return obj;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
var ret = {};
|
|
176
|
+
ret[rspackQueues] = ()=>{};
|
|
177
|
+
ret[rspackExports] = dep;
|
|
178
|
+
return ret;
|
|
179
|
+
});
|
|
180
|
+
__webpack_require__.a = (module, body, hasAwait)=>{
|
|
181
|
+
var queue;
|
|
182
|
+
hasAwait && ((queue = []).d = -1);
|
|
183
|
+
var depQueues = new Set();
|
|
184
|
+
var exports = module.exports;
|
|
185
|
+
var currentDeps;
|
|
186
|
+
var outerResolve;
|
|
187
|
+
var reject;
|
|
188
|
+
var promise = new Promise((resolve, rej)=>{
|
|
189
|
+
reject = rej;
|
|
190
|
+
outerResolve = resolve;
|
|
191
|
+
});
|
|
192
|
+
promise[rspackExports] = exports;
|
|
193
|
+
promise[rspackQueues] = (fn)=>{
|
|
194
|
+
queue && fn(queue), depQueues.forEach(fn), promise["catch"](()=>{});
|
|
195
|
+
};
|
|
196
|
+
module.exports = promise;
|
|
197
|
+
var handle = (deps)=>{
|
|
198
|
+
currentDeps = wrapDeps(deps);
|
|
199
|
+
var fn;
|
|
200
|
+
var getResult = ()=>currentDeps.map((d)=>{
|
|
201
|
+
if (d[rspackDefer]) return d;
|
|
202
|
+
if (d[rspackError]) throw d[rspackError];
|
|
203
|
+
return d[rspackExports];
|
|
204
|
+
});
|
|
205
|
+
var promise = new Promise((resolve)=>{
|
|
206
|
+
fn = ()=>resolve(getResult);
|
|
207
|
+
fn.r = 0;
|
|
208
|
+
var fnQueue = (q)=>q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)));
|
|
209
|
+
currentDeps.map((dep)=>dep[rspackDefer] || dep[rspackQueues](fnQueue));
|
|
210
|
+
});
|
|
211
|
+
return fn.r ? promise : getResult();
|
|
212
|
+
};
|
|
213
|
+
var done = (err)=>(err ? reject(promise[rspackError] = err) : outerResolve(exports), resolveQueue(queue), promise[rspackDone] = true);
|
|
214
|
+
body(handle, done);
|
|
215
|
+
queue && queue.d < 0 && (queue.d = 0);
|
|
216
|
+
};
|
|
217
|
+
})();
|
|
218
|
+
(()=>{
|
|
219
|
+
__webpack_require__.r = (exports)=>{
|
|
220
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports, Symbol.toStringTag, {
|
|
221
|
+
value: 'Module'
|
|
222
|
+
});
|
|
223
|
+
Object.defineProperty(exports, '__esModule', {
|
|
224
|
+
value: true
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
})();
|
|
228
|
+
__webpack_require__("./src/__tests__/ScrollAreaRoot.test.tsx");
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import * as __rspack_external__testing_library_react_f5b64048 from "@testing-library/react";
|
|
2
|
+
import * as __rspack_external_react_jsx_runtime_225474f2 from "react/jsx-runtime";
|
|
3
|
+
import * as __rspack_external_vitest from "vitest";
|
|
4
|
+
var __webpack_modules__ = {
|
|
5
|
+
"./src/__tests__/ScrollButton.test.tsx" (module, __webpack_exports__, __webpack_require__) {
|
|
6
|
+
__webpack_require__.a(module, async function(__rspack_load_async_deps, __rspack_async_done) {
|
|
7
|
+
try {
|
|
8
|
+
__webpack_require__.r(__webpack_exports__);
|
|
9
|
+
var react_jsx_runtime__rspack_import_0 = __webpack_require__("react/jsx-runtime");
|
|
10
|
+
var _testing_library_react__rspack_import_1 = __webpack_require__("@testing-library/react");
|
|
11
|
+
var vitest__rspack_import_2 = __webpack_require__("vitest");
|
|
12
|
+
let mockHasScrollable = false;
|
|
13
|
+
let mockIsAboveCenter = false;
|
|
14
|
+
vitest__rspack_import_2.vi.mock('@nanostores/react', ()=>({
|
|
15
|
+
useStore: vitest__rspack_import_2.vi.fn((store)=>store.get())
|
|
16
|
+
}));
|
|
17
|
+
const mockScrollToBottom = vitest__rspack_import_2.vi.fn();
|
|
18
|
+
const mockScrollToTop = vitest__rspack_import_2.vi.fn();
|
|
19
|
+
vitest__rspack_import_2.vi.mock('../scrollArea/methods', ()=>({
|
|
20
|
+
scrollToBottom: (...args)=>mockScrollToBottom(...args),
|
|
21
|
+
scrollToTop: (...args)=>mockScrollToTop(...args)
|
|
22
|
+
}));
|
|
23
|
+
vitest__rspack_import_2.vi.mock('../scrollArea/store', ()=>({
|
|
24
|
+
useHasScrollableContent: ()=>mockHasScrollable,
|
|
25
|
+
useIsAboveCenter: ()=>mockIsAboveCenter
|
|
26
|
+
}));
|
|
27
|
+
vitest__rspack_import_2.vi.mock('@mantine/core', ()=>({
|
|
28
|
+
ActionIcon: ({ children, onClick, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("button", {
|
|
29
|
+
"data-testid": "scroll-btn",
|
|
30
|
+
onClick: onClick,
|
|
31
|
+
"aria-label": props['aria-label'],
|
|
32
|
+
children: children
|
|
33
|
+
})
|
|
34
|
+
}));
|
|
35
|
+
vitest__rspack_import_2.vi.mock('@tabler/icons-react', ()=>({
|
|
36
|
+
IconChevronDown: ()=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
|
|
37
|
+
"data-testid": "icon-down"
|
|
38
|
+
}),
|
|
39
|
+
IconChevronUp: ()=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
|
|
40
|
+
"data-testid": "icon-up"
|
|
41
|
+
})
|
|
42
|
+
}));
|
|
43
|
+
const { ScrollButton } = await import("../scrollArea/ScrollButton.js");
|
|
44
|
+
(0, vitest__rspack_import_2.describe)('ScrollButton', ()=>{
|
|
45
|
+
(0, vitest__rspack_import_2.beforeEach)(()=>{
|
|
46
|
+
vitest__rspack_import_2.vi.clearAllMocks();
|
|
47
|
+
mockHasScrollable = false;
|
|
48
|
+
mockIsAboveCenter = false;
|
|
49
|
+
});
|
|
50
|
+
(0, vitest__rspack_import_2.afterEach)(()=>(0, _testing_library_react__rspack_import_1.cleanup)());
|
|
51
|
+
(0, vitest__rspack_import_2.it)('returns null when no scrollable content', ()=>{
|
|
52
|
+
mockHasScrollable = false;
|
|
53
|
+
const { container } = (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
54
|
+
(0, vitest__rspack_import_2.expect)(container.innerHTML).toBe('');
|
|
55
|
+
});
|
|
56
|
+
(0, vitest__rspack_import_2.it)('renders when has scrollable content', ()=>{
|
|
57
|
+
mockHasScrollable = true;
|
|
58
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
59
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('scroll-btn')).toBeDefined();
|
|
60
|
+
});
|
|
61
|
+
(0, vitest__rspack_import_2.it)('shows down icon when above center', ()=>{
|
|
62
|
+
mockHasScrollable = true;
|
|
63
|
+
mockIsAboveCenter = true;
|
|
64
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
65
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('icon-down')).toBeDefined();
|
|
66
|
+
});
|
|
67
|
+
(0, vitest__rspack_import_2.it)('shows up icon when below center', ()=>{
|
|
68
|
+
mockHasScrollable = true;
|
|
69
|
+
mockIsAboveCenter = false;
|
|
70
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
71
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('icon-up')).toBeDefined();
|
|
72
|
+
});
|
|
73
|
+
(0, vitest__rspack_import_2.it)('calls scrollToBottom when clicking while above center', ()=>{
|
|
74
|
+
mockHasScrollable = true;
|
|
75
|
+
mockIsAboveCenter = true;
|
|
76
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
77
|
+
_testing_library_react__rspack_import_1.fireEvent.click(_testing_library_react__rspack_import_1.screen.getByTestId('scroll-btn'));
|
|
78
|
+
(0, vitest__rspack_import_2.expect)(mockScrollToBottom).toHaveBeenCalled();
|
|
79
|
+
});
|
|
80
|
+
(0, vitest__rspack_import_2.it)('calls scrollToTop when clicking while below center', ()=>{
|
|
81
|
+
mockHasScrollable = true;
|
|
82
|
+
mockIsAboveCenter = false;
|
|
83
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
84
|
+
_testing_library_react__rspack_import_1.fireEvent.click(_testing_library_react__rspack_import_1.screen.getByTestId('scroll-btn'));
|
|
85
|
+
(0, vitest__rspack_import_2.expect)(mockScrollToTop).toHaveBeenCalled();
|
|
86
|
+
});
|
|
87
|
+
(0, vitest__rspack_import_2.it)('sets aria-label to Scroll to bottom when above center', ()=>{
|
|
88
|
+
mockHasScrollable = true;
|
|
89
|
+
mockIsAboveCenter = true;
|
|
90
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
91
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('scroll-btn').getAttribute('aria-label')).toBe('Scroll to bottom');
|
|
92
|
+
});
|
|
93
|
+
(0, vitest__rspack_import_2.it)('sets aria-label to Scroll to top when below center', ()=>{
|
|
94
|
+
mockHasScrollable = true;
|
|
95
|
+
mockIsAboveCenter = false;
|
|
96
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {}));
|
|
97
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('scroll-btn').getAttribute('aria-label')).toBe('Scroll to top');
|
|
98
|
+
});
|
|
99
|
+
(0, vitest__rspack_import_2.it)('uses custom up/down icons', ()=>{
|
|
100
|
+
mockHasScrollable = true;
|
|
101
|
+
mockIsAboveCenter = true;
|
|
102
|
+
(0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(ScrollButton, {
|
|
103
|
+
downIcon: /*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
|
|
104
|
+
"data-testid": "custom-down"
|
|
105
|
+
}),
|
|
106
|
+
upIcon: /*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
|
|
107
|
+
"data-testid": "custom-up"
|
|
108
|
+
})
|
|
109
|
+
}));
|
|
110
|
+
(0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('custom-down')).toBeDefined();
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
__rspack_async_done();
|
|
114
|
+
} catch (e) {
|
|
115
|
+
__rspack_async_done(e);
|
|
116
|
+
}
|
|
117
|
+
}, 1);
|
|
118
|
+
},
|
|
119
|
+
"@testing-library/react" (module) {
|
|
120
|
+
module.exports = __rspack_external__testing_library_react_f5b64048;
|
|
121
|
+
},
|
|
122
|
+
"react/jsx-runtime" (module) {
|
|
123
|
+
module.exports = __rspack_external_react_jsx_runtime_225474f2;
|
|
124
|
+
},
|
|
125
|
+
vitest (module) {
|
|
126
|
+
module.exports = __rspack_external_vitest;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
var __webpack_module_cache__ = {};
|
|
130
|
+
function __webpack_require__(moduleId) {
|
|
131
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
132
|
+
if (void 0 !== cachedModule) return cachedModule.exports;
|
|
133
|
+
var module = __webpack_module_cache__[moduleId] = {
|
|
134
|
+
exports: {}
|
|
135
|
+
};
|
|
136
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
137
|
+
return module.exports;
|
|
138
|
+
}
|
|
139
|
+
(()=>{
|
|
140
|
+
var hasSymbol = "function" == typeof Symbol;
|
|
141
|
+
var rspackQueues = hasSymbol ? Symbol("rspack queues") : "__rspack_queues";
|
|
142
|
+
var rspackExports = __webpack_require__.aE = hasSymbol ? Symbol("rspack exports") : "__webpack_exports__";
|
|
143
|
+
var rspackError = hasSymbol ? Symbol("rspack error") : "__rspack_error";
|
|
144
|
+
var rspackDone = hasSymbol ? Symbol("rspack done") : "__rspack_done";
|
|
145
|
+
var rspackDefer = __webpack_require__.zS = hasSymbol ? Symbol("rspack defer") : "__rspack_defer";
|
|
146
|
+
var resolveQueue = (queue)=>{
|
|
147
|
+
if (queue && queue.d < 1) {
|
|
148
|
+
queue.d = 1;
|
|
149
|
+
queue.forEach((fn)=>fn.r--);
|
|
150
|
+
queue.forEach((fn)=>fn.r-- ? fn.r++ : fn());
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
var wrapDeps = (deps)=>deps.map((dep)=>{
|
|
154
|
+
if (null !== dep && "object" == typeof dep) {
|
|
155
|
+
if (!dep[rspackQueues] && dep[rspackDefer]) {
|
|
156
|
+
var asyncDeps = dep[rspackDefer];
|
|
157
|
+
var hasUnresolvedAsyncSubgraph = asyncDeps.some((id)=>{
|
|
158
|
+
var cache = __webpack_module_cache__[id];
|
|
159
|
+
return !cache || false === cache[rspackDone];
|
|
160
|
+
});
|
|
161
|
+
if (!hasUnresolvedAsyncSubgraph) return dep;
|
|
162
|
+
var d = dep;
|
|
163
|
+
dep = {
|
|
164
|
+
then (callback) {
|
|
165
|
+
Promise.all(asyncDeps.map(__webpack_require__)).then(()=>callback(d));
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
if (dep[rspackQueues]) return dep;
|
|
170
|
+
if (dep.then) {
|
|
171
|
+
var queue = [];
|
|
172
|
+
queue.d = 0;
|
|
173
|
+
dep.then((r)=>{
|
|
174
|
+
obj[rspackExports] = r;
|
|
175
|
+
resolveQueue(queue);
|
|
176
|
+
}, (e)=>{
|
|
177
|
+
obj[rspackError] = e;
|
|
178
|
+
resolveQueue(queue);
|
|
179
|
+
});
|
|
180
|
+
var obj = {};
|
|
181
|
+
obj[rspackDefer] = false;
|
|
182
|
+
obj[rspackQueues] = (fn)=>fn(queue);
|
|
183
|
+
return obj;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
var ret = {};
|
|
187
|
+
ret[rspackQueues] = ()=>{};
|
|
188
|
+
ret[rspackExports] = dep;
|
|
189
|
+
return ret;
|
|
190
|
+
});
|
|
191
|
+
__webpack_require__.a = (module, body, hasAwait)=>{
|
|
192
|
+
var queue;
|
|
193
|
+
hasAwait && ((queue = []).d = -1);
|
|
194
|
+
var depQueues = new Set();
|
|
195
|
+
var exports = module.exports;
|
|
196
|
+
var currentDeps;
|
|
197
|
+
var outerResolve;
|
|
198
|
+
var reject;
|
|
199
|
+
var promise = new Promise((resolve, rej)=>{
|
|
200
|
+
reject = rej;
|
|
201
|
+
outerResolve = resolve;
|
|
202
|
+
});
|
|
203
|
+
promise[rspackExports] = exports;
|
|
204
|
+
promise[rspackQueues] = (fn)=>{
|
|
205
|
+
queue && fn(queue), depQueues.forEach(fn), promise["catch"](()=>{});
|
|
206
|
+
};
|
|
207
|
+
module.exports = promise;
|
|
208
|
+
var handle = (deps)=>{
|
|
209
|
+
currentDeps = wrapDeps(deps);
|
|
210
|
+
var fn;
|
|
211
|
+
var getResult = ()=>currentDeps.map((d)=>{
|
|
212
|
+
if (d[rspackDefer]) return d;
|
|
213
|
+
if (d[rspackError]) throw d[rspackError];
|
|
214
|
+
return d[rspackExports];
|
|
215
|
+
});
|
|
216
|
+
var promise = new Promise((resolve)=>{
|
|
217
|
+
fn = ()=>resolve(getResult);
|
|
218
|
+
fn.r = 0;
|
|
219
|
+
var fnQueue = (q)=>q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)));
|
|
220
|
+
currentDeps.map((dep)=>dep[rspackDefer] || dep[rspackQueues](fnQueue));
|
|
221
|
+
});
|
|
222
|
+
return fn.r ? promise : getResult();
|
|
223
|
+
};
|
|
224
|
+
var done = (err)=>(err ? reject(promise[rspackError] = err) : outerResolve(exports), resolveQueue(queue), promise[rspackDone] = true);
|
|
225
|
+
body(handle, done);
|
|
226
|
+
queue && queue.d < 0 && (queue.d = 0);
|
|
227
|
+
};
|
|
228
|
+
})();
|
|
229
|
+
(()=>{
|
|
230
|
+
__webpack_require__.r = (exports)=>{
|
|
231
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports, Symbol.toStringTag, {
|
|
232
|
+
value: 'Module'
|
|
233
|
+
});
|
|
234
|
+
Object.defineProperty(exports, '__esModule', {
|
|
235
|
+
value: true
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
})();
|
|
239
|
+
__webpack_require__("./src/__tests__/ScrollButton.test.tsx");
|