@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.
@@ -0,0 +1,284 @@
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__/editorToolbar.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 mockDisabledToolbar = false;
13
+ let mockEditor = {
14
+ isEditable: true
15
+ };
16
+ vitest__rspack_import_2.vi.mock('../editor/store', ()=>({
17
+ getDisabledToolbar: ()=>mockDisabledToolbar,
18
+ useEditor: ()=>mockEditor
19
+ }));
20
+ const createMockControl = (name)=>{
21
+ const Component = ({ disabled, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("button", {
22
+ "data-testid": `rte-${name}`,
23
+ disabled: disabled,
24
+ ...props
25
+ });
26
+ return Component;
27
+ };
28
+ vitest__rspack_import_2.vi.mock('@mantine/tiptap', ()=>({
29
+ RichTextEditor: {
30
+ Toolbar: ({ children, sticky })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("div", {
31
+ "data-testid": "rte-toolbar",
32
+ "data-sticky": String(sticky),
33
+ children: children
34
+ }),
35
+ ControlsGroup: ({ children, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("div", {
36
+ "data-testid": "controls-group",
37
+ ...props,
38
+ children: children
39
+ }),
40
+ Control: ({ children, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("div", {
41
+ "data-testid": "rte-control",
42
+ ...props,
43
+ children: children
44
+ }),
45
+ Bold: createMockControl('Bold'),
46
+ Italic: createMockControl('Italic'),
47
+ Underline: createMockControl('Underline'),
48
+ Strikethrough: createMockControl('Strikethrough'),
49
+ ClearFormatting: createMockControl('ClearFormatting'),
50
+ Highlight: createMockControl('Highlight'),
51
+ Code: createMockControl('Code'),
52
+ H1: createMockControl('H1'),
53
+ H2: createMockControl('H2'),
54
+ H3: createMockControl('H3'),
55
+ H4: createMockControl('H4'),
56
+ Blockquote: createMockControl('Blockquote'),
57
+ Hr: createMockControl('Hr'),
58
+ BulletList: createMockControl('BulletList'),
59
+ OrderedList: createMockControl('OrderedList'),
60
+ TaskList: createMockControl('TaskList'),
61
+ TaskListLift: createMockControl('TaskListLift'),
62
+ TaskListSink: createMockControl('TaskListSink'),
63
+ Link: createMockControl('Link'),
64
+ Unlink: createMockControl('Unlink'),
65
+ AlignLeft: createMockControl('AlignLeft'),
66
+ AlignCenter: createMockControl('AlignCenter'),
67
+ AlignJustify: createMockControl('AlignJustify'),
68
+ AlignRight: createMockControl('AlignRight'),
69
+ Undo: createMockControl('Undo'),
70
+ Redo: createMockControl('Redo')
71
+ }
72
+ }));
73
+ vitest__rspack_import_2.vi.mock('@mantine/core', ()=>({
74
+ Loader: ({ size })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
75
+ "data-testid": "loader",
76
+ "data-size": size
77
+ })
78
+ }));
79
+ vitest__rspack_import_2.vi.mock('@tabler/icons-react', ()=>({
80
+ IconCheck: (props)=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
81
+ "data-testid": "check-icon"
82
+ })
83
+ }));
84
+ const { Toolbar } = await import("../editor/Toolbar.js");
85
+ (0, vitest__rspack_import_2.describe)('Editor Toolbar', ()=>{
86
+ (0, vitest__rspack_import_2.beforeEach)(()=>{
87
+ mockDisabledToolbar = false;
88
+ mockEditor = {
89
+ isEditable: true
90
+ };
91
+ });
92
+ (0, vitest__rspack_import_2.afterEach)(()=>(0, _testing_library_react__rspack_import_1.cleanup)());
93
+ (0, vitest__rspack_import_2.it)('renders toolbar when not disabled', ()=>{
94
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
95
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-toolbar')).toBeDefined();
96
+ });
97
+ (0, vitest__rspack_import_2.it)('returns null when toolbar is disabled', ()=>{
98
+ mockDisabledToolbar = true;
99
+ const { container } = (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
100
+ (0, vitest__rspack_import_2.expect)(container.innerHTML).toBe('');
101
+ });
102
+ (0, vitest__rspack_import_2.it)('renders sticky toolbar', ()=>{
103
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
104
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-toolbar').getAttribute('data-sticky')).toBe('true');
105
+ });
106
+ (0, vitest__rspack_import_2.it)('shows check icon when not saving', ()=>{
107
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
108
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('check-icon')).toBeDefined();
109
+ });
110
+ (0, vitest__rspack_import_2.it)('shows loader when saving', ()=>{
111
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {
112
+ saving: true
113
+ }));
114
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('loader')).toBeDefined();
115
+ });
116
+ (0, vitest__rspack_import_2.it)('renders all control groups', ()=>{
117
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
118
+ const groups = _testing_library_react__rspack_import_1.screen.getAllByTestId('controls-group');
119
+ (0, vitest__rspack_import_2.expect)(groups.length).toBe(8);
120
+ });
121
+ (0, vitest__rspack_import_2.it)('renders formatting controls', ()=>{
122
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
123
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-Bold')).toBeDefined();
124
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-Italic')).toBeDefined();
125
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-Underline')).toBeDefined();
126
+ });
127
+ (0, vitest__rspack_import_2.it)('renders heading controls', ()=>{
128
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
129
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-H1')).toBeDefined();
130
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-H4')).toBeDefined();
131
+ });
132
+ (0, vitest__rspack_import_2.it)('renders undo/redo controls', ()=>{
133
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
134
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-Undo')).toBeDefined();
135
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-Redo')).toBeDefined();
136
+ });
137
+ (0, vitest__rspack_import_2.it)('disables controls when editor is not editable', ()=>{
138
+ mockEditor = {
139
+ isEditable: false
140
+ };
141
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
142
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-Bold').disabled).toBe(true);
143
+ });
144
+ (0, vitest__rspack_import_2.it)('enables controls when editor is editable', ()=>{
145
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {}));
146
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('rte-Bold').disabled).toBe(false);
147
+ });
148
+ (0, vitest__rspack_import_2.it)('renders custom children', ()=>{
149
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(Toolbar, {
150
+ children: /*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
151
+ "data-testid": "custom-child",
152
+ children: "Custom"
153
+ })
154
+ }));
155
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('custom-child')).toBeDefined();
156
+ });
157
+ });
158
+ __rspack_async_done();
159
+ } catch (e) {
160
+ __rspack_async_done(e);
161
+ }
162
+ }, 1);
163
+ },
164
+ "@testing-library/react" (module) {
165
+ module.exports = __rspack_external__testing_library_react_f5b64048;
166
+ },
167
+ "react/jsx-runtime" (module) {
168
+ module.exports = __rspack_external_react_jsx_runtime_225474f2;
169
+ },
170
+ vitest (module) {
171
+ module.exports = __rspack_external_vitest;
172
+ }
173
+ };
174
+ var __webpack_module_cache__ = {};
175
+ function __webpack_require__(moduleId) {
176
+ var cachedModule = __webpack_module_cache__[moduleId];
177
+ if (void 0 !== cachedModule) return cachedModule.exports;
178
+ var module = __webpack_module_cache__[moduleId] = {
179
+ exports: {}
180
+ };
181
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
182
+ return module.exports;
183
+ }
184
+ (()=>{
185
+ var hasSymbol = "function" == typeof Symbol;
186
+ var rspackQueues = hasSymbol ? Symbol("rspack queues") : "__rspack_queues";
187
+ var rspackExports = __webpack_require__.aE = hasSymbol ? Symbol("rspack exports") : "__webpack_exports__";
188
+ var rspackError = hasSymbol ? Symbol("rspack error") : "__rspack_error";
189
+ var rspackDone = hasSymbol ? Symbol("rspack done") : "__rspack_done";
190
+ var rspackDefer = __webpack_require__.zS = hasSymbol ? Symbol("rspack defer") : "__rspack_defer";
191
+ var resolveQueue = (queue)=>{
192
+ if (queue && queue.d < 1) {
193
+ queue.d = 1;
194
+ queue.forEach((fn)=>fn.r--);
195
+ queue.forEach((fn)=>fn.r-- ? fn.r++ : fn());
196
+ }
197
+ };
198
+ var wrapDeps = (deps)=>deps.map((dep)=>{
199
+ if (null !== dep && "object" == typeof dep) {
200
+ if (!dep[rspackQueues] && dep[rspackDefer]) {
201
+ var asyncDeps = dep[rspackDefer];
202
+ var hasUnresolvedAsyncSubgraph = asyncDeps.some((id)=>{
203
+ var cache = __webpack_module_cache__[id];
204
+ return !cache || false === cache[rspackDone];
205
+ });
206
+ if (!hasUnresolvedAsyncSubgraph) return dep;
207
+ var d = dep;
208
+ dep = {
209
+ then (callback) {
210
+ Promise.all(asyncDeps.map(__webpack_require__)).then(()=>callback(d));
211
+ }
212
+ };
213
+ }
214
+ if (dep[rspackQueues]) return dep;
215
+ if (dep.then) {
216
+ var queue = [];
217
+ queue.d = 0;
218
+ dep.then((r)=>{
219
+ obj[rspackExports] = r;
220
+ resolveQueue(queue);
221
+ }, (e)=>{
222
+ obj[rspackError] = e;
223
+ resolveQueue(queue);
224
+ });
225
+ var obj = {};
226
+ obj[rspackDefer] = false;
227
+ obj[rspackQueues] = (fn)=>fn(queue);
228
+ return obj;
229
+ }
230
+ }
231
+ var ret = {};
232
+ ret[rspackQueues] = ()=>{};
233
+ ret[rspackExports] = dep;
234
+ return ret;
235
+ });
236
+ __webpack_require__.a = (module, body, hasAwait)=>{
237
+ var queue;
238
+ hasAwait && ((queue = []).d = -1);
239
+ var depQueues = new Set();
240
+ var exports = module.exports;
241
+ var currentDeps;
242
+ var outerResolve;
243
+ var reject;
244
+ var promise = new Promise((resolve, rej)=>{
245
+ reject = rej;
246
+ outerResolve = resolve;
247
+ });
248
+ promise[rspackExports] = exports;
249
+ promise[rspackQueues] = (fn)=>{
250
+ queue && fn(queue), depQueues.forEach(fn), promise["catch"](()=>{});
251
+ };
252
+ module.exports = promise;
253
+ var handle = (deps)=>{
254
+ currentDeps = wrapDeps(deps);
255
+ var fn;
256
+ var getResult = ()=>currentDeps.map((d)=>{
257
+ if (d[rspackDefer]) return d;
258
+ if (d[rspackError]) throw d[rspackError];
259
+ return d[rspackExports];
260
+ });
261
+ var promise = new Promise((resolve)=>{
262
+ fn = ()=>resolve(getResult);
263
+ fn.r = 0;
264
+ var fnQueue = (q)=>q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)));
265
+ currentDeps.map((dep)=>dep[rspackDefer] || dep[rspackQueues](fnQueue));
266
+ });
267
+ return fn.r ? promise : getResult();
268
+ };
269
+ var done = (err)=>(err ? reject(promise[rspackError] = err) : outerResolve(exports), resolveQueue(queue), promise[rspackDone] = true);
270
+ body(handle, done);
271
+ queue && queue.d < 0 && (queue.d = 0);
272
+ };
273
+ })();
274
+ (()=>{
275
+ __webpack_require__.r = (exports)=>{
276
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports, Symbol.toStringTag, {
277
+ value: 'Module'
278
+ });
279
+ Object.defineProperty(exports, '__esModule', {
280
+ value: true
281
+ });
282
+ };
283
+ })();
284
+ __webpack_require__("./src/__tests__/editorToolbar.test.tsx");
@@ -0,0 +1,284 @@
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__/formButtons.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 mockFormContext = {
13
+ Subscribe: ({ selector, children })=>{
14
+ const state = {
15
+ isSubmitting: false,
16
+ isDirty: true
17
+ };
18
+ const result = selector(state);
19
+ return /*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(react_jsx_runtime__rspack_import_0.Fragment, {
20
+ children: children(result)
21
+ });
22
+ }
23
+ };
24
+ vitest__rspack_import_2.vi.mock('../form/context', ()=>({
25
+ useFormContext: ()=>mockFormContext
26
+ }));
27
+ vitest__rspack_import_2.vi.mock('@mantine/core', ()=>({
28
+ Button: ({ children, loading, disabled, type, variant, size, leftSection, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsxs)("button", {
29
+ "data-testid": "button",
30
+ "data-loading": String(!!loading),
31
+ disabled: disabled,
32
+ type: type,
33
+ "data-variant": variant,
34
+ "data-size": size,
35
+ ...props,
36
+ children: [
37
+ leftSection,
38
+ children
39
+ ]
40
+ }),
41
+ ActionIcon: ({ children, disabled, ...props })=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("button", {
42
+ "data-testid": "action-icon",
43
+ disabled: disabled,
44
+ ...props,
45
+ children: children
46
+ })
47
+ }));
48
+ vitest__rspack_import_2.vi.mock('@tabler/icons-react', ()=>({
49
+ IconDeviceFloppy: (props)=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
50
+ "data-testid": "floppy-icon"
51
+ }),
52
+ IconCancel: (props)=>/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
53
+ "data-testid": "cancel-icon"
54
+ })
55
+ }));
56
+ const { SubmitButton } = await import("../form/buttons/SubmitButton.js");
57
+ const { CancelButton } = await import("../form/buttons/CancelButton.js");
58
+ const { SubscribeButton } = await import("../form/buttons/SubscribeButton.js");
59
+ const { SubscribeActionIcon } = await import("../form/buttons/SubscribeActionIcon.js");
60
+ (0, vitest__rspack_import_2.describe)('SubmitButton', ()=>{
61
+ (0, vitest__rspack_import_2.afterEach)(()=>(0, _testing_library_react__rspack_import_1.cleanup)());
62
+ (0, vitest__rspack_import_2.it)('renders with default label', ()=>{
63
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubmitButton, {}));
64
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Сохранить')).toBeDefined();
65
+ });
66
+ (0, vitest__rspack_import_2.it)('renders with custom label', ()=>{
67
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubmitButton, {
68
+ label: "Save"
69
+ }));
70
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Save')).toBeDefined();
71
+ });
72
+ (0, vitest__rspack_import_2.it)('renders floppy icon', ()=>{
73
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubmitButton, {}));
74
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('floppy-icon')).toBeDefined();
75
+ });
76
+ (0, vitest__rspack_import_2.it)('has type submit', ()=>{
77
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubmitButton, {}));
78
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('button').getAttribute('type')).toBe('submit');
79
+ });
80
+ (0, vitest__rspack_import_2.it)('has size xs', ()=>{
81
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubmitButton, {}));
82
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('button').getAttribute('data-size')).toBe('xs');
83
+ });
84
+ });
85
+ (0, vitest__rspack_import_2.describe)('CancelButton', ()=>{
86
+ (0, vitest__rspack_import_2.afterEach)(()=>(0, _testing_library_react__rspack_import_1.cleanup)());
87
+ (0, vitest__rspack_import_2.it)('renders with default label', ()=>{
88
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(CancelButton, {}));
89
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Отмена')).toBeDefined();
90
+ });
91
+ (0, vitest__rspack_import_2.it)('renders with custom label', ()=>{
92
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(CancelButton, {
93
+ label: "Undo"
94
+ }));
95
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Undo')).toBeDefined();
96
+ });
97
+ (0, vitest__rspack_import_2.it)('renders cancel icon', ()=>{
98
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(CancelButton, {}));
99
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('cancel-icon')).toBeDefined();
100
+ });
101
+ (0, vitest__rspack_import_2.it)('has type reset', ()=>{
102
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(CancelButton, {}));
103
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('button').getAttribute('type')).toBe('reset');
104
+ });
105
+ (0, vitest__rspack_import_2.it)('has light variant', ()=>{
106
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(CancelButton, {}));
107
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('button').getAttribute('data-variant')).toBe('light');
108
+ });
109
+ });
110
+ (0, vitest__rspack_import_2.describe)('SubscribeButton', ()=>{
111
+ (0, vitest__rspack_import_2.afterEach)(()=>(0, _testing_library_react__rspack_import_1.cleanup)());
112
+ (0, vitest__rspack_import_2.it)('renders with label', ()=>{
113
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubscribeButton, {
114
+ label: "Action"
115
+ }));
116
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByText('Action')).toBeDefined();
117
+ });
118
+ (0, vitest__rspack_import_2.it)('has type button', ()=>{
119
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubscribeButton, {
120
+ label: "Action"
121
+ }));
122
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('button').getAttribute('type')).toBe('button');
123
+ });
124
+ (0, vitest__rspack_import_2.it)('is not disabled when not submitting', ()=>{
125
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubscribeButton, {
126
+ label: "Action"
127
+ }));
128
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('button').disabled).toBe(false);
129
+ });
130
+ });
131
+ (0, vitest__rspack_import_2.describe)('SubscribeActionIcon', ()=>{
132
+ (0, vitest__rspack_import_2.afterEach)(()=>(0, _testing_library_react__rspack_import_1.cleanup)());
133
+ (0, vitest__rspack_import_2.it)('renders children', ()=>{
134
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubscribeActionIcon, {
135
+ children: /*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)("span", {
136
+ "data-testid": "child",
137
+ children: "Icon"
138
+ })
139
+ }));
140
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('child')).toBeDefined();
141
+ });
142
+ (0, vitest__rspack_import_2.it)('is not disabled when not submitting', ()=>{
143
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubscribeActionIcon, {
144
+ children: "Icon"
145
+ }));
146
+ (0, vitest__rspack_import_2.expect)(_testing_library_react__rspack_import_1.screen.getByTestId('action-icon').disabled).toBe(false);
147
+ });
148
+ (0, vitest__rspack_import_2.it)('calls onClick when clicked', ()=>{
149
+ const onClick = vitest__rspack_import_2.vi.fn();
150
+ (0, _testing_library_react__rspack_import_1.render)(/*#__PURE__*/ (0, react_jsx_runtime__rspack_import_0.jsx)(SubscribeActionIcon, {
151
+ onClick: onClick,
152
+ children: "Icon"
153
+ }));
154
+ _testing_library_react__rspack_import_1.fireEvent.click(_testing_library_react__rspack_import_1.screen.getByTestId('action-icon'));
155
+ (0, vitest__rspack_import_2.expect)(onClick).toHaveBeenCalled();
156
+ });
157
+ });
158
+ __rspack_async_done();
159
+ } catch (e) {
160
+ __rspack_async_done(e);
161
+ }
162
+ }, 1);
163
+ },
164
+ "@testing-library/react" (module) {
165
+ module.exports = __rspack_external__testing_library_react_f5b64048;
166
+ },
167
+ "react/jsx-runtime" (module) {
168
+ module.exports = __rspack_external_react_jsx_runtime_225474f2;
169
+ },
170
+ vitest (module) {
171
+ module.exports = __rspack_external_vitest;
172
+ }
173
+ };
174
+ var __webpack_module_cache__ = {};
175
+ function __webpack_require__(moduleId) {
176
+ var cachedModule = __webpack_module_cache__[moduleId];
177
+ if (void 0 !== cachedModule) return cachedModule.exports;
178
+ var module = __webpack_module_cache__[moduleId] = {
179
+ exports: {}
180
+ };
181
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
182
+ return module.exports;
183
+ }
184
+ (()=>{
185
+ var hasSymbol = "function" == typeof Symbol;
186
+ var rspackQueues = hasSymbol ? Symbol("rspack queues") : "__rspack_queues";
187
+ var rspackExports = __webpack_require__.aE = hasSymbol ? Symbol("rspack exports") : "__webpack_exports__";
188
+ var rspackError = hasSymbol ? Symbol("rspack error") : "__rspack_error";
189
+ var rspackDone = hasSymbol ? Symbol("rspack done") : "__rspack_done";
190
+ var rspackDefer = __webpack_require__.zS = hasSymbol ? Symbol("rspack defer") : "__rspack_defer";
191
+ var resolveQueue = (queue)=>{
192
+ if (queue && queue.d < 1) {
193
+ queue.d = 1;
194
+ queue.forEach((fn)=>fn.r--);
195
+ queue.forEach((fn)=>fn.r-- ? fn.r++ : fn());
196
+ }
197
+ };
198
+ var wrapDeps = (deps)=>deps.map((dep)=>{
199
+ if (null !== dep && "object" == typeof dep) {
200
+ if (!dep[rspackQueues] && dep[rspackDefer]) {
201
+ var asyncDeps = dep[rspackDefer];
202
+ var hasUnresolvedAsyncSubgraph = asyncDeps.some((id)=>{
203
+ var cache = __webpack_module_cache__[id];
204
+ return !cache || false === cache[rspackDone];
205
+ });
206
+ if (!hasUnresolvedAsyncSubgraph) return dep;
207
+ var d = dep;
208
+ dep = {
209
+ then (callback) {
210
+ Promise.all(asyncDeps.map(__webpack_require__)).then(()=>callback(d));
211
+ }
212
+ };
213
+ }
214
+ if (dep[rspackQueues]) return dep;
215
+ if (dep.then) {
216
+ var queue = [];
217
+ queue.d = 0;
218
+ dep.then((r)=>{
219
+ obj[rspackExports] = r;
220
+ resolveQueue(queue);
221
+ }, (e)=>{
222
+ obj[rspackError] = e;
223
+ resolveQueue(queue);
224
+ });
225
+ var obj = {};
226
+ obj[rspackDefer] = false;
227
+ obj[rspackQueues] = (fn)=>fn(queue);
228
+ return obj;
229
+ }
230
+ }
231
+ var ret = {};
232
+ ret[rspackQueues] = ()=>{};
233
+ ret[rspackExports] = dep;
234
+ return ret;
235
+ });
236
+ __webpack_require__.a = (module, body, hasAwait)=>{
237
+ var queue;
238
+ hasAwait && ((queue = []).d = -1);
239
+ var depQueues = new Set();
240
+ var exports = module.exports;
241
+ var currentDeps;
242
+ var outerResolve;
243
+ var reject;
244
+ var promise = new Promise((resolve, rej)=>{
245
+ reject = rej;
246
+ outerResolve = resolve;
247
+ });
248
+ promise[rspackExports] = exports;
249
+ promise[rspackQueues] = (fn)=>{
250
+ queue && fn(queue), depQueues.forEach(fn), promise["catch"](()=>{});
251
+ };
252
+ module.exports = promise;
253
+ var handle = (deps)=>{
254
+ currentDeps = wrapDeps(deps);
255
+ var fn;
256
+ var getResult = ()=>currentDeps.map((d)=>{
257
+ if (d[rspackDefer]) return d;
258
+ if (d[rspackError]) throw d[rspackError];
259
+ return d[rspackExports];
260
+ });
261
+ var promise = new Promise((resolve)=>{
262
+ fn = ()=>resolve(getResult);
263
+ fn.r = 0;
264
+ var fnQueue = (q)=>q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)));
265
+ currentDeps.map((dep)=>dep[rspackDefer] || dep[rspackQueues](fnQueue));
266
+ });
267
+ return fn.r ? promise : getResult();
268
+ };
269
+ var done = (err)=>(err ? reject(promise[rspackError] = err) : outerResolve(exports), resolveQueue(queue), promise[rspackDone] = true);
270
+ body(handle, done);
271
+ queue && queue.d < 0 && (queue.d = 0);
272
+ };
273
+ })();
274
+ (()=>{
275
+ __webpack_require__.r = (exports)=>{
276
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports, Symbol.toStringTag, {
277
+ value: 'Module'
278
+ });
279
+ Object.defineProperty(exports, '__esModule', {
280
+ value: true
281
+ });
282
+ };
283
+ })();
284
+ __webpack_require__("./src/__tests__/formButtons.test.tsx");