@allxsmith/bestax-bulma 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +10 -1
  2. package/dist/index.cjs.js +357 -2154
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.esm.js +357 -2154
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/types/columns/Column.d.ts +0 -43
  7. package/dist/types/columns/Columns.d.ts +0 -32
  8. package/dist/types/components/Breadcrumb.d.ts +0 -28
  9. package/dist/types/components/Card.d.ts +0 -24
  10. package/dist/types/components/Dropdown.d.ts +0 -42
  11. package/dist/types/components/Menu.d.ts +0 -48
  12. package/dist/types/components/Message.d.ts +0 -21
  13. package/dist/types/components/Modal.d.ts +0 -21
  14. package/dist/types/components/Navbar.d.ts +0 -146
  15. package/dist/types/components/Pagination.d.ts +0 -68
  16. package/dist/types/components/Panel.d.ts +0 -81
  17. package/dist/types/components/Tab.d.ts +0 -49
  18. package/dist/types/components/Tabs.d.ts +0 -49
  19. package/dist/types/elements/Block.d.ts +0 -20
  20. package/dist/types/elements/Box.d.ts +1 -23
  21. package/dist/types/elements/Button.d.ts +0 -36
  22. package/dist/types/elements/Buttons.d.ts +0 -22
  23. package/dist/types/elements/Content.d.ts +0 -21
  24. package/dist/types/elements/Delete.d.ts +0 -22
  25. package/dist/types/elements/Icon.d.ts +0 -24
  26. package/dist/types/elements/IconText.d.ts +0 -27
  27. package/dist/types/elements/Image.d.ts +0 -27
  28. package/dist/types/elements/Notification.d.ts +0 -20
  29. package/dist/types/elements/Progress.d.ts +0 -20
  30. package/dist/types/elements/SubTitle.d.ts +0 -24
  31. package/dist/types/elements/Table.d.ts +0 -25
  32. package/dist/types/elements/Tag.d.ts +0 -28
  33. package/dist/types/elements/Tags.d.ts +0 -18
  34. package/dist/types/elements/Tbody.d.ts +0 -19
  35. package/dist/types/elements/Td.d.ts +0 -23
  36. package/dist/types/elements/Tfoot.d.ts +0 -19
  37. package/dist/types/elements/Th.d.ts +0 -25
  38. package/dist/types/elements/Thead.d.ts +0 -19
  39. package/dist/types/elements/Title.d.ts +0 -25
  40. package/dist/types/elements/Tr.d.ts +0 -21
  41. package/dist/types/form/Checkbox.d.ts +0 -16
  42. package/dist/types/form/Checkboxes.d.ts +0 -15
  43. package/dist/types/form/Control.d.ts +0 -30
  44. package/dist/types/form/Field.d.ts +0 -57
  45. package/dist/types/form/File.d.ts +0 -26
  46. package/dist/types/form/Input.d.ts +0 -22
  47. package/dist/types/form/Radio.d.ts +0 -16
  48. package/dist/types/form/Radios.d.ts +0 -15
  49. package/dist/types/form/Select.d.ts +0 -22
  50. package/dist/types/form/TextArea.d.ts +0 -25
  51. package/dist/types/grid/Cell.d.ts +0 -26
  52. package/dist/types/grid/Grid.d.ts +0 -40
  53. package/dist/types/helpers/classNames.d.ts +0 -14
  54. package/dist/types/helpers/useBulmaClasses.d.ts +0 -130
  55. package/dist/types/layout/Container.d.ts +0 -26
  56. package/dist/types/layout/Footer.d.ts +0 -19
  57. package/dist/types/layout/Hero.d.ts +0 -57
  58. package/dist/types/layout/Level.d.ts +0 -59
  59. package/dist/types/layout/Media.d.ts +0 -55
  60. package/dist/types/layout/Section.d.ts +0 -21
  61. package/package.json +5 -5
package/dist/index.cjs.js CHANGED
@@ -4,26 +4,47 @@ var React = require('react');
4
4
 
5
5
  var jsxRuntime = {exports: {}};
6
6
 
7
- var reactJsxRuntime_production_min = {};
7
+ var reactJsxRuntime_production = {};
8
8
 
9
9
  /**
10
10
  * @license React
11
- * react-jsx-runtime.production.min.js
11
+ * react-jsx-runtime.production.js
12
12
  *
13
- * Copyright (c) Facebook, Inc. and its affiliates.
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
17
  */
18
18
 
19
- var hasRequiredReactJsxRuntime_production_min;
20
-
21
- function requireReactJsxRuntime_production_min () {
22
- if (hasRequiredReactJsxRuntime_production_min) return reactJsxRuntime_production_min;
23
- hasRequiredReactJsxRuntime_production_min = 1;
24
- var f=React,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:true,ref:true,__self:true,__source:true};
25
- function q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=""+g);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a) void 0===d[b]&&(d[b]=a[b]);return {$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q;reactJsxRuntime_production_min.jsxs=q;
26
- return reactJsxRuntime_production_min;
19
+ var hasRequiredReactJsxRuntime_production;
20
+
21
+ function requireReactJsxRuntime_production () {
22
+ if (hasRequiredReactJsxRuntime_production) return reactJsxRuntime_production;
23
+ hasRequiredReactJsxRuntime_production = 1;
24
+ var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
25
+ REACT_FRAGMENT_TYPE = Symbol.for("react.fragment");
26
+ function jsxProd(type, config, maybeKey) {
27
+ var key = null;
28
+ void 0 !== maybeKey && (key = "" + maybeKey);
29
+ void 0 !== config.key && (key = "" + config.key);
30
+ if ("key" in config) {
31
+ maybeKey = {};
32
+ for (var propName in config)
33
+ "key" !== propName && (maybeKey[propName] = config[propName]);
34
+ } else maybeKey = config;
35
+ config = maybeKey.ref;
36
+ return {
37
+ $$typeof: REACT_ELEMENT_TYPE,
38
+ type: type,
39
+ key: key,
40
+ ref: void 0 !== config ? config : null,
41
+ props: maybeKey
42
+ };
43
+ }
44
+ reactJsxRuntime_production.Fragment = REACT_FRAGMENT_TYPE;
45
+ reactJsxRuntime_production.jsx = jsxProd;
46
+ reactJsxRuntime_production.jsxs = jsxProd;
47
+ return reactJsxRuntime_production;
27
48
  }
28
49
 
29
50
  var reactJsxRuntime_development = {};
@@ -32,7 +53,7 @@ var reactJsxRuntime_development = {};
32
53
  * @license React
33
54
  * react-jsx-runtime.development.js
34
55
  *
35
- * Copyright (c) Facebook, Inc. and its affiliates.
56
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
36
57
  *
37
58
  * This source code is licensed under the MIT license found in the
38
59
  * LICENSE file in the root directory of this source tree.
@@ -43,1309 +64,352 @@ var hasRequiredReactJsxRuntime_development;
43
64
  function requireReactJsxRuntime_development () {
44
65
  if (hasRequiredReactJsxRuntime_development) return reactJsxRuntime_development;
45
66
  hasRequiredReactJsxRuntime_development = 1;
46
-
47
- if (process.env.NODE_ENV !== "production") {
48
- (function() {
49
-
50
- var React$1 = React;
51
-
52
- // ATTENTION
53
- // When adding new symbols to this file,
54
- // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
55
- // The Symbol used to tag the ReactElement-like types.
56
- var REACT_ELEMENT_TYPE = Symbol.for('react.element');
57
- var REACT_PORTAL_TYPE = Symbol.for('react.portal');
58
- var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
59
- var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
60
- var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
61
- var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
62
- var REACT_CONTEXT_TYPE = Symbol.for('react.context');
63
- var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
64
- var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
65
- var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
66
- var REACT_MEMO_TYPE = Symbol.for('react.memo');
67
- var REACT_LAZY_TYPE = Symbol.for('react.lazy');
68
- var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
69
- var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;
70
- var FAUX_ITERATOR_SYMBOL = '@@iterator';
71
- function getIteratorFn(maybeIterable) {
72
- if (maybeIterable === null || typeof maybeIterable !== 'object') {
73
- return null;
74
- }
75
-
76
- var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
77
-
78
- if (typeof maybeIterator === 'function') {
79
- return maybeIterator;
80
- }
81
-
82
- return null;
83
- }
84
-
85
- var ReactSharedInternals = React$1.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
86
-
87
- function error(format) {
88
- {
89
- {
90
- for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
91
- args[_key2 - 1] = arguments[_key2];
67
+ "production" !== process.env.NODE_ENV &&
68
+ (function () {
69
+ function getComponentNameFromType(type) {
70
+ if (null == type) return null;
71
+ if ("function" === typeof type)
72
+ return type.$$typeof === REACT_CLIENT_REFERENCE
73
+ ? null
74
+ : type.displayName || type.name || null;
75
+ if ("string" === typeof type) return type;
76
+ switch (type) {
77
+ case REACT_FRAGMENT_TYPE:
78
+ return "Fragment";
79
+ case REACT_PROFILER_TYPE:
80
+ return "Profiler";
81
+ case REACT_STRICT_MODE_TYPE:
82
+ return "StrictMode";
83
+ case REACT_SUSPENSE_TYPE:
84
+ return "Suspense";
85
+ case REACT_SUSPENSE_LIST_TYPE:
86
+ return "SuspenseList";
87
+ case REACT_ACTIVITY_TYPE:
88
+ return "Activity";
92
89
  }
93
-
94
- printWarning('error', format, args);
95
- }
96
- }
97
- }
98
-
99
- function printWarning(level, format, args) {
100
- // When changing this logic, you might want to also
101
- // update consoleWithStackDev.www.js as well.
102
- {
103
- var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
104
- var stack = ReactDebugCurrentFrame.getStackAddendum();
105
-
106
- if (stack !== '') {
107
- format += '%s';
108
- args = args.concat([stack]);
109
- } // eslint-disable-next-line react-internal/safe-string-coercion
110
-
111
-
112
- var argsWithFormat = args.map(function (item) {
113
- return String(item);
114
- }); // Careful: RN currently depends on this prefix
115
-
116
- argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
117
- // breaks IE9: https://github.com/facebook/react/issues/13610
118
- // eslint-disable-next-line react-internal/no-production-logging
119
-
120
- Function.prototype.apply.call(console[level], console, argsWithFormat);
121
- }
122
- }
123
-
124
- // -----------------------------------------------------------------------------
125
-
126
- var enableScopeAPI = false; // Experimental Create Event Handle API.
127
- var enableCacheElement = false;
128
- var enableTransitionTracing = false; // No known bugs, but needs performance testing
129
-
130
- var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
131
- // stuff. Intended to enable React core members to more easily debug scheduling
132
- // issues in DEV builds.
133
-
134
- var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
135
-
136
- var REACT_MODULE_REFERENCE;
137
-
138
- {
139
- REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
140
- }
141
-
142
- function isValidElementType(type) {
143
- if (typeof type === 'string' || typeof type === 'function') {
144
- return true;
145
- } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
146
-
147
-
148
- if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {
149
- return true;
150
- }
151
-
152
- if (typeof type === 'object' && type !== null) {
153
- if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object
154
- // types supported by any Flight configuration anywhere since
155
- // we don't know which Flight build this will end up being used
156
- // with.
157
- type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
158
- return true;
159
- }
160
- }
161
-
162
- return false;
163
- }
164
-
165
- function getWrappedName(outerType, innerType, wrapperName) {
166
- var displayName = outerType.displayName;
167
-
168
- if (displayName) {
169
- return displayName;
170
- }
171
-
172
- var functionName = innerType.displayName || innerType.name || '';
173
- return functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName;
174
- } // Keep in sync with react-reconciler/getComponentNameFromFiber
175
-
176
-
177
- function getContextName(type) {
178
- return type.displayName || 'Context';
179
- } // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.
180
-
181
-
182
- function getComponentNameFromType(type) {
183
- if (type == null) {
184
- // Host root, text node or just invalid type.
185
- return null;
186
- }
187
-
188
- {
189
- if (typeof type.tag === 'number') {
190
- error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');
191
- }
192
- }
193
-
194
- if (typeof type === 'function') {
195
- return type.displayName || type.name || null;
196
- }
197
-
198
- if (typeof type === 'string') {
199
- return type;
200
- }
201
-
202
- switch (type) {
203
- case REACT_FRAGMENT_TYPE:
204
- return 'Fragment';
205
-
206
- case REACT_PORTAL_TYPE:
207
- return 'Portal';
208
-
209
- case REACT_PROFILER_TYPE:
210
- return 'Profiler';
211
-
212
- case REACT_STRICT_MODE_TYPE:
213
- return 'StrictMode';
214
-
215
- case REACT_SUSPENSE_TYPE:
216
- return 'Suspense';
217
-
218
- case REACT_SUSPENSE_LIST_TYPE:
219
- return 'SuspenseList';
220
-
221
- }
222
-
223
- if (typeof type === 'object') {
224
- switch (type.$$typeof) {
225
- case REACT_CONTEXT_TYPE:
226
- var context = type;
227
- return getContextName(context) + '.Consumer';
228
-
229
- case REACT_PROVIDER_TYPE:
230
- var provider = type;
231
- return getContextName(provider._context) + '.Provider';
232
-
233
- case REACT_FORWARD_REF_TYPE:
234
- return getWrappedName(type, type.render, 'ForwardRef');
235
-
236
- case REACT_MEMO_TYPE:
237
- var outerName = type.displayName || null;
238
-
239
- if (outerName !== null) {
240
- return outerName;
241
- }
242
-
243
- return getComponentNameFromType(type.type) || 'Memo';
244
-
245
- case REACT_LAZY_TYPE:
246
- {
247
- var lazyComponent = type;
248
- var payload = lazyComponent._payload;
249
- var init = lazyComponent._init;
250
-
251
- try {
252
- return getComponentNameFromType(init(payload));
253
- } catch (x) {
254
- return null;
255
- }
90
+ if ("object" === typeof type)
91
+ switch (
92
+ ("number" === typeof type.tag &&
93
+ console.error(
94
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
95
+ ),
96
+ type.$$typeof)
97
+ ) {
98
+ case REACT_PORTAL_TYPE:
99
+ return "Portal";
100
+ case REACT_CONTEXT_TYPE:
101
+ return (type.displayName || "Context") + ".Provider";
102
+ case REACT_CONSUMER_TYPE:
103
+ return (type._context.displayName || "Context") + ".Consumer";
104
+ case REACT_FORWARD_REF_TYPE:
105
+ var innerType = type.render;
106
+ type = type.displayName;
107
+ type ||
108
+ ((type = innerType.displayName || innerType.name || ""),
109
+ (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef"));
110
+ return type;
111
+ case REACT_MEMO_TYPE:
112
+ return (
113
+ (innerType = type.displayName || null),
114
+ null !== innerType
115
+ ? innerType
116
+ : getComponentNameFromType(type.type) || "Memo"
117
+ );
118
+ case REACT_LAZY_TYPE:
119
+ innerType = type._payload;
120
+ type = type._init;
121
+ try {
122
+ return getComponentNameFromType(type(innerType));
123
+ } catch (x) {}
256
124
  }
257
-
258
- // eslint-disable-next-line no-fallthrough
259
- }
260
- }
261
-
262
- return null;
263
- }
264
-
265
- var assign = Object.assign;
266
-
267
- // Helpers to patch console.logs to avoid logging during side-effect free
268
- // replaying on render function. This currently only patches the object
269
- // lazily which won't cover if the log function was extracted eagerly.
270
- // We could also eagerly patch the method.
271
- var disabledDepth = 0;
272
- var prevLog;
273
- var prevInfo;
274
- var prevWarn;
275
- var prevError;
276
- var prevGroup;
277
- var prevGroupCollapsed;
278
- var prevGroupEnd;
279
-
280
- function disabledLog() {}
281
-
282
- disabledLog.__reactDisabledLog = true;
283
- function disableLogs() {
284
- {
285
- if (disabledDepth === 0) {
286
- /* eslint-disable react-internal/no-production-logging */
287
- prevLog = console.log;
288
- prevInfo = console.info;
289
- prevWarn = console.warn;
290
- prevError = console.error;
291
- prevGroup = console.group;
292
- prevGroupCollapsed = console.groupCollapsed;
293
- prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
294
-
295
- var props = {
296
- configurable: true,
297
- enumerable: true,
298
- value: disabledLog,
299
- writable: true
300
- }; // $FlowFixMe Flow thinks console is immutable.
301
-
302
- Object.defineProperties(console, {
303
- info: props,
304
- log: props,
305
- warn: props,
306
- error: props,
307
- group: props,
308
- groupCollapsed: props,
309
- groupEnd: props
310
- });
311
- /* eslint-enable react-internal/no-production-logging */
125
+ return null;
312
126
  }
313
-
314
- disabledDepth++;
315
- }
316
- }
317
- function reenableLogs() {
318
- {
319
- disabledDepth--;
320
-
321
- if (disabledDepth === 0) {
322
- /* eslint-disable react-internal/no-production-logging */
323
- var props = {
324
- configurable: true,
325
- enumerable: true,
326
- writable: true
327
- }; // $FlowFixMe Flow thinks console is immutable.
328
-
329
- Object.defineProperties(console, {
330
- log: assign({}, props, {
331
- value: prevLog
332
- }),
333
- info: assign({}, props, {
334
- value: prevInfo
335
- }),
336
- warn: assign({}, props, {
337
- value: prevWarn
338
- }),
339
- error: assign({}, props, {
340
- value: prevError
341
- }),
342
- group: assign({}, props, {
343
- value: prevGroup
344
- }),
345
- groupCollapsed: assign({}, props, {
346
- value: prevGroupCollapsed
347
- }),
348
- groupEnd: assign({}, props, {
349
- value: prevGroupEnd
350
- })
351
- });
352
- /* eslint-enable react-internal/no-production-logging */
127
+ function testStringCoercion(value) {
128
+ return "" + value;
353
129
  }
354
-
355
- if (disabledDepth < 0) {
356
- error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
357
- }
358
- }
359
- }
360
-
361
- var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;
362
- var prefix;
363
- function describeBuiltInComponentFrame(name, source, ownerFn) {
364
- {
365
- if (prefix === undefined) {
366
- // Extract the VM specific prefix used by each line.
130
+ function checkKeyStringCoercion(value) {
367
131
  try {
368
- throw Error();
369
- } catch (x) {
370
- var match = x.stack.trim().match(/\n( *(at )?)/);
371
- prefix = match && match[1] || '';
132
+ testStringCoercion(value);
133
+ var JSCompiler_inline_result = !1;
134
+ } catch (e) {
135
+ JSCompiler_inline_result = true;
372
136
  }
373
- } // We use the prefix to ensure our stacks line up with native stack frames.
374
-
375
-
376
- return '\n' + prefix + name;
377
- }
378
- }
379
- var reentry = false;
380
- var componentFrameCache;
381
-
382
- {
383
- var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
384
- componentFrameCache = new PossiblyWeakMap();
385
- }
386
-
387
- function describeNativeComponentFrame(fn, construct) {
388
- // If something asked for a stack inside a fake render, it should get ignored.
389
- if ( !fn || reentry) {
390
- return '';
391
- }
392
-
393
- {
394
- var frame = componentFrameCache.get(fn);
395
-
396
- if (frame !== undefined) {
397
- return frame;
398
- }
399
- }
400
-
401
- var control;
402
- reentry = true;
403
- var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
404
-
405
- Error.prepareStackTrace = undefined;
406
- var previousDispatcher;
407
-
408
- {
409
- previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function
410
- // for warnings.
411
-
412
- ReactCurrentDispatcher.current = null;
413
- disableLogs();
414
- }
415
-
416
- try {
417
- // This should throw.
418
- if (construct) {
419
- // Something should be setting the props in the constructor.
420
- var Fake = function () {
421
- throw Error();
422
- }; // $FlowFixMe
423
-
424
-
425
- Object.defineProperty(Fake.prototype, 'props', {
426
- set: function () {
427
- // We use a throwing setter instead of frozen or non-writable props
428
- // because that won't throw in a non-strict mode function.
429
- throw Error();
430
- }
431
- });
432
-
433
- if (typeof Reflect === 'object' && Reflect.construct) {
434
- // We construct a different control for this case to include any extra
435
- // frames added by the construct call.
436
- try {
437
- Reflect.construct(Fake, []);
438
- } catch (x) {
439
- control = x;
440
- }
441
-
442
- Reflect.construct(fn, [], Fake);
443
- } else {
444
- try {
445
- Fake.call();
446
- } catch (x) {
447
- control = x;
448
- }
449
-
450
- fn.call(Fake.prototype);
137
+ if (JSCompiler_inline_result) {
138
+ JSCompiler_inline_result = console;
139
+ var JSCompiler_temp_const = JSCompiler_inline_result.error;
140
+ var JSCompiler_inline_result$jscomp$0 =
141
+ ("function" === typeof Symbol &&
142
+ Symbol.toStringTag &&
143
+ value[Symbol.toStringTag]) ||
144
+ value.constructor.name ||
145
+ "Object";
146
+ JSCompiler_temp_const.call(
147
+ JSCompiler_inline_result,
148
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
149
+ JSCompiler_inline_result$jscomp$0
150
+ );
151
+ return testStringCoercion(value);
451
152
  }
452
- } else {
153
+ }
154
+ function getTaskName(type) {
155
+ if (type === REACT_FRAGMENT_TYPE) return "<>";
156
+ if (
157
+ "object" === typeof type &&
158
+ null !== type &&
159
+ type.$$typeof === REACT_LAZY_TYPE
160
+ )
161
+ return "<...>";
453
162
  try {
454
- throw Error();
163
+ var name = getComponentNameFromType(type);
164
+ return name ? "<" + name + ">" : "<...>";
455
165
  } catch (x) {
456
- control = x;
457
- }
458
-
459
- fn();
460
- }
461
- } catch (sample) {
462
- // This is inlined manually because closure doesn't do it for us.
463
- if (sample && control && typeof sample.stack === 'string') {
464
- // This extracts the first frame from the sample that isn't also in the control.
465
- // Skipping one frame that we assume is the frame that calls the two.
466
- var sampleLines = sample.stack.split('\n');
467
- var controlLines = control.stack.split('\n');
468
- var s = sampleLines.length - 1;
469
- var c = controlLines.length - 1;
470
-
471
- while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
472
- // We expect at least one stack frame to be shared.
473
- // Typically this will be the root most one. However, stack frames may be
474
- // cut off due to maximum stack limits. In this case, one maybe cut off
475
- // earlier than the other. We assume that the sample is longer or the same
476
- // and there for cut off earlier. So we should find the root most frame in
477
- // the sample somewhere in the control.
478
- c--;
479
- }
480
-
481
- for (; s >= 1 && c >= 0; s--, c--) {
482
- // Next we find the first one that isn't the same which should be the
483
- // frame that called our sample function and the control.
484
- if (sampleLines[s] !== controlLines[c]) {
485
- // In V8, the first line is describing the message but other VMs don't.
486
- // If we're about to return the first line, and the control is also on the same
487
- // line, that's a pretty good indicator that our sample threw at same line as
488
- // the control. I.e. before we entered the sample frame. So we ignore this result.
489
- // This can happen if you passed a class to function component, or non-function.
490
- if (s !== 1 || c !== 1) {
491
- do {
492
- s--;
493
- c--; // We may still have similar intermediate frames from the construct call.
494
- // The next one that isn't the same should be our match though.
495
-
496
- if (c < 0 || sampleLines[s] !== controlLines[c]) {
497
- // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
498
- var _frame = '\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled "<anonymous>"
499
- // but we have a user-provided "displayName"
500
- // splice it in to make the stack more readable.
501
-
502
-
503
- if (fn.displayName && _frame.includes('<anonymous>')) {
504
- _frame = _frame.replace('<anonymous>', fn.displayName);
505
- }
506
-
507
- {
508
- if (typeof fn === 'function') {
509
- componentFrameCache.set(fn, _frame);
510
- }
511
- } // Return the line we found.
512
-
513
-
514
- return _frame;
515
- }
516
- } while (s >= 1 && c >= 0);
517
- }
518
-
519
- break;
520
- }
166
+ return "<...>";
521
167
  }
522
168
  }
523
- } finally {
524
- reentry = false;
525
-
526
- {
527
- ReactCurrentDispatcher.current = previousDispatcher;
528
- reenableLogs();
169
+ function getOwner() {
170
+ var dispatcher = ReactSharedInternals.A;
171
+ return null === dispatcher ? null : dispatcher.getOwner();
529
172
  }
530
-
531
- Error.prepareStackTrace = previousPrepareStackTrace;
532
- } // Fallback to just using the name if we couldn't make it throw.
533
-
534
-
535
- var name = fn ? fn.displayName || fn.name : '';
536
- var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
537
-
538
- {
539
- if (typeof fn === 'function') {
540
- componentFrameCache.set(fn, syntheticFrame);
173
+ function UnknownOwner() {
174
+ return Error("react-stack-top-frame");
541
175
  }
542
- }
543
-
544
- return syntheticFrame;
545
- }
546
- function describeFunctionComponentFrame(fn, source, ownerFn) {
547
- {
548
- return describeNativeComponentFrame(fn, false);
549
- }
550
- }
551
-
552
- function shouldConstruct(Component) {
553
- var prototype = Component.prototype;
554
- return !!(prototype && prototype.isReactComponent);
555
- }
556
-
557
- function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
558
-
559
- if (type == null) {
560
- return '';
561
- }
562
-
563
- if (typeof type === 'function') {
564
- {
565
- return describeNativeComponentFrame(type, shouldConstruct(type));
566
- }
567
- }
568
-
569
- if (typeof type === 'string') {
570
- return describeBuiltInComponentFrame(type);
571
- }
572
-
573
- switch (type) {
574
- case REACT_SUSPENSE_TYPE:
575
- return describeBuiltInComponentFrame('Suspense');
576
-
577
- case REACT_SUSPENSE_LIST_TYPE:
578
- return describeBuiltInComponentFrame('SuspenseList');
579
- }
580
-
581
- if (typeof type === 'object') {
582
- switch (type.$$typeof) {
583
- case REACT_FORWARD_REF_TYPE:
584
- return describeFunctionComponentFrame(type.render);
585
-
586
- case REACT_MEMO_TYPE:
587
- // Memo may contain any component type so we recursively resolve it.
588
- return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
589
-
590
- case REACT_LAZY_TYPE:
591
- {
592
- var lazyComponent = type;
593
- var payload = lazyComponent._payload;
594
- var init = lazyComponent._init;
595
-
596
- try {
597
- // Lazy may contain any component type so we recursively resolve it.
598
- return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
599
- } catch (x) {}
600
- }
601
- }
602
- }
603
-
604
- return '';
605
- }
606
-
607
- var hasOwnProperty = Object.prototype.hasOwnProperty;
608
-
609
- var loggedTypeFailures = {};
610
- var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
611
-
612
- function setCurrentlyValidatingElement(element) {
613
- {
614
- if (element) {
615
- var owner = element._owner;
616
- var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
617
- ReactDebugCurrentFrame.setExtraStackFrame(stack);
618
- } else {
619
- ReactDebugCurrentFrame.setExtraStackFrame(null);
176
+ function hasValidKey(config) {
177
+ if (hasOwnProperty.call(config, "key")) {
178
+ var getter = Object.getOwnPropertyDescriptor(config, "key").get;
179
+ if (getter && getter.isReactWarning) return false;
180
+ }
181
+ return void 0 !== config.key;
620
182
  }
621
- }
622
- }
623
-
624
- function checkPropTypes(typeSpecs, values, location, componentName, element) {
625
- {
626
- // $FlowFixMe This is okay but Flow doesn't know it.
627
- var has = Function.call.bind(hasOwnProperty);
628
-
629
- for (var typeSpecName in typeSpecs) {
630
- if (has(typeSpecs, typeSpecName)) {
631
- var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
632
- // fail the render phase where it didn't fail before. So we log it.
633
- // After these have been cleaned up, we'll let them throw.
634
-
635
- try {
636
- // This is intentionally an invariant that gets caught. It's the same
637
- // behavior as without this statement except with a better message.
638
- if (typeof typeSpecs[typeSpecName] !== 'function') {
639
- // eslint-disable-next-line react-internal/prod-error-codes
640
- var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');
641
- err.name = 'Invariant Violation';
642
- throw err;
643
- }
644
-
645
- error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
646
- } catch (ex) {
647
- error$1 = ex;
648
- }
649
-
650
- if (error$1 && !(error$1 instanceof Error)) {
651
- setCurrentlyValidatingElement(element);
652
-
653
- error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);
654
-
655
- setCurrentlyValidatingElement(null);
656
- }
657
-
658
- if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
659
- // Only monitor this failure once because there tends to be a lot of the
660
- // same error.
661
- loggedTypeFailures[error$1.message] = true;
662
- setCurrentlyValidatingElement(element);
663
-
664
- error('Failed %s type: %s', location, error$1.message);
665
-
666
- setCurrentlyValidatingElement(null);
667
- }
183
+ function defineKeyPropWarningGetter(props, displayName) {
184
+ function warnAboutAccessingKey() {
185
+ specialPropKeyWarningShown ||
186
+ ((specialPropKeyWarningShown = true),
187
+ console.error(
188
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
189
+ displayName
190
+ ));
668
191
  }
192
+ warnAboutAccessingKey.isReactWarning = true;
193
+ Object.defineProperty(props, "key", {
194
+ get: warnAboutAccessingKey,
195
+ configurable: true
196
+ });
669
197
  }
670
- }
671
- }
672
-
673
- var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare
674
-
675
- function isArray(a) {
676
- return isArrayImpl(a);
677
- }
678
-
679
- /*
680
- * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol
681
- * and Temporal.* types. See https://github.com/facebook/react/pull/22064.
682
- *
683
- * The functions in this module will throw an easier-to-understand,
684
- * easier-to-debug exception with a clear errors message message explaining the
685
- * problem. (Instead of a confusing exception thrown inside the implementation
686
- * of the `value` object).
687
- */
688
- // $FlowFixMe only called in DEV, so void return is not possible.
689
- function typeName(value) {
690
- {
691
- // toStringTag is needed for namespaced types like Temporal.Instant
692
- var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;
693
- var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';
694
- return type;
695
- }
696
- } // $FlowFixMe only called in DEV, so void return is not possible.
697
-
698
-
699
- function willCoercionThrow(value) {
700
- {
701
- try {
702
- testStringCoercion(value);
703
- return false;
704
- } catch (e) {
705
- return true;
198
+ function elementRefGetterWithDeprecationWarning() {
199
+ var componentName = getComponentNameFromType(this.type);
200
+ didWarnAboutElementRef[componentName] ||
201
+ ((didWarnAboutElementRef[componentName] = true),
202
+ console.error(
203
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
204
+ ));
205
+ componentName = this.props.ref;
206
+ return void 0 !== componentName ? componentName : null;
706
207
  }
707
- }
708
- }
709
-
710
- function testStringCoercion(value) {
711
- // If you ended up here by following an exception call stack, here's what's
712
- // happened: you supplied an object or symbol value to React (as a prop, key,
713
- // DOM attribute, CSS property, string ref, etc.) and when React tried to
714
- // coerce it to a string using `'' + value`, an exception was thrown.
715
- //
716
- // The most common types that will cause this exception are `Symbol` instances
717
- // and Temporal objects like `Temporal.Instant`. But any object that has a
718
- // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this
719
- // exception. (Library authors do this to prevent users from using built-in
720
- // numeric operators like `+` or comparison operators like `>=` because custom
721
- // methods are needed to perform accurate arithmetic or comparison.)
722
- //
723
- // To fix the problem, coerce this object or symbol value to a string before
724
- // passing it to React. The most reliable way is usually `String(value)`.
725
- //
726
- // To find which value is throwing, check the browser or debugger console.
727
- // Before this exception was thrown, there should be `console.error` output
728
- // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the
729
- // problem and how that type was used: key, atrribute, input value prop, etc.
730
- // In most cases, this console output also shows the component and its
731
- // ancestor components where the exception happened.
732
- //
733
- // eslint-disable-next-line react-internal/safe-string-coercion
734
- return '' + value;
735
- }
736
- function checkKeyStringCoercion(value) {
737
- {
738
- if (willCoercionThrow(value)) {
739
- error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));
740
-
741
- return testStringCoercion(value); // throw (to help callers find troubleshooting comments)
208
+ function ReactElement(
209
+ type,
210
+ key,
211
+ self,
212
+ source,
213
+ owner,
214
+ props,
215
+ debugStack,
216
+ debugTask
217
+ ) {
218
+ self = props.ref;
219
+ type = {
220
+ $$typeof: REACT_ELEMENT_TYPE,
221
+ type: type,
222
+ key: key,
223
+ props: props,
224
+ _owner: owner
225
+ };
226
+ null !== (void 0 !== self ? self : null)
227
+ ? Object.defineProperty(type, "ref", {
228
+ enumerable: false,
229
+ get: elementRefGetterWithDeprecationWarning
230
+ })
231
+ : Object.defineProperty(type, "ref", { enumerable: false, value: null });
232
+ type._store = {};
233
+ Object.defineProperty(type._store, "validated", {
234
+ configurable: false,
235
+ enumerable: false,
236
+ writable: true,
237
+ value: 0
238
+ });
239
+ Object.defineProperty(type, "_debugInfo", {
240
+ configurable: false,
241
+ enumerable: false,
242
+ writable: true,
243
+ value: null
244
+ });
245
+ Object.defineProperty(type, "_debugStack", {
246
+ configurable: false,
247
+ enumerable: false,
248
+ writable: true,
249
+ value: debugStack
250
+ });
251
+ Object.defineProperty(type, "_debugTask", {
252
+ configurable: false,
253
+ enumerable: false,
254
+ writable: true,
255
+ value: debugTask
256
+ });
257
+ Object.freeze && (Object.freeze(type.props), Object.freeze(type));
258
+ return type;
742
259
  }
743
- }
744
- }
745
-
746
- var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;
747
- var RESERVED_PROPS = {
748
- key: true,
749
- ref: true,
750
- __self: true,
751
- __source: true
752
- };
753
- var specialPropKeyWarningShown;
754
- var specialPropRefWarningShown;
755
-
756
- function hasValidRef(config) {
757
- {
758
- if (hasOwnProperty.call(config, 'ref')) {
759
- var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
760
-
761
- if (getter && getter.isReactWarning) {
762
- return false;
260
+ function jsxDEVImpl(
261
+ type,
262
+ config,
263
+ maybeKey,
264
+ isStaticChildren,
265
+ source,
266
+ self,
267
+ debugStack,
268
+ debugTask
269
+ ) {
270
+ var children = config.children;
271
+ if (void 0 !== children)
272
+ if (isStaticChildren)
273
+ if (isArrayImpl(children)) {
274
+ for (
275
+ isStaticChildren = 0;
276
+ isStaticChildren < children.length;
277
+ isStaticChildren++
278
+ )
279
+ validateChildKeys(children[isStaticChildren]);
280
+ Object.freeze && Object.freeze(children);
281
+ } else
282
+ console.error(
283
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
284
+ );
285
+ else validateChildKeys(children);
286
+ if (hasOwnProperty.call(config, "key")) {
287
+ children = getComponentNameFromType(type);
288
+ var keys = Object.keys(config).filter(function (k) {
289
+ return "key" !== k;
290
+ });
291
+ isStaticChildren =
292
+ 0 < keys.length
293
+ ? "{key: someKey, " + keys.join(": ..., ") + ": ...}"
294
+ : "{key: someKey}";
295
+ didWarnAboutKeySpread[children + isStaticChildren] ||
296
+ ((keys =
297
+ 0 < keys.length ? "{" + keys.join(": ..., ") + ": ...}" : "{}"),
298
+ console.error(
299
+ 'A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',
300
+ isStaticChildren,
301
+ children,
302
+ keys,
303
+ children
304
+ ),
305
+ (didWarnAboutKeySpread[children + isStaticChildren] = true));
763
306
  }
307
+ children = null;
308
+ void 0 !== maybeKey &&
309
+ (checkKeyStringCoercion(maybeKey), (children = "" + maybeKey));
310
+ hasValidKey(config) &&
311
+ (checkKeyStringCoercion(config.key), (children = "" + config.key));
312
+ if ("key" in config) {
313
+ maybeKey = {};
314
+ for (var propName in config)
315
+ "key" !== propName && (maybeKey[propName] = config[propName]);
316
+ } else maybeKey = config;
317
+ children &&
318
+ defineKeyPropWarningGetter(
319
+ maybeKey,
320
+ "function" === typeof type
321
+ ? type.displayName || type.name || "Unknown"
322
+ : type
323
+ );
324
+ return ReactElement(
325
+ type,
326
+ children,
327
+ self,
328
+ source,
329
+ getOwner(),
330
+ maybeKey,
331
+ debugStack,
332
+ debugTask
333
+ );
764
334
  }
765
- }
766
-
767
- return config.ref !== undefined;
768
- }
769
-
770
- function hasValidKey(config) {
771
- {
772
- if (hasOwnProperty.call(config, 'key')) {
773
- var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
774
-
775
- if (getter && getter.isReactWarning) {
776
- return false;
777
- }
335
+ function validateChildKeys(node) {
336
+ "object" === typeof node &&
337
+ null !== node &&
338
+ node.$$typeof === REACT_ELEMENT_TYPE &&
339
+ node._store &&
340
+ (node._store.validated = 1);
778
341
  }
779
- }
780
-
781
- return config.key !== undefined;
782
- }
783
-
784
- function warnIfStringRefCannotBeAutoConverted(config, self) {
785
- {
786
- if (typeof config.ref === 'string' && ReactCurrentOwner.current && self) ;
787
- }
788
- }
789
-
790
- function defineKeyPropWarningGetter(props, displayName) {
791
- {
792
- var warnAboutAccessingKey = function () {
793
- if (!specialPropKeyWarningShown) {
794
- specialPropKeyWarningShown = true;
795
-
796
- error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
342
+ var React$1 = React,
343
+ REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"),
344
+ REACT_PORTAL_TYPE = Symbol.for("react.portal"),
345
+ REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"),
346
+ REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"),
347
+ REACT_PROFILER_TYPE = Symbol.for("react.profiler");
348
+ var REACT_CONSUMER_TYPE = Symbol.for("react.consumer"),
349
+ REACT_CONTEXT_TYPE = Symbol.for("react.context"),
350
+ REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"),
351
+ REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"),
352
+ REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"),
353
+ REACT_MEMO_TYPE = Symbol.for("react.memo"),
354
+ REACT_LAZY_TYPE = Symbol.for("react.lazy"),
355
+ REACT_ACTIVITY_TYPE = Symbol.for("react.activity"),
356
+ REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"),
357
+ ReactSharedInternals =
358
+ React$1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,
359
+ hasOwnProperty = Object.prototype.hasOwnProperty,
360
+ isArrayImpl = Array.isArray,
361
+ createTask = console.createTask
362
+ ? console.createTask
363
+ : function () {
364
+ return null;
365
+ };
366
+ React$1 = {
367
+ "react-stack-bottom-frame": function (callStackForError) {
368
+ return callStackForError();
797
369
  }
798
370
  };
799
-
800
- warnAboutAccessingKey.isReactWarning = true;
801
- Object.defineProperty(props, 'key', {
802
- get: warnAboutAccessingKey,
803
- configurable: true
804
- });
805
- }
806
- }
807
-
808
- function defineRefPropWarningGetter(props, displayName) {
809
- {
810
- var warnAboutAccessingRef = function () {
811
- if (!specialPropRefWarningShown) {
812
- specialPropRefWarningShown = true;
813
-
814
- error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);
815
- }
371
+ var specialPropKeyWarningShown;
372
+ var didWarnAboutElementRef = {};
373
+ var unknownOwnerDebugStack = React$1["react-stack-bottom-frame"].bind(
374
+ React$1,
375
+ UnknownOwner
376
+ )();
377
+ var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));
378
+ var didWarnAboutKeySpread = {};
379
+ reactJsxRuntime_development.Fragment = REACT_FRAGMENT_TYPE;
380
+ reactJsxRuntime_development.jsx = function (type, config, maybeKey, source, self) {
381
+ var trackActualOwner =
382
+ 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
383
+ return jsxDEVImpl(
384
+ type,
385
+ config,
386
+ maybeKey,
387
+ false,
388
+ source,
389
+ self,
390
+ trackActualOwner
391
+ ? Error("react-stack-top-frame")
392
+ : unknownOwnerDebugStack,
393
+ trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
394
+ );
395
+ };
396
+ reactJsxRuntime_development.jsxs = function (type, config, maybeKey, source, self) {
397
+ var trackActualOwner =
398
+ 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;
399
+ return jsxDEVImpl(
400
+ type,
401
+ config,
402
+ maybeKey,
403
+ true,
404
+ source,
405
+ self,
406
+ trackActualOwner
407
+ ? Error("react-stack-top-frame")
408
+ : unknownOwnerDebugStack,
409
+ trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask
410
+ );
816
411
  };
817
-
818
- warnAboutAccessingRef.isReactWarning = true;
819
- Object.defineProperty(props, 'ref', {
820
- get: warnAboutAccessingRef,
821
- configurable: true
822
- });
823
- }
824
- }
825
- /**
826
- * Factory method to create a new React element. This no longer adheres to
827
- * the class pattern, so do not use new to call it. Also, instanceof check
828
- * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
829
- * if something is a React Element.
830
- *
831
- * @param {*} type
832
- * @param {*} props
833
- * @param {*} key
834
- * @param {string|object} ref
835
- * @param {*} owner
836
- * @param {*} self A *temporary* helper to detect places where `this` is
837
- * different from the `owner` when React.createElement is called, so that we
838
- * can warn. We want to get rid of owner and replace string `ref`s with arrow
839
- * functions, and as long as `this` and owner are the same, there will be no
840
- * change in behavior.
841
- * @param {*} source An annotation object (added by a transpiler or otherwise)
842
- * indicating filename, line number, and/or other information.
843
- * @internal
844
- */
845
-
846
-
847
- var ReactElement = function (type, key, ref, self, source, owner, props) {
848
- var element = {
849
- // This tag allows us to uniquely identify this as a React Element
850
- $$typeof: REACT_ELEMENT_TYPE,
851
- // Built-in properties that belong on the element
852
- type: type,
853
- key: key,
854
- ref: ref,
855
- props: props,
856
- // Record the component responsible for creating this element.
857
- _owner: owner
858
- };
859
-
860
- {
861
- // The validation flag is currently mutative. We put it on
862
- // an external backing store so that we can freeze the whole object.
863
- // This can be replaced with a WeakMap once they are implemented in
864
- // commonly used development environments.
865
- element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
866
- // the validation flag non-enumerable (where possible, which should
867
- // include every environment we run tests in), so the test framework
868
- // ignores it.
869
-
870
- Object.defineProperty(element._store, 'validated', {
871
- configurable: false,
872
- enumerable: false,
873
- writable: true,
874
- value: false
875
- }); // self and source are DEV only properties.
876
-
877
- Object.defineProperty(element, '_self', {
878
- configurable: false,
879
- enumerable: false,
880
- writable: false,
881
- value: self
882
- }); // Two elements created in two different places should be considered
883
- // equal for testing purposes and therefore we hide it from enumeration.
884
-
885
- Object.defineProperty(element, '_source', {
886
- configurable: false,
887
- enumerable: false,
888
- writable: false,
889
- value: source
890
- });
891
-
892
- if (Object.freeze) {
893
- Object.freeze(element.props);
894
- Object.freeze(element);
895
- }
896
- }
897
-
898
- return element;
899
- };
900
- /**
901
- * https://github.com/reactjs/rfcs/pull/107
902
- * @param {*} type
903
- * @param {object} props
904
- * @param {string} key
905
- */
906
-
907
- function jsxDEV(type, config, maybeKey, source, self) {
908
- {
909
- var propName; // Reserved names are extracted
910
-
911
- var props = {};
912
- var key = null;
913
- var ref = null; // Currently, key can be spread in as a prop. This causes a potential
914
- // issue if key is also explicitly declared (ie. <div {...props} key="Hi" />
915
- // or <div key="Hi" {...props} /> ). We want to deprecate key spread,
916
- // but as an intermediary step, we will use jsxDEV for everything except
917
- // <div {...props} key="Hi" />, because we aren't currently able to tell if
918
- // key is explicitly declared to be undefined or not.
919
-
920
- if (maybeKey !== undefined) {
921
- {
922
- checkKeyStringCoercion(maybeKey);
923
- }
924
-
925
- key = '' + maybeKey;
926
- }
927
-
928
- if (hasValidKey(config)) {
929
- {
930
- checkKeyStringCoercion(config.key);
931
- }
932
-
933
- key = '' + config.key;
934
- }
935
-
936
- if (hasValidRef(config)) {
937
- ref = config.ref;
938
- warnIfStringRefCannotBeAutoConverted(config, self);
939
- } // Remaining properties are added to a new props object
940
-
941
-
942
- for (propName in config) {
943
- if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
944
- props[propName] = config[propName];
945
- }
946
- } // Resolve default props
947
-
948
-
949
- if (type && type.defaultProps) {
950
- var defaultProps = type.defaultProps;
951
-
952
- for (propName in defaultProps) {
953
- if (props[propName] === undefined) {
954
- props[propName] = defaultProps[propName];
955
- }
956
- }
957
- }
958
-
959
- if (key || ref) {
960
- var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
961
-
962
- if (key) {
963
- defineKeyPropWarningGetter(props, displayName);
964
- }
965
-
966
- if (ref) {
967
- defineRefPropWarningGetter(props, displayName);
968
- }
969
- }
970
-
971
- return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
972
- }
973
- }
974
-
975
- var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
976
- var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
977
-
978
- function setCurrentlyValidatingElement$1(element) {
979
- {
980
- if (element) {
981
- var owner = element._owner;
982
- var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
983
- ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
984
- } else {
985
- ReactDebugCurrentFrame$1.setExtraStackFrame(null);
986
- }
987
- }
988
- }
989
-
990
- var propTypesMisspellWarningShown;
991
-
992
- {
993
- propTypesMisspellWarningShown = false;
994
- }
995
- /**
996
- * Verifies the object is a ReactElement.
997
- * See https://reactjs.org/docs/react-api.html#isvalidelement
998
- * @param {?object} object
999
- * @return {boolean} True if `object` is a ReactElement.
1000
- * @final
1001
- */
1002
-
1003
-
1004
- function isValidElement(object) {
1005
- {
1006
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
1007
- }
1008
- }
1009
-
1010
- function getDeclarationErrorAddendum() {
1011
- {
1012
- if (ReactCurrentOwner$1.current) {
1013
- var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);
1014
-
1015
- if (name) {
1016
- return '\n\nCheck the render method of `' + name + '`.';
1017
- }
1018
- }
1019
-
1020
- return '';
1021
- }
1022
- }
1023
-
1024
- function getSourceInfoErrorAddendum(source) {
1025
- {
1026
-
1027
- return '';
1028
- }
1029
- }
1030
- /**
1031
- * Warn if there's no key explicitly set on dynamic arrays of children or
1032
- * object keys are not valid. This allows us to keep track of children between
1033
- * updates.
1034
- */
1035
-
1036
-
1037
- var ownerHasKeyUseWarning = {};
1038
-
1039
- function getCurrentComponentErrorInfo(parentType) {
1040
- {
1041
- var info = getDeclarationErrorAddendum();
1042
-
1043
- if (!info) {
1044
- var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
1045
-
1046
- if (parentName) {
1047
- info = "\n\nCheck the top-level render call using <" + parentName + ">.";
1048
- }
1049
- }
1050
-
1051
- return info;
1052
- }
1053
- }
1054
- /**
1055
- * Warn if the element doesn't have an explicit key assigned to it.
1056
- * This element is in an array. The array could grow and shrink or be
1057
- * reordered. All children that haven't already been validated are required to
1058
- * have a "key" property assigned to it. Error statuses are cached so a warning
1059
- * will only be shown once.
1060
- *
1061
- * @internal
1062
- * @param {ReactElement} element Element that requires a key.
1063
- * @param {*} parentType element's parent's type.
1064
- */
1065
-
1066
-
1067
- function validateExplicitKey(element, parentType) {
1068
- {
1069
- if (!element._store || element._store.validated || element.key != null) {
1070
- return;
1071
- }
1072
-
1073
- element._store.validated = true;
1074
- var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
1075
-
1076
- if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
1077
- return;
1078
- }
1079
-
1080
- ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
1081
- // property, it may be the creator of the child that's responsible for
1082
- // assigning it a key.
1083
-
1084
- var childOwner = '';
1085
-
1086
- if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {
1087
- // Give the component that originally created this child.
1088
- childOwner = " It was passed a child from " + getComponentNameFromType(element._owner.type) + ".";
1089
- }
1090
-
1091
- setCurrentlyValidatingElement$1(element);
1092
-
1093
- error('Each child in a list should have a unique "key" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);
1094
-
1095
- setCurrentlyValidatingElement$1(null);
1096
- }
1097
- }
1098
- /**
1099
- * Ensure that every element either is passed in a static location, in an
1100
- * array with an explicit keys property defined, or in an object literal
1101
- * with valid key property.
1102
- *
1103
- * @internal
1104
- * @param {ReactNode} node Statically passed child of any type.
1105
- * @param {*} parentType node's parent's type.
1106
- */
1107
-
1108
-
1109
- function validateChildKeys(node, parentType) {
1110
- {
1111
- if (typeof node !== 'object') {
1112
- return;
1113
- }
1114
-
1115
- if (isArray(node)) {
1116
- for (var i = 0; i < node.length; i++) {
1117
- var child = node[i];
1118
-
1119
- if (isValidElement(child)) {
1120
- validateExplicitKey(child, parentType);
1121
- }
1122
- }
1123
- } else if (isValidElement(node)) {
1124
- // This element was passed in a valid location.
1125
- if (node._store) {
1126
- node._store.validated = true;
1127
- }
1128
- } else if (node) {
1129
- var iteratorFn = getIteratorFn(node);
1130
-
1131
- if (typeof iteratorFn === 'function') {
1132
- // Entry iterators used to provide implicit keys,
1133
- // but now we print a separate warning for them later.
1134
- if (iteratorFn !== node.entries) {
1135
- var iterator = iteratorFn.call(node);
1136
- var step;
1137
-
1138
- while (!(step = iterator.next()).done) {
1139
- if (isValidElement(step.value)) {
1140
- validateExplicitKey(step.value, parentType);
1141
- }
1142
- }
1143
- }
1144
- }
1145
- }
1146
- }
1147
- }
1148
- /**
1149
- * Given an element, validate that its props follow the propTypes definition,
1150
- * provided by the type.
1151
- *
1152
- * @param {ReactElement} element
1153
- */
1154
-
1155
-
1156
- function validatePropTypes(element) {
1157
- {
1158
- var type = element.type;
1159
-
1160
- if (type === null || type === undefined || typeof type === 'string') {
1161
- return;
1162
- }
1163
-
1164
- var propTypes;
1165
-
1166
- if (typeof type === 'function') {
1167
- propTypes = type.propTypes;
1168
- } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
1169
- // Inner props are checked in the reconciler.
1170
- type.$$typeof === REACT_MEMO_TYPE)) {
1171
- propTypes = type.propTypes;
1172
- } else {
1173
- return;
1174
- }
1175
-
1176
- if (propTypes) {
1177
- // Intentionally inside to avoid triggering lazy initializers:
1178
- var name = getComponentNameFromType(type);
1179
- checkPropTypes(propTypes, element.props, 'prop', name, element);
1180
- } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
1181
- propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
1182
-
1183
- var _name = getComponentNameFromType(type);
1184
-
1185
- error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
1186
- }
1187
-
1188
- if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
1189
- error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
1190
- }
1191
- }
1192
- }
1193
- /**
1194
- * Given a fragment, validate that it can only be provided with fragment props
1195
- * @param {ReactElement} fragment
1196
- */
1197
-
1198
-
1199
- function validateFragmentProps(fragment) {
1200
- {
1201
- var keys = Object.keys(fragment.props);
1202
-
1203
- for (var i = 0; i < keys.length; i++) {
1204
- var key = keys[i];
1205
-
1206
- if (key !== 'children' && key !== 'key') {
1207
- setCurrentlyValidatingElement$1(fragment);
1208
-
1209
- error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
1210
-
1211
- setCurrentlyValidatingElement$1(null);
1212
- break;
1213
- }
1214
- }
1215
-
1216
- if (fragment.ref !== null) {
1217
- setCurrentlyValidatingElement$1(fragment);
1218
-
1219
- error('Invalid attribute `ref` supplied to `React.Fragment`.');
1220
-
1221
- setCurrentlyValidatingElement$1(null);
1222
- }
1223
- }
1224
- }
1225
-
1226
- var didWarnAboutKeySpread = {};
1227
- function jsxWithValidation(type, props, key, isStaticChildren, source, self) {
1228
- {
1229
- var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
1230
- // succeed and there will likely be errors in render.
1231
-
1232
- if (!validType) {
1233
- var info = '';
1234
-
1235
- if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
1236
- info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports.";
1237
- }
1238
-
1239
- var sourceInfo = getSourceInfoErrorAddendum();
1240
-
1241
- if (sourceInfo) {
1242
- info += sourceInfo;
1243
- } else {
1244
- info += getDeclarationErrorAddendum();
1245
- }
1246
-
1247
- var typeString;
1248
-
1249
- if (type === null) {
1250
- typeString = 'null';
1251
- } else if (isArray(type)) {
1252
- typeString = 'array';
1253
- } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
1254
- typeString = "<" + (getComponentNameFromType(type.type) || 'Unknown') + " />";
1255
- info = ' Did you accidentally export a JSX literal instead of a component?';
1256
- } else {
1257
- typeString = typeof type;
1258
- }
1259
-
1260
- error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);
1261
- }
1262
-
1263
- var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.
1264
- // TODO: Drop this when these are no longer allowed as the type argument.
1265
-
1266
- if (element == null) {
1267
- return element;
1268
- } // Skip key warning if the type isn't valid since our key validation logic
1269
- // doesn't expect a non-string/function type and can throw confusing errors.
1270
- // We don't want exception behavior to differ between dev and prod.
1271
- // (Rendering will throw with a helpful message and as soon as the type is
1272
- // fixed, the key warnings will appear.)
1273
-
1274
-
1275
- if (validType) {
1276
- var children = props.children;
1277
-
1278
- if (children !== undefined) {
1279
- if (isStaticChildren) {
1280
- if (isArray(children)) {
1281
- for (var i = 0; i < children.length; i++) {
1282
- validateChildKeys(children[i], type);
1283
- }
1284
-
1285
- if (Object.freeze) {
1286
- Object.freeze(children);
1287
- }
1288
- } else {
1289
- error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');
1290
- }
1291
- } else {
1292
- validateChildKeys(children, type);
1293
- }
1294
- }
1295
- }
1296
-
1297
- {
1298
- if (hasOwnProperty.call(props, 'key')) {
1299
- var componentName = getComponentNameFromType(type);
1300
- var keys = Object.keys(props).filter(function (k) {
1301
- return k !== 'key';
1302
- });
1303
- var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';
1304
-
1305
- if (!didWarnAboutKeySpread[componentName + beforeExample]) {
1306
- var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';
1307
-
1308
- error('A props object containing a "key" prop is being spread into JSX:\n' + ' let props = %s;\n' + ' <%s {...props} />\n' + 'React keys must be passed directly to JSX without using spread:\n' + ' let props = %s;\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);
1309
-
1310
- didWarnAboutKeySpread[componentName + beforeExample] = true;
1311
- }
1312
- }
1313
- }
1314
-
1315
- if (type === REACT_FRAGMENT_TYPE) {
1316
- validateFragmentProps(element);
1317
- } else {
1318
- validatePropTypes(element);
1319
- }
1320
-
1321
- return element;
1322
- }
1323
- } // These two functions exist to still get child warnings in dev
1324
- // even with the prod transform. This means that jsxDEV is purely
1325
- // opt-in behavior for better messages but that we won't stop
1326
- // giving you warnings if you use production apis.
1327
-
1328
- function jsxWithValidationStatic(type, props, key) {
1329
- {
1330
- return jsxWithValidation(type, props, key, true);
1331
- }
1332
- }
1333
- function jsxWithValidationDynamic(type, props, key) {
1334
- {
1335
- return jsxWithValidation(type, props, key, false);
1336
- }
1337
- }
1338
-
1339
- var jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.
1340
- // for now we can ship identical prod functions
1341
-
1342
- var jsxs = jsxWithValidationStatic ;
1343
-
1344
- reactJsxRuntime_development.Fragment = REACT_FRAGMENT_TYPE;
1345
- reactJsxRuntime_development.jsx = jsx;
1346
- reactJsxRuntime_development.jsxs = jsxs;
1347
412
  })();
1348
- }
1349
413
  return reactJsxRuntime_development;
1350
414
  }
1351
415
 
@@ -1356,7 +420,7 @@ function requireJsxRuntime () {
1356
420
  hasRequiredJsxRuntime = 1;
1357
421
 
1358
422
  if (process.env.NODE_ENV === 'production') {
1359
- jsxRuntime.exports = requireReactJsxRuntime_production_min();
423
+ jsxRuntime.exports = requireReactJsxRuntime_production();
1360
424
  } else {
1361
425
  jsxRuntime.exports = requireReactJsxRuntime_development();
1362
426
  }
@@ -1365,20 +429,6 @@ function requireJsxRuntime () {
1365
429
 
1366
430
  var jsxRuntimeExports = requireJsxRuntime();
1367
431
 
1368
- /**
1369
- * Returns a space-separated string of class names based on input arguments.
1370
- *
1371
- * Accepts any mix of strings, numbers, arrays, or objects. Falsy values are ignored.
1372
- * Array and object values are recursively flattened, and object keys are included
1373
- * if their value is truthy. Duplicate class names are removed.
1374
- *
1375
- * @param {...(string | number | undefined | null | false | Record<string, unknown> | unknown[])} args - Class values to join.
1376
- * @returns {string} A space-separated string of unique class names.
1377
- *
1378
- * @example
1379
- * classNames('foo', ['bar', { baz: true }], { qux: false, quux: true });
1380
- * // => 'foo bar baz quux'
1381
- */
1382
432
  function classNames(...args) {
1383
433
  const classSet = new Set();
1384
434
  function process(item) {
@@ -1412,10 +462,6 @@ function classNames(...args) {
1412
462
  return Array.from(classSet).join(' ');
1413
463
  }
1414
464
 
1415
- /**
1416
- * Valid Bulma color classes.
1417
- * @example 'primary', 'link', 'info'
1418
- */
1419
465
  const validColors = [
1420
466
  'primary',
1421
467
  'link',
@@ -1435,10 +481,6 @@ const validColors = [
1435
481
  'light',
1436
482
  'dark',
1437
483
  ];
1438
- /**
1439
- * Valid Bulma color shade suffixes.
1440
- * @example '00', '05', 'invert'
1441
- */
1442
484
  const validColorShades = [
1443
485
  '00',
1444
486
  '05',
@@ -1462,40 +504,20 @@ const validColorShades = [
1462
504
  '95',
1463
505
  'invert',
1464
506
  ];
1465
- /**
1466
- * Valid Bulma size classes for margins and paddings.
1467
- * @example '0', '1', 'auto'
1468
- */
1469
507
  const validSizes$1 = ['0', '1', '2', '3', '4', '5', '6', 'auto'];
1470
- /**
1471
- * Valid Bulma text size classes.
1472
- * @example '1', '2', '3'
1473
- */
1474
508
  const validTextSizes = ['1', '2', '3', '4', '5', '6', '7'];
1475
- /**
1476
- * Valid Bulma text alignment classes.
1477
- * @example 'centered', 'left', 'right'
1478
- */
1479
509
  const validAlignments$1 = [
1480
510
  'centered',
1481
511
  'justified',
1482
512
  'left',
1483
513
  'right',
1484
514
  ];
1485
- /**
1486
- * Valid Bulma text transformation classes.
1487
- * @example 'capitalized', 'uppercase', 'italic'
1488
- */
1489
515
  const validTextTransforms = [
1490
516
  'capitalized',
1491
517
  'lowercase',
1492
518
  'uppercase',
1493
519
  'italic',
1494
520
  ];
1495
- /**
1496
- * Valid Bulma text weight classes.
1497
- * @example 'light', 'normal', 'bold'
1498
- */
1499
521
  const validTextWeights = [
1500
522
  'light',
1501
523
  'normal',
@@ -1503,10 +525,6 @@ const validTextWeights = [
1503
525
  'semibold',
1504
526
  'bold',
1505
527
  ];
1506
- /**
1507
- * Valid Bulma font family classes.
1508
- * @example 'sans-serif', 'monospace', 'code'
1509
- */
1510
528
  const validFontFamilies = [
1511
529
  'sans-serif',
1512
530
  'monospace',
@@ -1514,10 +532,6 @@ const validFontFamilies = [
1514
532
  'secondary',
1515
533
  'code',
1516
534
  ];
1517
- /**
1518
- * Valid Bulma display classes.
1519
- * @example 'block', 'flex', 'inline'
1520
- */
1521
535
  const validDisplays = [
1522
536
  'block',
1523
537
  'flex',
@@ -1525,30 +539,14 @@ const validDisplays = [
1525
539
  'inline-block',
1526
540
  'inline-flex',
1527
541
  ];
1528
- /**
1529
- * Valid Bulma visibility classes.
1530
- * @example 'hidden', 'sr-only'
1531
- */
1532
542
  const validVisibilities = ['hidden', 'sr-only'];
1533
- /**
1534
- * Valid Bulma flex direction classes.
1535
- * @example 'row', 'column', 'row-reverse'
1536
- */
1537
543
  const validFlexDirections = [
1538
544
  'row',
1539
545
  'row-reverse',
1540
546
  'column',
1541
547
  'column-reverse',
1542
548
  ];
1543
- /**
1544
- * Valid Bulma flex wrap classes.
1545
- * @example 'nowrap', 'wrap', 'wrap-reverse'
1546
- */
1547
549
  const validFlexWraps = ['nowrap', 'wrap', 'wrap-reverse'];
1548
- /**
1549
- * Valid Bulma justify-content classes.
1550
- * @example 'flex-start', 'center', 'space-between'
1551
- */
1552
550
  const validJustifyContents = [
1553
551
  'flex-start',
1554
552
  'flex-end',
@@ -1561,10 +559,6 @@ const validJustifyContents = [
1561
559
  'left',
1562
560
  'right',
1563
561
  ];
1564
- /**
1565
- * Valid Bulma align-content classes.
1566
- * @example 'flex-start', 'center', 'stretch'
1567
- */
1568
562
  const validAlignContents = [
1569
563
  'flex-start',
1570
564
  'flex-end',
@@ -1574,10 +568,6 @@ const validAlignContents = [
1574
568
  'space-evenly',
1575
569
  'stretch',
1576
570
  ];
1577
- /**
1578
- * Valid Bulma align-items classes.
1579
- * @example 'stretch', 'flex-start', 'center'
1580
- */
1581
571
  const validAlignItems = [
1582
572
  'stretch',
1583
573
  'flex-start',
@@ -1587,10 +577,6 @@ const validAlignItems = [
1587
577
  'start',
1588
578
  'end',
1589
579
  ];
1590
- /**
1591
- * Valid Bulma align-self classes.
1592
- * @example 'auto', 'flex-start', 'center'
1593
- */
1594
580
  const validAlignSelfs = [
1595
581
  'auto',
1596
582
  'flex-start',
@@ -1599,15 +585,7 @@ const validAlignSelfs = [
1599
585
  'baseline',
1600
586
  'stretch',
1601
587
  ];
1602
- /**
1603
- * Valid Bulma flex grow and shrink values.
1604
- * @example '0', '1'
1605
- */
1606
588
  const validFlexGrowShrink = ['0', '1'];
1607
- /**
1608
- * Valid Bulma viewport classes for responsive design.
1609
- * @example 'mobile', 'tablet', 'desktop'
1610
- */
1611
589
  const validViewports = [
1612
590
  'mobile',
1613
591
  'tablet',
@@ -1615,26 +593,10 @@ const validViewports = [
1615
593
  'widescreen',
1616
594
  'fullhd',
1617
595
  ];
1618
- /**
1619
- * A hook that generates Bulma helper classes from props and separates unhandled props.
1620
- *
1621
- * @function useBulmaClasses
1622
- * @param props - Combination of BulmaClassesProps and additional props.
1623
- * @returns An object containing the Bulma helper classes and unhandled props.
1624
- * @example
1625
- * const { bulmaHelperClasses, rest } = useBulmaClasses({
1626
- * color: 'primary',
1627
- * textSize: '3',
1628
- * className: 'custom-class'
1629
- * });
1630
- * // bulmaHelperClasses: 'has-text-primary is-size-3'
1631
- * // rest: { className: 'custom-class' }
1632
- */
1633
596
  const useBulmaClasses = (props) => {
1634
597
  const { color, backgroundColor, colorShade, m, mt, mr, mb, ml, mx, my, p, pt, pr, pb, pl, px, py, textSize, textAlign, textTransform, textWeight, fontFamily, display, visibility, flexDirection, flexWrap, justifyContent, alignContent, alignItems, alignSelf, flexGrow, flexShrink, float, overflow, overlay, interaction, radius, shadow, responsive, viewport, ...rest } = props;
1635
598
  const bulmaHelperClasses = React.useMemo(() => {
1636
599
  const classes = [];
1637
- // Helper to add class with optional viewport
1638
600
  const addClass = (prefix, value, validValues) => {
1639
601
  if (value && (!validValues.length || validValues.includes(value))) {
1640
602
  const className = viewport && validViewports.includes(viewport)
@@ -1643,7 +605,6 @@ const useBulmaClasses = (props) => {
1643
605
  classes.push(className);
1644
606
  }
1645
607
  };
1646
- // Color handling
1647
608
  const addColorClass = (prefix, value, shade) => {
1648
609
  if (!value || ![...validColors, 'inherit', 'current'].includes(value))
1649
610
  return;
@@ -1657,10 +618,8 @@ const useBulmaClasses = (props) => {
1657
618
  addClass(prefix, value, [...validColors, 'inherit', 'current']);
1658
619
  }
1659
620
  };
1660
- // Color
1661
621
  addColorClass('has-text', color, colorShade);
1662
622
  addColorClass('has-background', backgroundColor, colorShade);
1663
- // Spacing
1664
623
  addClass('m', m, validSizes$1);
1665
624
  addClass('mt', mt, validSizes$1);
1666
625
  addClass('mr', mr, validSizes$1);
@@ -1675,13 +634,11 @@ const useBulmaClasses = (props) => {
1675
634
  addClass('pl', pl, validSizes$1);
1676
635
  addClass('px', px, validSizes$1);
1677
636
  addClass('py', py, validSizes$1);
1678
- // Typography
1679
637
  addClass('is-size', textSize, validTextSizes);
1680
638
  addClass('has-text', textAlign, validAlignments$1);
1681
639
  addClass('is', textTransform, validTextTransforms);
1682
640
  addClass('has-text-weight', textWeight, validTextWeights);
1683
641
  addClass('is-family', fontFamily, validFontFamilies);
1684
- // Visibility
1685
642
  addClass('is', display, validDisplays);
1686
643
  if (visibility) {
1687
644
  if (visibility === 'hidden' &&
@@ -1693,7 +650,6 @@ const useBulmaClasses = (props) => {
1693
650
  classes.push(`is-${visibility}`);
1694
651
  }
1695
652
  }
1696
- // Flexbox
1697
653
  if (display === 'flex' || display === 'inline-flex') {
1698
654
  addClass('is-flex-direction', flexDirection, validFlexDirections);
1699
655
  addClass('is-flex-wrap', flexWrap, validFlexWraps);
@@ -1704,7 +660,6 @@ const useBulmaClasses = (props) => {
1704
660
  addClass('is-flex-grow', flexGrow, validFlexGrowShrink);
1705
661
  addClass('is-flex-shrink', flexShrink, validFlexGrowShrink);
1706
662
  }
1707
- // Other Helpers
1708
663
  if (float) {
1709
664
  addClass('is-pulled', float, ['left', 'right']);
1710
665
  }
@@ -1772,12 +727,8 @@ const useBulmaClasses = (props) => {
1772
727
  return { bulmaHelperClasses, rest };
1773
728
  };
1774
729
 
1775
- /**
1776
- * Builds Bulma column and offset class names for the Column component.
1777
- */
1778
730
  function getColumnClassNames(props) {
1779
731
  const classList = [];
1780
- // Sizes
1781
732
  const sizeProps = [
1782
733
  { prop: 'size', prefix: 'is', suffix: '' },
1783
734
  { prop: 'sizeMobile', prefix: 'is', suffix: 'mobile' },
@@ -1795,7 +746,6 @@ function getColumnClassNames(props) {
1795
746
  classList.push(className);
1796
747
  }
1797
748
  }
1798
- // Offsets
1799
749
  const offsetProps = [
1800
750
  { prop: 'offset', prefix: 'is-offset', suffix: '' },
1801
751
  { prop: 'offsetMobile', prefix: 'is-offset', suffix: 'mobile' },
@@ -1813,7 +763,6 @@ function getColumnClassNames(props) {
1813
763
  classList.push(className);
1814
764
  }
1815
765
  }
1816
- // isNarrow (responsive)
1817
766
  if (props.isNarrow)
1818
767
  classList.push('is-narrow');
1819
768
  if (props.isNarrowMobile)
@@ -1830,14 +779,6 @@ function getColumnClassNames(props) {
1830
779
  classList.push('is-narrow-fullhd');
1831
780
  return classList;
1832
781
  }
1833
- /**
1834
- * Bulma Column component for responsive grid layouts.
1835
- *
1836
- * @function
1837
- * @param {ColumnProps} props - Props for the Column component.
1838
- * @returns {JSX.Element} The rendered column.
1839
- * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}
1840
- */
1841
782
  const Column = ({ className, textColor, bgColor, size, sizeMobile, sizeTablet, sizeDesktop, sizeWidescreen, sizeFullhd, offset, offsetMobile, offsetTablet, offsetDesktop, offsetWidescreen, offsetFullhd, isNarrow, isNarrowMobile, isNarrowTablet, isNarrowTouch, isNarrowDesktop, isNarrowWidescreen, isNarrowFullhd, children, ...props }) => {
1842
783
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1843
784
  color: textColor,
@@ -1868,9 +809,6 @@ const Column = ({ className, textColor, bgColor, size, sizeMobile, sizeTablet, s
1868
809
  return (jsxRuntimeExports.jsx("div", { className: columnClasses, ...rest, children: children }));
1869
810
  };
1870
811
 
1871
- /**
1872
- * Builds Bulma gap classes for the Columns component.
1873
- */
1874
812
  function getGapClasses(props) {
1875
813
  const gapClassMap = [
1876
814
  { prop: 'gapSize', prefix: 'is' },
@@ -1891,14 +829,6 @@ function getGapClasses(props) {
1891
829
  return [];
1892
830
  });
1893
831
  }
1894
- /**
1895
- * Bulma Columns container for flexible, responsive layouts.
1896
- *
1897
- * @function
1898
- * @param {ColumnsProps} props - Props for the Columns component.
1899
- * @returns {JSX.Element} The rendered columns container.
1900
- * @see {@link https://bulma.io/documentation/columns/ | Bulma Columns documentation}
1901
- */
1902
832
  const Columns = ({ className, textColor, bgColor, isCentered, isGapless, isMultiline, isVCentered, isMobile, isDesktop, gapSize, gapSizeMobile, gapSizeTablet, gapSizeDesktop, gapSizeWidescreen, gapSizeFullhd, children, ...props }) => {
1903
833
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1904
834
  color: textColor,
@@ -1931,16 +861,6 @@ const validBreadcrumbSeparators = [
1931
861
  'succeeds',
1932
862
  ];
1933
863
  const validBreadcrumbSizes = ['small', 'medium', 'large'];
1934
- /**
1935
- * Breadcrumb component for rendering a styled Bulma breadcrumb navigation.
1936
- *
1937
- * Supports alignment, separator styles, and sizes.
1938
- *
1939
- * @function
1940
- * @param {BreadcrumbProps} props - Props for the Breadcrumb component.
1941
- * @returns {JSX.Element} The rendered breadcrumb element.
1942
- * @see {@link https://bulma.io/documentation/components/breadcrumb/ | Bulma Breadcrumb documentation}
1943
- */
1944
864
  const Breadcrumb = ({ className, alignment, separator, size, children, ...props }) => {
1945
865
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1946
866
  const breadcrumbClasses = classNames('breadcrumb', className, bulmaHelperClasses, {
@@ -1951,21 +871,12 @@ const Breadcrumb = ({ className, alignment, separator, size, children, ...props
1951
871
  return (jsxRuntimeExports.jsx("nav", { className: breadcrumbClasses, "aria-label": "breadcrumbs", ...rest, children: jsxRuntimeExports.jsx("ul", { children: children }) }));
1952
872
  };
1953
873
 
1954
- // Always wrap each footer item in .card-footer-item
1955
874
  const renderFooter = (footer) => {
1956
875
  if (!footer)
1957
876
  return null;
1958
877
  const items = Array.isArray(footer) ? footer : [footer];
1959
878
  return items.map((item, idx) => (jsxRuntimeExports.jsx("span", { className: "card-footer-item", children: item }, idx)));
1960
- };
1961
- /**
1962
- * Card component for rendering a styled Bulma card.
1963
- *
1964
- * @function
1965
- * @param {CardProps} props - Props for the Card component.
1966
- * @returns {JSX.Element} The rendered card element.
1967
- * @see {@link https://bulma.io/documentation/components/card/ | Bulma Card documentation}
1968
- */
879
+ };
1969
880
  const Card = ({ className, children, textColor, bgColor, hasShadow = true, header, headerCentered, headerIcon, footer, image, imageAlt, ...props }) => {
1970
881
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1971
882
  color: textColor,
@@ -1975,7 +886,6 @@ const Card = ({ className, children, textColor, bgColor, hasShadow = true, heade
1975
886
  const cardClasses = classNames('card', className, bulmaHelperClasses, {
1976
887
  'is-shadowless': !hasShadow,
1977
888
  });
1978
- // Render header with optional icon and is-centered modifier
1979
889
  const renderHeader = (header, headerIcon, headerCentered) => {
1980
890
  if (!header && !headerIcon)
1981
891
  return null;
@@ -1987,34 +897,17 @@ const Card = ({ className, children, textColor, bgColor, hasShadow = true, heade
1987
897
  children !== null &&
1988
898
  children !== '' && jsxRuntimeExports.jsx("div", { className: "card-content", children: children }), footer && (jsxRuntimeExports.jsx("footer", { className: "card-footer", children: renderFooter(footer) }))] }));
1989
899
  };
1990
- // Only for test coverage
1991
900
  const __test_exports__ = { renderFooter };
1992
901
 
1993
- /**
1994
- * Checks if code is running in a browser environment.
1995
- * @param win - Window object.
1996
- * @param doc - Document object.
1997
- * @returns {boolean} True if in browser, false otherwise.
1998
- */
1999
902
  const isBrowser = (win, doc) => typeof win !== 'undefined' && typeof doc !== 'undefined';
2000
- /**
2001
- * Bulma Dropdown component.
2002
- *
2003
- * @function
2004
- * @param {DropdownProps} props - Props for the Dropdown component.
2005
- * @returns {JSX.Element} The rendered dropdown.
2006
- * @see {@link https://bulma.io/documentation/components/dropdown/ | Bulma Dropdown documentation}
2007
- */
2008
903
  const DropdownComponent = ({ label, children, className, menuClassName, active: activeProp, up, right, hoverable, disabled, onActiveChange, closeOnClick = true, id, ...props }) => {
2009
904
  const [active, setActive] = React.useState(!!activeProp);
2010
905
  const dropdownRef = React.useRef(null);
2011
906
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2012
- // Controlled mode support
2013
907
  React.useEffect(() => {
2014
908
  if (typeof activeProp === 'boolean')
2015
909
  setActive(activeProp);
2016
910
  }, [activeProp]);
2017
- // SSR-safe outside click
2018
911
  React.useEffect(() => {
2019
912
  if (!active)
2020
913
  return;
@@ -2052,83 +945,37 @@ const DropdownComponent = ({ label, children, className, menuClassName, active:
2052
945
  }, className);
2053
946
  return (jsxRuntimeExports.jsxs("div", { className: dropdownClasses, ref: dropdownRef, id: id, "data-testid": "dropdown-root", ...rest, children: [jsxRuntimeExports.jsx("div", { className: "dropdown-trigger", children: jsxRuntimeExports.jsxs("button", { className: "button", "aria-haspopup": "true", "aria-controls": id ? `${id}-menu` : undefined, "aria-expanded": active, onClick: handleToggle, disabled: disabled, type: "button", children: [jsxRuntimeExports.jsx("span", { children: label }), jsxRuntimeExports.jsx("span", { className: "icon is-small", "aria-hidden": "true", children: jsxRuntimeExports.jsx("i", { className: "fas fa-angle-down" }) })] }) }), jsxRuntimeExports.jsx("div", { className: classNames('dropdown-menu', menuClassName), id: id ? `${id}-menu` : undefined, role: "menu", "data-testid": "dropdown-menu", children: jsxRuntimeExports.jsx("div", { className: "dropdown-content", onClick: handleMenuClick, tabIndex: -1, children: children }) })] }));
2054
947
  };
2055
- /**
2056
- * Bulma Dropdown item.
2057
- *
2058
- * @function
2059
- * @param {DropdownItemProps} props - Props for the DropdownItem component.
2060
- * @returns {JSX.Element} The rendered dropdown item.
2061
- */
2062
948
  const DropdownItem = ({ children, active, className, as: Component = 'a', ...props }) => {
2063
949
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2064
950
  return (jsxRuntimeExports.jsx(Component, { className: classNames('dropdown-item', bulmaHelperClasses, { 'is-active': active }, className), tabIndex: 0, role: "menuitem", "data-testid": "dropdown-item", ...rest, children: children }));
2065
951
  };
2066
- /**
2067
- * Bulma Dropdown divider.
2068
- *
2069
- * @returns {JSX.Element} The divider element.
2070
- */
2071
952
  const DropdownDivider = () => (jsxRuntimeExports.jsx("hr", { className: "dropdown-divider" }));
2072
- // Assign static subcomponents
2073
953
  const Dropdown = Object.assign(DropdownComponent, {
2074
954
  Item: DropdownItem,
2075
955
  Divider: DropdownDivider,
2076
956
  });
2077
957
 
2078
- // Context to track MenuList nesting level
2079
958
  const MenuListLevelContext = React.createContext(0);
2080
- /**
2081
- * Bulma Menu component.
2082
- *
2083
- * @function
2084
- * @param {MenuProps} props - Props for the Menu component.
2085
- * @returns {JSX.Element} The rendered menu.
2086
- * @see {@link https://bulma.io/documentation/components/menu/ | Bulma Menu documentation}
2087
- */
2088
959
  const MenuComponent = ({ className, children, ...props }) => {
2089
960
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2090
961
  return (jsxRuntimeExports.jsx("aside", { className: classNames('menu', className, bulmaHelperClasses), ...rest, children: children }));
2091
962
  };
2092
- /**
2093
- * Bulma Menu label component.
2094
- *
2095
- * @function
2096
- * @param {MenuLabelProps} props - Props for the MenuLabel component.
2097
- * @returns {JSX.Element} The rendered menu label.
2098
- */
2099
963
  const MenuLabel = ({ className, children, ...props }) => {
2100
964
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2101
965
  return (jsxRuntimeExports.jsx("p", { className: classNames('menu-label', className, bulmaHelperClasses), ...rest, children: children }));
2102
966
  };
2103
- /**
2104
- * MenuList applies `menu-list` class only at the top level (not for nested lists).
2105
- *
2106
- * @function
2107
- * @param {MenuListProps} props - Props for the MenuList component.
2108
- * @returns {JSX.Element} The rendered menu list.
2109
- */
2110
967
  const MenuList = ({ className, children, ...props }) => {
2111
968
  const level = React.useContext(MenuListLevelContext);
2112
969
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2113
970
  const ulClass = classNames(className, bulmaHelperClasses, {
2114
971
  'menu-list': level === 0,
2115
972
  });
2116
- // Increment level for nested MenuLists
2117
973
  return (jsxRuntimeExports.jsx(MenuListLevelContext.Provider, { value: level + 1, children: jsxRuntimeExports.jsx("ul", { className: ulClass, ...rest, children: children }) }));
2118
974
  };
2119
- /**
2120
- * MenuItem supports `as` prop for custom link components, e.g., react-router-dom Link.
2121
- *
2122
- * @function
2123
- * @param {MenuItemProps} props - Props for the MenuItem component.
2124
- * @returns {JSX.Element} The rendered menu item.
2125
- */
2126
975
  const MenuItem = ({ className, children, active, href, as: Component = 'a', 'data-testid': testId, ...rest }) => {
2127
976
  const { bulmaHelperClasses, rest: bulmaRest } = useBulmaClasses(rest);
2128
977
  const itemClass = classNames({ 'is-active': active }, bulmaHelperClasses);
2129
- // Standard <li> props
2130
978
  const { style, id, title, role, tabIndex, ...linkProps } = bulmaRest;
2131
- // Split children into label and nested MenuList(s)
2132
979
  const labelChildren = [];
2133
980
  const nestedMenuLists = [];
2134
981
  React.Children.forEach(children, child => {
@@ -2139,7 +986,6 @@ const MenuItem = ({ className, children, active, href, as: Component = 'a', 'dat
2139
986
  labelChildren.push(child);
2140
987
  }
2141
988
  });
2142
- // href/to should go to the link component
2143
989
  if (Component === 'a' && href) {
2144
990
  linkProps.href = href;
2145
991
  }
@@ -2148,23 +994,12 @@ const MenuItem = ({ className, children, active, href, as: Component = 'a', 'dat
2148
994
  }
2149
995
  return (jsxRuntimeExports.jsxs("li", { className: className, "data-testid": testId, style: style, id: id, title: title, role: role, tabIndex: tabIndex, children: [jsxRuntimeExports.jsx(Component, { className: itemClass, ...linkProps, children: labelChildren }), nestedMenuLists] }));
2150
996
  };
2151
- // Attach static subcomponents
2152
997
  const Menu = Object.assign(MenuComponent, {
2153
998
  Label: MenuLabel,
2154
999
  List: MenuList,
2155
1000
  Item: MenuItem,
2156
1001
  });
2157
1002
 
2158
- /**
2159
- * Bulma-styled Message component.
2160
- *
2161
- * Supports Bulma helper classes, color, and an optional close button.
2162
- *
2163
- * @function
2164
- * @param {MessageProps} props - Props for the Message component.
2165
- * @returns {JSX.Element} The rendered message.
2166
- * @see {@link https://bulma.io/documentation/components/message/ | Bulma Message documentation}
2167
- */
2168
1003
  const Message = ({ className, title, textColor, color, bgColor, onClose, children, ...props }) => {
2169
1004
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2170
1005
  color: textColor,
@@ -2175,21 +1010,12 @@ const Message = ({ className, title, textColor, color, bgColor, onClose, childre
2175
1010
  return (jsxRuntimeExports.jsxs("article", { className: messageClasses, ...rest, "data-testid": "message", children: [(title || onClose) && (jsxRuntimeExports.jsxs("div", { className: "message-header", children: [title && jsxRuntimeExports.jsx("span", { children: title }), onClose && (jsxRuntimeExports.jsx("button", { className: "delete", "aria-label": "delete", onClick: onClose, type: "button", "data-testid": "message-close" }))] })), children && (jsxRuntimeExports.jsx("div", { className: "message-body", "data-testid": "message-body", children: children }))] }));
2176
1011
  };
2177
1012
 
2178
- /**
2179
- * Bulma Modal component, supporting both modal-card and modal-content variants.
2180
- *
2181
- * @function
2182
- * @param {ModalProps} props - Props for the Modal component.
2183
- * @returns {JSX.Element} The rendered modal.
2184
- * @see {@link https://bulma.io/documentation/components/modal/ | Bulma Modal documentation}
2185
- */
2186
1013
  const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCardTitle, modalCardFoot, type, children, ...props }) => {
2187
1014
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2188
1015
  color: textColor,
2189
1016
  backgroundColor: bgColor,
2190
1017
  ...props,
2191
1018
  });
2192
- // EXPLICIT type wins; fallback to auto detection if not provided
2193
1019
  let isModalCard;
2194
1020
  if (type === 'card')
2195
1021
  isModalCard = true;
@@ -2201,14 +1027,6 @@ const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCa
2201
1027
  return (jsxRuntimeExports.jsxs("div", { className: modalClasses, ...rest, "data-testid": "modal", children: [jsxRuntimeExports.jsx("div", { className: "modal-background", onClick: onClose, "data-testid": "modal-background" }), isModalCard ? (jsxRuntimeExports.jsxs("div", { className: "modal-card", children: [modalCardTitle && (jsxRuntimeExports.jsxs("header", { className: "modal-card-head", children: [jsxRuntimeExports.jsx("p", { className: "modal-card-title", children: modalCardTitle }), onClose && (jsxRuntimeExports.jsx("button", { className: "delete", "aria-label": "close", onClick: onClose, type: "button", "data-testid": "modal-close" }))] })), jsxRuntimeExports.jsx("section", { className: "modal-card-body", "data-testid": "modal-body", children: children }), modalCardFoot && (jsxRuntimeExports.jsx("footer", { className: "modal-card-foot", children: modalCardFoot }))] })) : (jsxRuntimeExports.jsx("div", { className: "modal-content", "data-testid": "modal-content", children: children })), (!isModalCard || (!modalCardTitle && onClose)) && onClose && (jsxRuntimeExports.jsx("button", { className: "modal-close is-large", "aria-label": "close", onClick: onClose, type: "button", "data-testid": "modal-close-float" }))] }));
2202
1028
  };
2203
1029
 
2204
- /**
2205
- * Bulma Navbar component, supports subcomponents for structured navigation.
2206
- *
2207
- * @function
2208
- * @param {NavbarProps} props - Props for the Navbar component.
2209
- * @returns {JSX.Element} The rendered navbar.
2210
- * @see {@link https://bulma.io/documentation/components/navbar/ | Bulma Navbar documentation}
2211
- */
2212
1030
  const Navbar = ({ className, textColor, bgColor, color, transparent, fixed, children, ...props }) => {
2213
1031
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2214
1032
  color: textColor,
@@ -2222,13 +1040,6 @@ const Navbar = ({ className, textColor, bgColor, color, transparent, fixed, chil
2222
1040
  });
2223
1041
  return (jsxRuntimeExports.jsx("nav", { className: navbarClasses, role: "navigation", "aria-label": "main navigation", ...rest, children: children }));
2224
1042
  };
2225
- /**
2226
- * Bulma Navbar brand area (usually left side).
2227
- *
2228
- * @function
2229
- * @param {NavbarBrandProps} props - Props for the NavbarBrand component.
2230
- * @returns {JSX.Element} The rendered brand area.
2231
- */
2232
1043
  const NavbarBrand = ({ className, children, textColor, ...props }) => {
2233
1044
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2234
1045
  color: textColor,
@@ -2236,13 +1047,6 @@ const NavbarBrand = ({ className, children, textColor, ...props }) => {
2236
1047
  });
2237
1048
  return (jsxRuntimeExports.jsx("div", { className: classNames('navbar-brand', bulmaHelperClasses, className), ...rest, children: children }));
2238
1049
  };
2239
- /**
2240
- * Bulma Navbar item (link, button, etc).
2241
- *
2242
- * @function
2243
- * @param {NavbarItemProps} props - Props for the NavbarItem component.
2244
- * @returns {JSX.Element} The rendered item.
2245
- */
2246
1050
  const NavbarItem = ({ className, as: Component = 'a', active, textColor, bgColor, children, ...props }) => {
2247
1051
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2248
1052
  color: textColor,
@@ -2253,13 +1057,6 @@ const NavbarItem = ({ className, as: Component = 'a', active, textColor, bgColor
2253
1057
  'is-active': active,
2254
1058
  }), ...rest, children: children }));
2255
1059
  };
2256
- /**
2257
- * Bulma Navbar burger (responsive menu toggle).
2258
- *
2259
- * @function
2260
- * @param {NavbarBurgerProps} props - Props for the NavbarBurger component.
2261
- * @returns {JSX.Element} The rendered burger.
2262
- */
2263
1060
  const NavbarBurger = ({ className, active, children, ...props }) => {
2264
1061
  var _a;
2265
1062
  const { bulmaHelperClasses, rest } = useBulmaClasses({
@@ -2269,13 +1066,6 @@ const NavbarBurger = ({ className, active, children, ...props }) => {
2269
1066
  'is-active': active,
2270
1067
  }), "aria-label": props['aria-label'] || 'menu', "aria-expanded": (_a = props['aria-expanded']) !== null && _a !== void 0 ? _a : !!active, ...rest, children: [jsxRuntimeExports.jsx("span", { "aria-hidden": "true" }), jsxRuntimeExports.jsx("span", { "aria-hidden": "true" }), jsxRuntimeExports.jsx("span", { "aria-hidden": "true" }), children] }));
2271
1068
  };
2272
- /**
2273
- * Bulma Navbar menu area (collapsible content).
2274
- *
2275
- * @function
2276
- * @param {NavbarMenuProps} props - Props for the NavbarMenu component.
2277
- * @returns {JSX.Element} The rendered menu.
2278
- */
2279
1069
  const NavbarMenu = ({ className, active, children, ...props }) => {
2280
1070
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2281
1071
  ...props,
@@ -2284,64 +1074,29 @@ const NavbarMenu = ({ className, active, children, ...props }) => {
2284
1074
  'is-active': active,
2285
1075
  }), ...rest, children: children }));
2286
1076
  };
2287
- /**
2288
- * Bulma Navbar start area (left-aligned).
2289
- *
2290
- * @function
2291
- * @param {NavbarStartEndProps} props - Props for the NavbarStart component.
2292
- * @returns {JSX.Element} The rendered start area.
2293
- */
2294
1077
  const NavbarStart = ({ className, children, ...props }) => {
2295
1078
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2296
1079
  ...props,
2297
1080
  });
2298
1081
  return (jsxRuntimeExports.jsx("div", { className: classNames('navbar-start', bulmaHelperClasses, className), ...rest, children: children }));
2299
1082
  };
2300
- /**
2301
- * Bulma Navbar end area (right-aligned).
2302
- *
2303
- * @function
2304
- * @param {NavbarStartEndProps} props - Props for the NavbarEnd component.
2305
- * @returns {JSX.Element} The rendered end area.
2306
- */
2307
1083
  const NavbarEnd = ({ className, children, ...props }) => {
2308
1084
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2309
1085
  ...props,
2310
1086
  });
2311
1087
  return (jsxRuntimeExports.jsx("div", { className: classNames('navbar-end', bulmaHelperClasses, className), ...rest, children: children }));
2312
1088
  };
2313
- /**
2314
- * Bulma Navbar dropdown (for nested dropdown menus).
2315
- *
2316
- * @function
2317
- * @param {NavbarDropdownProps} props - Props for the NavbarDropdown component.
2318
- * @returns {JSX.Element} The rendered dropdown.
2319
- */
2320
1089
  const NavbarDropdown = ({ className, right, up, hoverable, active, children, ...props }) => (jsxRuntimeExports.jsx("div", { className: classNames('navbar-item', 'has-dropdown', {
2321
1090
  'is-right': right,
2322
1091
  'is-up': up,
2323
1092
  'is-hoverable': hoverable,
2324
1093
  'is-active': active,
2325
1094
  }, className), ...props, children: children }));
2326
- /**
2327
- * Bulma Navbar dropdown menu container.
2328
- *
2329
- * @function
2330
- * @param {NavbarDropdownMenuProps} props - Props for the NavbarDropdownMenu component.
2331
- * @returns {JSX.Element} The rendered dropdown menu.
2332
- */
2333
1095
  const NavbarDropdownMenu = ({ className, right, up, children, ...props }) => (jsxRuntimeExports.jsx("div", { className: classNames('navbar-dropdown', {
2334
1096
  'is-right': right,
2335
1097
  'is-up': up,
2336
1098
  }, className), ...props, children: children }));
2337
- /**
2338
- * Bulma Navbar divider.
2339
- *
2340
- * @param props - Standard hr props.
2341
- * @returns {JSX.Element} The rendered divider.
2342
- */
2343
1099
  const NavbarDivider = props => jsxRuntimeExports.jsx("hr", { className: "navbar-divider", ...props });
2344
- // Attach subcomponents
2345
1100
  Navbar.Brand = NavbarBrand;
2346
1101
  Navbar.Item = NavbarItem;
2347
1102
  Navbar.Burger = NavbarBurger;
@@ -2352,9 +1107,6 @@ Navbar.Dropdown = NavbarDropdown;
2352
1107
  Navbar.DropdownMenu = NavbarDropdownMenu;
2353
1108
  Navbar.Divider = NavbarDivider;
2354
1109
 
2355
- /**
2356
- * Bulma Pagination previous button.
2357
- */
2358
1110
  const PaginationPrevious = ({ className, disabled, children, ...props }) => (jsxRuntimeExports.jsx("a", { className: classNames('pagination-previous', className, {
2359
1111
  'is-disabled': disabled,
2360
1112
  }), "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, ...props, onClick: disabled
@@ -2363,9 +1115,6 @@ const PaginationPrevious = ({ className, disabled, children, ...props }) => (jsx
2363
1115
  e.stopPropagation();
2364
1116
  }
2365
1117
  : props.onClick, children: children }));
2366
- /**
2367
- * Bulma Pagination next button.
2368
- */
2369
1118
  const PaginationNext = ({ className, disabled, children, ...props }) => (jsxRuntimeExports.jsx("a", { className: classNames('pagination-next', className, {
2370
1119
  'is-disabled': disabled,
2371
1120
  }), "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, ...props, onClick: disabled
@@ -2374,14 +1123,6 @@ const PaginationNext = ({ className, disabled, children, ...props }) => (jsxRunt
2374
1123
  e.stopPropagation();
2375
1124
  }
2376
1125
  : props.onClick, children: children }));
2377
- /**
2378
- * Bulma Pagination navigation component.
2379
- *
2380
- * @function
2381
- * @param {PaginationProps} props - Props for the Pagination component.
2382
- * @returns {JSX.Element} The rendered pagination.
2383
- * @see {@link https://bulma.io/documentation/components/pagination/ | Bulma Pagination documentation}
2384
- */
2385
1126
  const Pagination = ({ color, textColor, bgColor, size, align, rounded, className, children, ...props }) => {
2386
1127
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2387
1128
  color: textColor,
@@ -2396,9 +1137,6 @@ const Pagination = ({ color, textColor, bgColor, size, align, rounded, className
2396
1137
  });
2397
1138
  return (jsxRuntimeExports.jsx("nav", { className: paginationClasses, role: "navigation", "aria-label": "pagination", ...rest, children: children }));
2398
1139
  };
2399
- /**
2400
- * Bulma Pagination list container.
2401
- */
2402
1140
  const PaginationList = ({ className, textColor, bgColor, children, ...props }) => {
2403
1141
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2404
1142
  color: textColor,
@@ -2407,9 +1145,6 @@ const PaginationList = ({ className, textColor, bgColor, children, ...props }) =
2407
1145
  });
2408
1146
  return (jsxRuntimeExports.jsx("ul", { className: classNames('pagination-list', bulmaHelperClasses, className), ...rest, children: children }));
2409
1147
  };
2410
- /**
2411
- * Bulma Pagination link (page number).
2412
- */
2413
1148
  const PaginationLink = ({ className, textColor, bgColor, active, disabled, onClick, children, ...props }) => {
2414
1149
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2415
1150
  color: textColor,
@@ -2431,12 +1166,6 @@ const PaginationLink = ({ className, textColor, bgColor, active, disabled, onCli
2431
1166
  'is-disabled': disabled,
2432
1167
  }), "aria-current": active ? 'page' : undefined, "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, onClick: handleClick, ...rest, children: children }) }));
2433
1168
  };
2434
- /**
2435
- * Bulma Pagination ellipsis element.
2436
- *
2437
- * @param props - Standard li props.
2438
- * @returns {JSX.Element} The rendered ellipsis.
2439
- */
2440
1169
  const PaginationEllipsis = props => (jsxRuntimeExports.jsx("li", { children: jsxRuntimeExports.jsx("span", { className: "pagination-ellipsis", ...props, children: "\u2026" }) }));
2441
1170
  Pagination.Link = PaginationLink;
2442
1171
  Pagination.List = PaginationList;
@@ -2444,14 +1173,6 @@ Pagination.Ellipsis = PaginationEllipsis;
2444
1173
  Pagination.Previous = PaginationPrevious;
2445
1174
  Pagination.Next = PaginationNext;
2446
1175
 
2447
- /**
2448
- * Bulma Panel component, supports various panel subcomponents.
2449
- *
2450
- * @function
2451
- * @param {PanelProps} props - Props for the Panel component.
2452
- * @returns {JSX.Element} The rendered panel.
2453
- * @see {@link https://bulma.io/documentation/components/panel/ | Bulma Panel documentation}
2454
- */
2455
1176
  const Panel = ({ color, className, children, ...props }) => {
2456
1177
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2457
1178
  color,
@@ -2462,33 +1183,12 @@ const Panel = ({ color, className, children, ...props }) => {
2462
1183
  });
2463
1184
  return (jsxRuntimeExports.jsx("nav", { className: panelClasses, ...rest, children: children }));
2464
1185
  };
2465
- /**
2466
- * Bulma Panel heading.
2467
- */
2468
1186
  const PanelHeading = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("p", { className: classNames('panel-heading', className), ...props, children: children }));
2469
- /**
2470
- * Bulma Panel tabs.
2471
- */
2472
1187
  const PanelTabs = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("p", { className: classNames('panel-tabs', className), ...props, children: children }));
2473
- /**
2474
- * Bulma Panel block.
2475
- */
2476
1188
  const PanelBlock = ({ className, active, children, ...props }) => (jsxRuntimeExports.jsx("a", { className: classNames('panel-block', className, { 'is-active': active }), ...props, children: children }));
2477
- /**
2478
- * Bulma Panel icon.
2479
- */
2480
1189
  const PanelIcon = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("span", { className: classNames('panel-icon', className), ...props, children: children }));
2481
- /**
2482
- * Bulma Panel input block.
2483
- */
2484
1190
  const PanelInputBlock = ({ value, onChange, placeholder, iconClassName = 'fas fa-search', ...props }) => (jsxRuntimeExports.jsx("div", { className: "panel-block", ...props, children: jsxRuntimeExports.jsxs("p", { className: "control has-icons-left", children: [jsxRuntimeExports.jsx("input", { className: "input", type: "text", placeholder: placeholder, value: value, onChange: onChange }), jsxRuntimeExports.jsx("span", { className: "icon is-left", children: jsxRuntimeExports.jsx("i", { className: iconClassName, "aria-hidden": "true" }) })] }) }));
2485
- /**
2486
- * Bulma Panel checkbox block.
2487
- */
2488
1191
  const PanelCheckboxBlock = ({ checked, onChange, children, ...props }) => (jsxRuntimeExports.jsxs("label", { className: "panel-block", ...props, children: [jsxRuntimeExports.jsx("input", { type: "checkbox", checked: checked, onChange: onChange }), children] }));
2489
- /**
2490
- * Bulma Panel button block.
2491
- */
2492
1192
  const PanelButtonBlock = ({ children, className, ...props }) => (jsxRuntimeExports.jsx("div", { className: "panel-block", children: jsxRuntimeExports.jsx("button", { className: classNames('button is-link is-outlined is-fullwidth', className), ...props, children: children }) }));
2493
1193
  Panel.Heading = PanelHeading;
2494
1194
  Panel.Tabs = PanelTabs;
@@ -2498,14 +1198,6 @@ Panel.InputBlock = PanelInputBlock;
2498
1198
  Panel.CheckboxBlock = PanelCheckboxBlock;
2499
1199
  Panel.ButtonBlock = PanelButtonBlock;
2500
1200
 
2501
- /**
2502
- * Bulma Tabs component with subcomponents for tab lists and items.
2503
- *
2504
- * @function
2505
- * @param {TabsProps} props - Props for the Tabs component.
2506
- * @returns {JSX.Element} The rendered tabs.
2507
- * @see {@link https://bulma.io/documentation/components/tabs/ | Bulma Tabs documentation}
2508
- */
2509
1201
  const Tabs = ({ align, size, fullwidth, boxed, toggle, rounded, color, className, children, ...props }) => {
2510
1202
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2511
1203
  color,
@@ -2522,40 +1214,12 @@ const Tabs = ({ align, size, fullwidth, boxed, toggle, rounded, color, className
2522
1214
  }, className);
2523
1215
  return (jsxRuntimeExports.jsx("div", { className: tabsClass, ...rest, children: children }));
2524
1216
  };
2525
- /**
2526
- * Bulma Tab list container.
2527
- *
2528
- * @function
2529
- * @param {TabListProps} props - Props for the TabList component.
2530
- * @returns {JSX.Element} The rendered tab list.
2531
- */
2532
1217
  const TabList = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("ul", { className: classNames(className), ...props, children: children }));
2533
- /**
2534
- * Bulma Tab item.
2535
- *
2536
- * @function
2537
- * @param {TabItemProps} props - Props for the TabItem component.
2538
- * @returns {JSX.Element} The rendered tab item.
2539
- */
2540
1218
  const TabItem = ({ active, className, children, onClick, ...props }) => (jsxRuntimeExports.jsx("li", { className: classNames({ 'is-active': active }, className), onClick: onClick, ...props, children: children }));
2541
1219
  Tabs.List = TabList;
2542
1220
  Tabs.Item = TabItem;
2543
1221
 
2544
- /**
2545
- * Block component for rendering a styled Bulma block element.
2546
- *
2547
- * A block is a simple utility element that adds spacing (margin-bottom) between elements.
2548
- * Supports Bulma helper classes for additional styling like text color, background color, and layout.
2549
- *
2550
- * @function
2551
- * @param {BlockProps} props - Props for the Block component.
2552
- * @returns {JSX.Element} The rendered block element.
2553
- * @see {@link https://bulma.io/documentation/elements/block/ | Bulma Block documentation}
2554
- */
2555
1222
  const Block = ({ className, textColor, bgColor, children, ...props }) => {
2556
- /**
2557
- * Generates Bulma helper classes and separates out remaining props.
2558
- */
2559
1223
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2560
1224
  color: textColor,
2561
1225
  backgroundColor: bgColor,
@@ -2565,20 +1229,7 @@ const Block = ({ className, textColor, bgColor, children, ...props }) => {
2565
1229
  return (jsxRuntimeExports.jsx("div", { className: blockClasses, ...rest, children: children }));
2566
1230
  };
2567
1231
 
2568
- /**
2569
- * Box component for rendering a styled Bulma box element.
2570
- *
2571
- * Supports Bulma helper classes for styling and layout, with optional shadow control.
2572
- *
2573
- * @function
2574
- * @param {BoxProps} props - Props for the Box component.
2575
- * @returns {JSX.Element} The rendered box element.
2576
- * @see {@link https://bulma.io/documentation/elements/box/ | Bulma Box documentation}
2577
- */
2578
1232
  const Box = ({ className, textColor, bgColor, hasShadow = true, children, ...props }) => {
2579
- /**
2580
- * Generates Bulma helper classes and separates out remaining props.
2581
- */
2582
1233
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2583
1234
  color: textColor,
2584
1235
  backgroundColor: bgColor,
@@ -2590,20 +1241,7 @@ const Box = ({ className, textColor, bgColor, hasShadow = true, children, ...pro
2590
1241
  return (jsxRuntimeExports.jsx("div", { className: boxClasses, ...rest, children: children }));
2591
1242
  };
2592
1243
 
2593
- /**
2594
- * Button component for rendering a Bulma-styled button or anchor.
2595
- *
2596
- * Supports Bulma helper classes for colors, sizes, and various button states and modifiers.
2597
- *
2598
- * @function
2599
- * @param {ButtonProps} props - Props for the Button component.
2600
- * @returns {JSX.Element} The rendered button or anchor element.
2601
- * @see {@link https://bulma.io/documentation/elements/button/ | Bulma Button documentation}
2602
- */
2603
1244
  const Button = ({ color, size, isLight, isRounded, isLoading, isStatic, isFullWidth, isOutlined, isInverted, isFocused, isActive, isHovered, isDisabled, className, children, textColor, bgColor, as = 'button', href, onClick, target, rel, ...props }) => {
2604
- /**
2605
- * Generates Bulma helper classes and separates out remaining props.
2606
- */
2607
1245
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2608
1246
  color: textColor,
2609
1247
  backgroundColor: bgColor,
@@ -2625,7 +1263,6 @@ const Button = ({ color, size, isLight, isRounded, isLoading, isStatic, isFullWi
2625
1263
  'is-disabled': isDisabled,
2626
1264
  });
2627
1265
  if (as === 'a') {
2628
- // Remove button-specific props (like 'type') from rest
2629
1266
  const { ...anchorRest } = rest;
2630
1267
  return (jsxRuntimeExports.jsx("a", { className: buttonClasses, href: href, target: target, rel: rel, "aria-disabled": isDisabled, tabIndex: isDisabled ? -1 : undefined, onClick: isDisabled
2631
1268
  ? e => e.preventDefault()
@@ -2634,20 +1271,7 @@ const Button = ({ color, size, isLight, isRounded, isLoading, isStatic, isFullWi
2634
1271
  return (jsxRuntimeExports.jsx("button", { className: buttonClasses, disabled: isDisabled, onClick: onClick, ...rest, children: children }));
2635
1272
  };
2636
1273
 
2637
- /**
2638
- * Buttons component for rendering a group of Bulma-styled buttons.
2639
- *
2640
- * Supports Bulma helper classes for styling, color, and layout, including centering, right alignment, and grouping as addons.
2641
- *
2642
- * @function
2643
- * @param {ButtonsProps} props - Props for the Buttons component.
2644
- * @returns {JSX.Element} The rendered group of buttons.
2645
- * @see {@link https://bulma.io/documentation/elements/button/#group | Bulma Button Group documentation}
2646
- */
2647
1274
  const Buttons = ({ className, textColor, bgColor, isCentered, isRight, hasAddons, children, ...props }) => {
2648
- /**
2649
- * Generates Bulma helper classes and separates out remaining props.
2650
- */
2651
1275
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2652
1276
  color: textColor,
2653
1277
  backgroundColor: bgColor,
@@ -2661,23 +1285,8 @@ const Buttons = ({ className, textColor, bgColor, isCentered, isRight, hasAddons
2661
1285
  return (jsxRuntimeExports.jsx("div", { className: buttonsClasses, ...rest, children: children }));
2662
1286
  };
2663
1287
 
2664
- // Valid size modifiers for the content class
2665
1288
  const validSizes = ['small', 'medium', 'large'];
2666
- /**
2667
- * Content component for rendering a styled Bulma content block.
2668
- *
2669
- * Applies typographic styles to HTML content (e.g., paragraphs, headings, lists) with Bulma's content class.
2670
- * Supports size modifiers and Bulma helper classes for additional styling.
2671
- *
2672
- * @function
2673
- * @param {ContentProps} props - Props for the Content component.
2674
- * @returns {JSX.Element} The rendered content block.
2675
- * @see {@link https://bulma.io/documentation/elements/content/ | Bulma Content documentation}
2676
- */
2677
1289
  const Content = ({ className, textColor, bgColor, size, children, ...props }) => {
2678
- /**
2679
- * Generates Bulma helper classes and separates out remaining props.
2680
- */
2681
1290
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2682
1291
  color: textColor,
2683
1292
  backgroundColor: bgColor,
@@ -2689,20 +1298,7 @@ const Content = ({ className, textColor, bgColor, size, children, ...props }) =>
2689
1298
  return (jsxRuntimeExports.jsx("div", { className: contentClasses, ...rest, children: children }));
2690
1299
  };
2691
1300
 
2692
- /**
2693
- * Delete component for rendering a Bulma-styled delete/close button.
2694
- *
2695
- * Supports Bulma helper classes for styling, color, and size, and includes accessibility and disabled state.
2696
- *
2697
- * @function
2698
- * @param {DeleteProps} props - Props for the Delete component.
2699
- * @returns {JSX.Element} The rendered delete button.
2700
- * @see {@link https://bulma.io/documentation/elements/delete/ | Bulma Delete documentation}
2701
- */
2702
1301
  const Delete = ({ className, textColor, bgColor, onClick, size, ariaLabel = 'Close', disabled = false, ...props }) => {
2703
- /**
2704
- * Generates Bulma helper classes and separates out remaining props.
2705
- */
2706
1302
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2707
1303
  color: textColor,
2708
1304
  backgroundColor: bgColor,
@@ -2715,14 +1311,6 @@ const Delete = ({ className, textColor, bgColor, onClick, size, ariaLabel = 'Clo
2715
1311
  return (jsxRuntimeExports.jsx("button", { className: classes, onClick: onClick, "aria-label": ariaLabel, disabled: disabled, type: "button", ...rest }));
2716
1312
  };
2717
1313
 
2718
- /**
2719
- * Gets the correct classes for the icon element based on the library and features.
2720
- *
2721
- * @param {IconLibrary} library - The icon library.
2722
- * @param {string} name - The icon name.
2723
- * @param {string | string[]} [libraryFeatures] - Additional library-specific classes.
2724
- * @returns {string} The combined class string for the icon.
2725
- */
2726
1314
  function getIconClasses(library, name, libraryFeatures) {
2727
1315
  let baseClass = '';
2728
1316
  let iconClass = '';
@@ -2733,8 +1321,6 @@ function getIconClasses(library, name, libraryFeatures) {
2733
1321
  : [];
2734
1322
  switch (library) {
2735
1323
  case 'fa': {
2736
- // Font Awesome 5/6: use 'fas', 'far', 'fab', etc. as feature, icon is 'fa-<icon>'
2737
- // If features contains a FA style ('fas', 'far', 'fab'), use it, otherwise default to 'fas'
2738
1324
  const faStyle = features.find(f => ['fas', 'far', 'fab', 'fal', 'fad', 'fat'].includes(f)) || 'fas';
2739
1325
  baseClass = faStyle;
2740
1326
  iconClass = `fa-${name}`;
@@ -2742,35 +1328,18 @@ function getIconClasses(library, name, libraryFeatures) {
2742
1328
  return [baseClass, iconClass, ...features].join(' ');
2743
1329
  }
2744
1330
  case 'mdi':
2745
- // Material Design Icons: always 'mdi mdi-<icon>'
2746
1331
  baseClass = 'mdi';
2747
1332
  iconClass = `mdi-${name}`;
2748
1333
  return [baseClass, iconClass, ...features].join(' ');
2749
1334
  case 'ion':
2750
- // Ionicons (v4+): 'ion' and 'ion-<icon>'
2751
1335
  baseClass = 'ion';
2752
1336
  iconClass = `ion-${name}`;
2753
1337
  return [baseClass, iconClass, ...features].join(' ');
2754
1338
  default:
2755
- // fallback: just icon name and features
2756
1339
  return [name, ...features].join(' ');
2757
1340
  }
2758
1341
  }
2759
- /**
2760
- * Icon component for rendering a Bulma-styled icon container.
2761
- *
2762
- * Supports Bulma helper classes for styling, color, and size, and renders an <i></i> element for the icon itself.
2763
- *
2764
- * @function
2765
- * @param {IconProps} props - Props for the Icon component.
2766
- * @returns {JSX.Element} The rendered icon element.
2767
- * @see {@link https://bulma.io/documentation/elements/icon/ | Bulma Icon documentation}
2768
- */
2769
- const Icon = ({ className, textColor, bgColor, name, library = 'fa', // Font Awesome is default
2770
- libraryFeatures, size, ariaLabel = 'icon', style, ...props }) => {
2771
- /**
2772
- * Generates Bulma helper classes and separates out remaining props.
2773
- */
1342
+ const Icon = ({ className, textColor, bgColor, name, library = 'fa', libraryFeatures, size, ariaLabel = 'icon', style, ...props }) => {
2774
1343
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2775
1344
  color: textColor,
2776
1345
  backgroundColor: bgColor,
@@ -2783,20 +1352,7 @@ libraryFeatures, size, ariaLabel = 'icon', style, ...props }) => {
2783
1352
  return (jsxRuntimeExports.jsx("span", { className: iconContainerClasses, "aria-label": ariaLabel, style: style, ...rest, children: jsxRuntimeExports.jsx("i", { className: iClasses }) }));
2784
1353
  };
2785
1354
 
2786
- /**
2787
- * IconText component for rendering one or more icons with optional text, styled with Bulma.
2788
- *
2789
- * Supports Bulma helper classes for styling, color, and layout. Can render a single icon with text or multiple icon/text pairs.
2790
- *
2791
- * @function
2792
- * @param {IconTextProps} props - Props for the IconText component.
2793
- * @returns {JSX.Element} The rendered icon text element.
2794
- * @see {@link https://bulma.io/documentation/elements/icon/#icon-text | Bulma IconText documentation}
2795
- */
2796
1355
  const IconText = ({ className, textColor, bgColor, iconProps, children, items, ...props }) => {
2797
- /**
2798
- * Generates Bulma helper classes and separates out remaining props.
2799
- */
2800
1356
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2801
1357
  color: textColor,
2802
1358
  backgroundColor: bgColor,
@@ -2806,22 +1362,7 @@ const IconText = ({ className, textColor, bgColor, iconProps, children, items, .
2806
1362
  return (jsxRuntimeExports.jsx("span", { className: iconTextClasses, ...rest, children: items ? (items.map((item, index) => (jsxRuntimeExports.jsxs(React.Fragment, { children: [jsxRuntimeExports.jsx(Icon, { ...item.iconProps }), item.text && jsxRuntimeExports.jsx("span", { children: item.text })] }, index)))) : (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [iconProps && jsxRuntimeExports.jsx(Icon, { ...iconProps }), children && jsxRuntimeExports.jsx("span", { children: children })] })) }));
2807
1363
  };
2808
1364
 
2809
- /**
2810
- * Image component for rendering a styled Bulma image element.
2811
- *
2812
- * Supports fixed-size containers, aspect ratios, rounded images, retina images, and arbitrary children (e.g., iframe).
2813
- *
2814
- * The "as" prop allows rendering as "figure", "p", or "div" tags etc.
2815
- *
2816
- * @function
2817
- * @param {ImageProps} props - Props for the Image component.
2818
- * @returns {JSX.Element} The rendered image element.
2819
- * @see {@link https://bulma.io/documentation/elements/image/ | Bulma Image documentation}
2820
- */
2821
1365
  const Image = ({ as, className, textColor, bgColor, size, isRounded, isRetina, src, alt, children, ...props }) => {
2822
- /**
2823
- * Generates Bulma helper classes and separates out remaining props.
2824
- */
2825
1366
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2826
1367
  color: textColor,
2827
1368
  backgroundColor: bgColor,
@@ -2831,8 +1372,6 @@ const Image = ({ as, className, textColor, bgColor, size, isRounded, isRetina, s
2831
1372
  [`is-${size}`]: size,
2832
1373
  'has-ratio': size && typeof size === 'string' && size.includes('by'),
2833
1374
  });
2834
- // Default tag logic: if "as" is provided, use it.
2835
- // If not, use <figure> for aspect ratios or children, <div> otherwise.
2836
1375
  let Tag;
2837
1376
  if (as) {
2838
1377
  Tag = as;
@@ -2847,20 +1386,7 @@ const Image = ({ as, className, textColor, bgColor, size, isRounded, isRetina, s
2847
1386
  return (jsxRuntimeExports.jsx(Tag, { className: imageClasses, ...rest, children: content }));
2848
1387
  };
2849
1388
 
2850
- /**
2851
- * Notification component for rendering a styled Bulma notification.
2852
- *
2853
- * Supports colors, light variants, a delete button, and arbitrary content.
2854
- *
2855
- * @function
2856
- * @param {NotificationProps} props - Props for the Notification component.
2857
- * @returns {JSX.Element} The rendered notification element.
2858
- * @see {@link https://bulma.io/documentation/elements/notification/ | Bulma Notification documentation}
2859
- */
2860
1389
  const Notification = ({ className, color, isLight, hasDelete, onDelete, children, ...props }) => {
2861
- /**
2862
- * Generates Bulma helper classes and separates out remaining props.
2863
- */
2864
1390
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2865
1391
  ...props,
2866
1392
  });
@@ -2871,20 +1397,7 @@ const Notification = ({ className, color, isLight, hasDelete, onDelete, children
2871
1397
  return (jsxRuntimeExports.jsxs("div", { className: notificationClasses, ...rest, children: [hasDelete && (jsxRuntimeExports.jsx("button", { className: "delete", onClick: onDelete, "aria-label": "Close notification" })), children] }));
2872
1398
  };
2873
1399
 
2874
- /**
2875
- * Progress component for rendering a styled Bulma progress bar.
2876
- *
2877
- * Supports Bulma color and size modifiers, value/max attributes, and optional custom content.
2878
- *
2879
- * @function
2880
- * @param {ProgressProps} props - Props for the Progress component.
2881
- * @returns {JSX.Element} The rendered progress bar element.
2882
- * @see {@link https://bulma.io/documentation/elements/progress/ | Bulma Progress documentation}
2883
- */
2884
1400
  const Progress = ({ className, color, size, value, max, children, ...props }) => {
2885
- /**
2886
- * Generates Bulma helper classes and separates out remaining props.
2887
- */
2888
1401
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2889
1402
  ...props,
2890
1403
  });
@@ -2905,47 +1418,18 @@ const validSubTitleElements = [
2905
1418
  'h6',
2906
1419
  'p',
2907
1420
  ];
2908
- /**
2909
- * SubTitle component for rendering a styled Bulma subtitle.
2910
- *
2911
- * Supports Bulma subtitle sizes and rendering as different HTML elements (h1-h6, p).
2912
- *
2913
- * @function
2914
- * @param {SubTitleProps} props - Props for the SubTitle component.
2915
- * @returns {JSX.Element} The rendered subtitle element.
2916
- * @see {@link https://bulma.io/documentation/elements/title/#subtitle | Bulma Subtitle documentation}
2917
- */
2918
1421
  const SubTitle = ({ className, size, as = 'h1', children, ...props }) => {
2919
- /**
2920
- * Generates Bulma helper classes and separates out remaining props.
2921
- */
2922
1422
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
2923
- // Validate 'as' prop at runtime
2924
1423
  const element = validSubTitleElements.includes(as) ? as : 'h1';
2925
- // Validate 'size' prop at runtime
2926
1424
  const validSize = size && validSubTitleSizes.includes(size) ? size : undefined;
2927
1425
  const subTitleClasses = classNames('subtitle', className, bulmaHelperClasses, {
2928
1426
  [`is-${validSize}`]: validSize,
2929
1427
  });
2930
- // Determine the tag based on 'element' and 'validSize'
2931
1428
  const Tag = element === 'p' ? 'p' : validSize ? `h${validSize}` : element;
2932
1429
  return (jsxRuntimeExports.jsx(Tag, { className: subTitleClasses, ...rest, children: children }));
2933
1430
  };
2934
1431
 
2935
- /**
2936
- * Table component for rendering a styled Bulma table.
2937
- *
2938
- * Supports responsive, bordered, striped, narrow, hoverable, and fullwidth variants.
2939
- *
2940
- * @function
2941
- * @param {TableProps} props - Props for the Table component.
2942
- * @returns {JSX.Element} The rendered table element.
2943
- * @see {@link https://bulma.io/documentation/elements/table/ | Bulma Table documentation}
2944
- */
2945
1432
  const Table = ({ className, isBordered, isStriped, isNarrow, isHoverable, isFullwidth, isResponsive, children, ...props }) => {
2946
- /**
2947
- * Generates Bulma helper classes and separates out remaining props.
2948
- */
2949
1433
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
2950
1434
  const tableClasses = classNames('table', className, bulmaHelperClasses, {
2951
1435
  'is-bordered': isBordered,
@@ -2971,20 +1455,7 @@ const validTagColors = [
2971
1455
  'white',
2972
1456
  ];
2973
1457
  const validTagSizes = ['normal', 'medium', 'large'];
2974
- /**
2975
- * Tag component for rendering a styled Bulma tag.
2976
- *
2977
- * Supports colors, sizes, rounded, delete, and hoverable variants.
2978
- *
2979
- * @function
2980
- * @param {TagProps} props - Props for the Tag component.
2981
- * @returns {JSX.Element} The rendered tag element.
2982
- * @see {@link https://bulma.io/documentation/elements/tag/ | Bulma Tag documentation}
2983
- */
2984
1458
  const Tag = ({ className, color, size, isRounded, isDelete, isHoverable, onDelete, children, ...props }) => {
2985
- /**
2986
- * Generates Bulma helper classes and separates out remaining props.
2987
- */
2988
1459
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
2989
1460
  const tagClasses = classNames('tag', className, bulmaHelperClasses, {
2990
1461
  [`is-${color}`]: color && validTagColors.includes(color),
@@ -2999,20 +1470,7 @@ const Tag = ({ className, color, size, isRounded, isDelete, isHoverable, onDelet
2999
1470
  return (jsxRuntimeExports.jsx("span", { className: tagClasses, ...rest, children: children }));
3000
1471
  };
3001
1472
 
3002
- /**
3003
- * Tags component for rendering a styled Bulma tags container.
3004
- *
3005
- * Supports addons and multiline variants.
3006
- *
3007
- * @function
3008
- * @param {TagsProps} props - Props for the Tags component.
3009
- * @returns {JSX.Element} The rendered tags container.
3010
- * @see {@link https://bulma.io/documentation/elements/tag/#list-of-tags | Bulma Tags documentation}
3011
- */
3012
1473
  const Tags = ({ className, hasAddons, isMultiline, children, ...props }) => {
3013
- /**
3014
- * Generates Bulma helper classes and separates out remaining props.
3015
- */
3016
1474
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3017
1475
  const tagsClasses = classNames('tags', className, bulmaHelperClasses, {
3018
1476
  'has-addons': hasAddons,
@@ -3021,20 +1479,7 @@ const Tags = ({ className, hasAddons, isMultiline, children, ...props }) => {
3021
1479
  return (jsxRuntimeExports.jsx("div", { className: tagsClasses, ...rest, children: children }));
3022
1480
  };
3023
1481
 
3024
- /**
3025
- * Tbody component for rendering a styled Bulma table body.
3026
- *
3027
- * Supports Bulma helper classes for additional styling.
3028
- *
3029
- * @function
3030
- * @param {TbodyProps} props - Props for the Tbody component.
3031
- * @returns {JSX.Element} The rendered table body element.
3032
- * @see {@link https://bulma.io/documentation/elements/table/#table-body | Bulma Table documentation}
3033
- */
3034
1482
  const Tbody = ({ className, children, ...props }) => {
3035
- /**
3036
- * Generates Bulma helper classes and separates out remaining props.
3037
- */
3038
1483
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3039
1484
  const tbodyClasses = classNames(className, bulmaHelperClasses);
3040
1485
  return (jsxRuntimeExports.jsx("tbody", { className: tbodyClasses, ...rest, children: children }));
@@ -3052,20 +1497,7 @@ const validTableColors = [
3052
1497
  'light',
3053
1498
  'white',
3054
1499
  ];
3055
- /**
3056
- * Td component for rendering a styled Bulma table cell.
3057
- *
3058
- * Supports Bulma color modifiers and helper classes for additional styling.
3059
- *
3060
- * @function
3061
- * @param {TdProps} props - Props for the Td component.
3062
- * @returns {JSX.Element} The rendered table cell element.
3063
- * @see {@link https://bulma.io/documentation/elements/table/#table-body | Bulma Table documentation}
3064
- */
3065
1500
  const Td = ({ className, color, children, ...props }) => {
3066
- /**
3067
- * Generates Bulma helper classes and separates out remaining props.
3068
- */
3069
1501
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3070
1502
  const tdClasses = classNames(className, bulmaHelperClasses, {
3071
1503
  [`is-${color}`]: color && validTableColors.includes(color),
@@ -3073,40 +1505,14 @@ const Td = ({ className, color, children, ...props }) => {
3073
1505
  return (jsxRuntimeExports.jsx("td", { className: tdClasses, ...rest, children: children }));
3074
1506
  };
3075
1507
 
3076
- /**
3077
- * Tfoot component for rendering a styled Bulma table footer.
3078
- *
3079
- * Supports Bulma helper classes for additional styling.
3080
- *
3081
- * @function
3082
- * @param {TfootProps} props - Props for the Tfoot component.
3083
- * @returns {JSX.Element} The rendered table footer element.
3084
- * @see {@link https://bulma.io/documentation/elements/table/#table-footer | Bulma Table documentation}
3085
- */
3086
1508
  const Tfoot = ({ className, children, ...props }) => {
3087
- /**
3088
- * Generates Bulma helper classes and separates out remaining props.
3089
- */
3090
1509
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3091
1510
  const tfootClasses = classNames(className, bulmaHelperClasses);
3092
1511
  return (jsxRuntimeExports.jsx("tfoot", { className: tfootClasses, ...rest, children: children }));
3093
1512
  };
3094
1513
 
3095
1514
  const validAlignments = ['left', 'right', 'centered'];
3096
- /**
3097
- * Th component for rendering a styled Bulma table header cell.
3098
- *
3099
- * Supports alignment, width, and color modifiers.
3100
- *
3101
- * @function
3102
- * @param {ThProps} props - Props for the Th component.
3103
- * @returns {JSX.Element} The rendered table header cell element.
3104
- * @see {@link https://bulma.io/documentation/elements/table/#table-head | Bulma Table documentation}
3105
- */
3106
1515
  const Th = ({ className, isAligned, width, color, children, ...props }) => {
3107
- /**
3108
- * Generates Bulma helper classes and separates out remaining props.
3109
- */
3110
1516
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3111
1517
  const thClasses = classNames(className, bulmaHelperClasses, {
3112
1518
  [`has-text-${isAligned}`]: isAligned && validAlignments.includes(isAligned),
@@ -3117,20 +1523,7 @@ const Th = ({ className, isAligned, width, color, children, ...props }) => {
3117
1523
  : undefined, ...rest, children: children }));
3118
1524
  };
3119
1525
 
3120
- /**
3121
- * Thead component for rendering a styled Bulma table header.
3122
- *
3123
- * Supports Bulma helper classes for additional styling.
3124
- *
3125
- * @function
3126
- * @param {TheadProps} props - Props for the Thead component.
3127
- * @returns {JSX.Element} The rendered table header element.
3128
- * @see {@link https://bulma.io/documentation/elements/table/#table-head | Bulma Table documentation}
3129
- */
3130
1526
  const Thead = ({ className, children, ...props }) => {
3131
- /**
3132
- * Generates Bulma helper classes and separates out remaining props.
3133
- */
3134
1527
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3135
1528
  const theadClasses = classNames(className, bulmaHelperClasses);
3136
1529
  return (jsxRuntimeExports.jsx("thead", { className: theadClasses, ...rest, children: children }));
@@ -3138,48 +1531,19 @@ const Thead = ({ className, children, ...props }) => {
3138
1531
 
3139
1532
  const validTitleSizes = ['1', '2', '3', '4', '5', '6'];
3140
1533
  const validTitleElements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'];
3141
- /**
3142
- * Title component for rendering a styled Bulma title.
3143
- *
3144
- * Supports sizes, spacing, and rendering as different HTML elements.
3145
- *
3146
- * @function
3147
- * @param {TitleProps} props - Props for the Title component.
3148
- * @returns {JSX.Element} The rendered title element.
3149
- * @see {@link https://bulma.io/documentation/elements/title/ | Bulma Title documentation}
3150
- */
3151
1534
  const Title = ({ className, size, isSpaced, as = 'h1', children, ...props }) => {
3152
- /**
3153
- * Generates Bulma helper classes and separates out remaining props.
3154
- */
3155
1535
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3156
- // Validate 'as' prop at runtime
3157
1536
  const element = validTitleElements.includes(as) ? as : 'h1';
3158
- // Validate 'size' prop at runtime
3159
1537
  const validSize = size && validTitleSizes.includes(size) ? size : undefined;
3160
1538
  const titleClasses = classNames('title', className, bulmaHelperClasses, {
3161
1539
  [`is-${validSize}`]: validSize,
3162
1540
  'is-spaced': isSpaced,
3163
1541
  });
3164
- // Determine the tag based on 'element' and 'validSize'
3165
1542
  const Tag = element === 'p' ? 'p' : validSize ? `h${validSize}` : element;
3166
1543
  return (jsxRuntimeExports.jsx(Tag, { className: titleClasses, ...rest, children: children }));
3167
1544
  };
3168
1545
 
3169
- /**
3170
- * Tr component for rendering a styled Bulma table row.
3171
- *
3172
- * Supports the is-selected modifier and color modifiers.
3173
- *
3174
- * @function
3175
- * @param {TrProps} props - Props for the Tr component.
3176
- * @returns {JSX.Element} The rendered table row element.
3177
- * @see {@link https://bulma.io/documentation/elements/table/#table-row | Bulma Table documentation}
3178
- */
3179
1546
  const Tr = ({ className, isSelected, color, children, ...props }) => {
3180
- /**
3181
- * Generates Bulma helper classes and separates out remaining props.
3182
- */
3183
1547
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3184
1548
  const trClasses = classNames(className, bulmaHelperClasses, {
3185
1549
  'is-selected': isSelected,
@@ -3188,14 +1552,6 @@ const Tr = ({ className, isSelected, color, children, ...props }) => {
3188
1552
  return (jsxRuntimeExports.jsx("tr", { className: trClasses, ...rest, children: children }));
3189
1553
  };
3190
1554
 
3191
- /**
3192
- * Bulma Checkbox component with Bulma helper classes support.
3193
- * The label is provided via the children prop.
3194
- *
3195
- * @function
3196
- * @param {CheckboxProps} props - Props for the Checkbox component.
3197
- * @returns {JSX.Element} The rendered checkbox element.
3198
- */
3199
1555
  const Checkbox = React.forwardRef(({ disabled, className, children, ...props }, ref) => {
3200
1556
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3201
1557
  ...props,
@@ -3206,17 +1562,8 @@ const Checkbox = React.forwardRef(({ disabled, className, children, ...props },
3206
1562
  Checkbox.displayName = 'Checkbox';
3207
1563
 
3208
1564
  const allowedColors = [...validColors, 'inherit', 'current'];
3209
- /**
3210
- * Bulma Control component for form controls, with icons, loading, and Bulma helper support.
3211
- *
3212
- * @function
3213
- * @param {ControlProps} props - Props for the Control component.
3214
- * @returns {JSX.Element} The rendered control container.
3215
- * @see {@link https://bulma.io/documentation/form/general/#control | Bulma Control documentation}
3216
- */
3217
1565
  const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isLoading, isExpanded, size, textColor, bgColor, iconLeft, iconRight, iconLeftName, iconLeftSize, iconRightName, iconRightSize, className, children, ...props }, ref) => {
3218
1566
  const Component = (as === 'p' ? 'p' : 'div');
3219
- // Remove textColor/bgColor from props before spreading
3220
1567
  const { textColor: _ignoredTextColor, bgColor: _ignoredBgColor, ...restProps } = props;
3221
1568
  const safeTextColor = allowedColors.includes(textColor)
3222
1569
  ? textColor
@@ -3229,7 +1576,6 @@ const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isL
3229
1576
  backgroundColor: safeBgColor,
3230
1577
  ...restProps,
3231
1578
  });
3232
- // Prepare icon props for the shortcut
3233
1579
  const leftIconProps = iconLeft ||
3234
1580
  (iconLeftName
3235
1581
  ? {
@@ -3251,18 +1597,10 @@ const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isL
3251
1597
  'is-expanded': isExpanded,
3252
1598
  [`is-${size}`]: !!size,
3253
1599
  }, className);
3254
- // --- FIX: Spread both restProps (for data-testid, etc) AND rest (from useBulmaClasses) ---
3255
1600
  return (jsxRuntimeExports.jsxs(Component, { className: controlClass, ref: ref, ...restProps, ...rest, children: [children, leftIconProps && leftIconProps.name && (jsxRuntimeExports.jsx(Icon, { ...leftIconProps, className: "is-left" })), rightIconProps && rightIconProps.name && (jsxRuntimeExports.jsx(Icon, { ...rightIconProps, className: "is-right" }))] }));
3256
1601
  });
3257
1602
  Control.displayName = 'Control';
3258
1603
 
3259
- /**
3260
- * FieldLabel component for rendering a Bulma field label.
3261
- *
3262
- * @function
3263
- * @param {FieldLabelProps} props - Props for the FieldLabel component.
3264
- * @returns {JSX.Element} The rendered field label.
3265
- */
3266
1604
  const FieldLabel = ({ size, textColor, bgColor, className, children, ...props }) => {
3267
1605
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3268
1606
  color: textColor,
@@ -3270,16 +1608,8 @@ const FieldLabel = ({ size, textColor, bgColor, className, children, ...props })
3270
1608
  ...props,
3271
1609
  });
3272
1610
  const fieldLabelClass = classNames('field-label', bulmaHelperClasses, { [`is-${size}`]: size }, className);
3273
- // Spread ...props and ...rest so custom props like data-testid are included
3274
1611
  return (jsxRuntimeExports.jsx("div", { className: fieldLabelClass, ...props, ...rest, children: children }));
3275
1612
  };
3276
- /**
3277
- * FieldBody component for rendering Bulma field body.
3278
- *
3279
- * @function
3280
- * @param {FieldBodyProps} props - Props for the FieldBody component.
3281
- * @returns {JSX.Element} The rendered field body.
3282
- */
3283
1613
  const FieldBody = ({ textColor, bgColor, className, children, ...props }) => {
3284
1614
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3285
1615
  color: textColor,
@@ -3287,30 +1617,18 @@ const FieldBody = ({ textColor, bgColor, className, children, ...props }) => {
3287
1617
  ...props,
3288
1618
  });
3289
1619
  const fieldBodyClass = classNames('field-body', bulmaHelperClasses, className);
3290
- // Spread ...props and ...rest so custom props like data-testid are included
3291
1620
  return (jsxRuntimeExports.jsx("div", { className: fieldBodyClass, ...props, ...rest, children: children }));
3292
1621
  };
3293
1622
  FieldLabel.displayName = 'FieldLabel';
3294
1623
  FieldBody.displayName = 'FieldBody';
3295
1624
 
3296
- /**
3297
- * Bulma File upload component with full Bulma helper class support.
3298
- * isRight and isCentered are mutually exclusive (Bulma spec).
3299
- *
3300
- * @function
3301
- * @param {FileProps} props - Props for the File component.
3302
- * @returns {JSX.Element} The rendered file upload field.
3303
- * @see {@link https://bulma.io/documentation/form/file/ | Bulma File documentation}
3304
- */
3305
1625
  const File = React.forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isCentered, hasName, label, iconLeft, iconRight, className, inputClassName, fileName, ...props }, ref) => {
3306
1626
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3307
1627
  color,
3308
1628
  ...props,
3309
1629
  });
3310
- // Mutually exclusive alignment
3311
1630
  let alignmentClass;
3312
1631
  if (isRight && isCentered) {
3313
- // If both are set, prefer isRight and warn in dev
3314
1632
  alignmentClass = 'is-right';
3315
1633
  }
3316
1634
  else if (isRight) {
@@ -3330,14 +1648,6 @@ const File = React.forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isC
3330
1648
  });
3331
1649
  File.displayName = 'File';
3332
1650
 
3333
- /**
3334
- * Bulma Input component with full Bulma helper class support.
3335
- *
3336
- * @function
3337
- * @param {InputProps} props - Props for the Input component.
3338
- * @returns {JSX.Element} The rendered input element.
3339
- * @see {@link https://bulma.io/documentation/form/input/ | Bulma Input documentation}
3340
- */
3341
1651
  const Input = React.forwardRef(({ color, size, isRounded, isStatic, isHovered, isFocused, isLoading, className, disabled, readOnly, ...props }, ref) => {
3342
1652
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3343
1653
  color,
@@ -3356,14 +1666,6 @@ const Input = React.forwardRef(({ color, size, isRounded, isStatic, isHovered, i
3356
1666
  });
3357
1667
  Input.displayName = 'Input';
3358
1668
 
3359
- /**
3360
- * Bulma Radio component with Bulma helper classes support.
3361
- * The label is provided via the children prop.
3362
- *
3363
- * @function
3364
- * @param {RadioProps} props - Props for the Radio component.
3365
- * @returns {JSX.Element} The rendered radio element.
3366
- */
3367
1669
  const Radio = React.forwardRef(({ disabled, className, children, ...props }, ref) => {
3368
1670
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3369
1671
  ...props,
@@ -3373,14 +1675,6 @@ const Radio = React.forwardRef(({ disabled, className, children, ...props }, ref
3373
1675
  });
3374
1676
  Radio.displayName = 'Radio';
3375
1677
 
3376
- /**
3377
- * Bulma Select component with full Bulma helper class support.
3378
- *
3379
- * @function
3380
- * @param {SelectProps} props - Props for the Select component.
3381
- * @returns {JSX.Element} The rendered select element.
3382
- * @see {@link https://bulma.io/documentation/form/select/ | Bulma Select documentation}
3383
- */
3384
1678
  const Select = React.forwardRef(({ color, size, isRounded, isLoading, isActive, className, disabled, children, multiple, multipleSize, ...props }, ref) => {
3385
1679
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3386
1680
  color,
@@ -3393,7 +1687,6 @@ const Select = React.forwardRef(({ color, size, isRounded, isLoading, isActive,
3393
1687
  'is-loading': isLoading,
3394
1688
  'is-active': isActive,
3395
1689
  }, className);
3396
- // Only set size attribute when multiple is true and multipleSize is specified
3397
1690
  const selectProps = {
3398
1691
  disabled,
3399
1692
  multiple,
@@ -3406,14 +1699,6 @@ const Select = React.forwardRef(({ color, size, isRounded, isLoading, isActive,
3406
1699
  });
3407
1700
  Select.displayName = 'Select';
3408
1701
 
3409
- /**
3410
- * Bulma TextArea component with full Bulma helper class support.
3411
- *
3412
- * @function
3413
- * @param {TextAreaProps} props - Props for the TextArea component.
3414
- * @returns {JSX.Element} The rendered textarea element.
3415
- * @see {@link https://bulma.io/documentation/form/textarea/ | Bulma Textarea documentation}
3416
- */
3417
1702
  const TextArea = React.forwardRef(({ color, size, isRounded, isStatic, isHovered, isFocused, isLoading, isActive, hasFixedSize, className, disabled, readOnly, rows, ...props }, ref) => {
3418
1703
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3419
1704
  color,
@@ -3434,9 +1719,6 @@ const TextArea = React.forwardRef(({ color, size, isRounded, isStatic, isHovered
3434
1719
  });
3435
1720
  TextArea.displayName = 'TextArea';
3436
1721
 
3437
- /**
3438
- * Builds Bulma grid cell class names for the Cell component.
3439
- */
3440
1722
  function getCellGridClasses(props) {
3441
1723
  const classes = [];
3442
1724
  if (props.colStart !== undefined)
@@ -3453,14 +1735,6 @@ function getCellGridClasses(props) {
3453
1735
  classes.push(`is-row-span-${props.rowSpan}`);
3454
1736
  return classes;
3455
1737
  }
3456
- /**
3457
- * Bulma Cell component for CSS Grid layouts.
3458
- *
3459
- * @function
3460
- * @param {CellProps} props - Props for the Cell component.
3461
- * @returns {JSX.Element} The rendered grid cell.
3462
- * @see {@link https://bulma.io/documentation/grid/ | Bulma Grid documentation}
3463
- */
3464
1738
  const Cell = ({ colStart, colFromEnd, colSpan, rowStart, rowFromEnd, rowSpan, className, textColor, bgColor, children, ...props }) => {
3465
1739
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3466
1740
  color: textColor,
@@ -3478,9 +1752,6 @@ const Cell = ({ colStart, colFromEnd, colSpan, rowStart, rowFromEnd, rowSpan, cl
3478
1752
  return (jsxRuntimeExports.jsx("div", { className: cellClasses, ...rest, children: children }));
3479
1753
  };
3480
1754
 
3481
- /**
3482
- * Builds Bulma grid inner classes for the Grid component.
3483
- */
3484
1755
  function getGridInnerClasses({ gap, columnGap, rowGap, minCol, }) {
3485
1756
  const classes = [];
3486
1757
  if (gap !== undefined)
@@ -3493,13 +1764,9 @@ function getGridInnerClasses({ gap, columnGap, rowGap, minCol, }) {
3493
1764
  classes.push(`is-col-min-${minCol}`);
3494
1765
  return classes;
3495
1766
  }
3496
- /**
3497
- * Builds Bulma fixed grid classes for the Grid component.
3498
- */
3499
1767
  function getFixedGridClasses({ fixedCols, fixedColsMobile, fixedColsTablet, fixedColsDesktop, fixedColsWidescreen, fixedColsFullhd, }) {
3500
1768
  const classes = [];
3501
1769
  if (fixedCols === 'auto') {
3502
- // 'auto' overrides all other column settings
3503
1770
  classes.push('has-auto-count');
3504
1771
  return classes;
3505
1772
  }
@@ -3517,16 +1784,7 @@ function getFixedGridClasses({ fixedCols, fixedColsMobile, fixedColsTablet, fixe
3517
1784
  classes.push(`has-${fixedColsFullhd}-cols-fullhd`);
3518
1785
  return classes;
3519
1786
  }
3520
- /**
3521
- * Bulma Grid component for CSS Grid layouts, supports both fixed and responsive grid modes.
3522
- *
3523
- * @function
3524
- * @param {GridProps} props - Props for the Grid component.
3525
- * @returns {JSX.Element} The rendered grid.
3526
- * @see {@link https://bulma.io/documentation/grid/ | Bulma Grid documentation}
3527
- */
3528
1787
  const Grid = ({ isFixed = false, gap, columnGap, rowGap, minCol, fixedCols, fixedColsMobile, fixedColsTablet, fixedColsDesktop, fixedColsWidescreen, fixedColsFullhd, className, textColor, bgColor, children, ...props }) => {
3529
- // Map textColor and bgColor to color and backgroundColor for useBulmaClasses
3530
1788
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3531
1789
  color: textColor,
3532
1790
  backgroundColor: bgColor,
@@ -3534,7 +1792,6 @@ const Grid = ({ isFixed = false, gap, columnGap, rowGap, minCol, fixedCols, fixe
3534
1792
  });
3535
1793
  const gridClasses = classNames('grid', ...getGridInnerClasses({ gap, columnGap, rowGap, minCol }), bulmaHelperClasses, className);
3536
1794
  if (isFixed) {
3537
- // Apply has-X-cols and responsive column count classes to the outer fixed-grid container
3538
1795
  const fixedGridClasses = classNames('fixed-grid', ...getFixedGridClasses({
3539
1796
  fixedCols,
3540
1797
  fixedColsMobile,
@@ -3545,26 +1802,15 @@ const Grid = ({ isFixed = false, gap, columnGap, rowGap, minCol, fixedCols, fixe
3545
1802
  }));
3546
1803
  return (jsxRuntimeExports.jsx("div", { className: fixedGridClasses, children: jsxRuntimeExports.jsx("div", { className: gridClasses, ...rest, children: children }) }));
3547
1804
  }
3548
- // Standard Bulma grid (not fixed)
3549
1805
  return (jsxRuntimeExports.jsx("div", { className: gridClasses, ...rest, children: children }));
3550
1806
  };
3551
1807
 
3552
- /**
3553
- * Container component for Bulma.
3554
- * Adds optional responsive, fluid, and color support, including is-max-* and breakpoint classes.
3555
- *
3556
- * @function
3557
- * @param {ContainerProps} props - Props for the Container component.
3558
- * @returns {JSX.Element} The rendered container.
3559
- * @see {@link https://bulma.io/documentation/layout/container/ | Bulma Container documentation}
3560
- */
3561
1808
  const Container = ({ className, textColor, bgColor, fluid, widescreen, fullhd, breakpoint, isMax, children, ...props }) => {
3562
1809
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3563
1810
  color: textColor,
3564
1811
  backgroundColor: bgColor,
3565
1812
  ...props,
3566
1813
  });
3567
- // Only allow isMax for supported breakpoints
3568
1814
  const validMaxBreakpoints = [
3569
1815
  'tablet',
3570
1816
  'desktop',
@@ -3587,14 +1833,6 @@ const Container = ({ className, textColor, bgColor, fluid, widescreen, fullhd, b
3587
1833
  return (jsxRuntimeExports.jsx("div", { className: containerClasses, ...rest, children: children }));
3588
1834
  };
3589
1835
 
3590
- /**
3591
- * Bulma Hero component root.
3592
- *
3593
- * @function
3594
- * @param {HeroProps} props - Props for the Hero component.
3595
- * @returns {JSX.Element} The rendered hero.
3596
- * @see {@link https://bulma.io/documentation/layout/hero/ | Bulma Hero documentation}
3597
- */
3598
1836
  const Hero = ({ className, color, size, bgColor, fullheightWithNavbar, children, ...props }) => {
3599
1837
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3600
1838
  color,
@@ -3606,9 +1844,6 @@ const Hero = ({ className, color, size, bgColor, fullheightWithNavbar, children,
3606
1844
  });
3607
1845
  return (jsxRuntimeExports.jsx("section", { className: heroClasses, ...rest, children: children }));
3608
1846
  };
3609
- /**
3610
- * Bulma Hero head section.
3611
- */
3612
1847
  const HeroHead = ({ className, children, color, bgColor, textColor, ...props }) => {
3613
1848
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3614
1849
  color: textColor !== null && textColor !== void 0 ? textColor : color,
@@ -3617,9 +1852,6 @@ const HeroHead = ({ className, children, color, bgColor, textColor, ...props })
3617
1852
  });
3618
1853
  return (jsxRuntimeExports.jsx("div", { className: classNames('hero-head', bulmaHelperClasses, className), ...rest, children: children }));
3619
1854
  };
3620
- /**
3621
- * Bulma Hero body section.
3622
- */
3623
1855
  const HeroBody = ({ className, children, color, bgColor, textColor, ...props }) => {
3624
1856
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3625
1857
  color: textColor !== null && textColor !== void 0 ? textColor : color,
@@ -3628,9 +1860,6 @@ const HeroBody = ({ className, children, color, bgColor, textColor, ...props })
3628
1860
  });
3629
1861
  return (jsxRuntimeExports.jsx("div", { className: classNames('hero-body', bulmaHelperClasses, className), ...rest, children: children }));
3630
1862
  };
3631
- /**
3632
- * Bulma Hero foot section.
3633
- */
3634
1863
  const HeroFoot = ({ className, children, color, bgColor, textColor, ...props }) => {
3635
1864
  const { bulmaHelperClasses, rest } = useBulmaClasses({
3636
1865
  color: textColor !== null && textColor !== void 0 ? textColor : color,
@@ -3639,42 +1868,24 @@ const HeroFoot = ({ className, children, color, bgColor, textColor, ...props })
3639
1868
  });
3640
1869
  return (jsxRuntimeExports.jsx("div", { className: classNames('hero-foot', bulmaHelperClasses, className), ...rest, children: children }));
3641
1870
  };
3642
- // Attach subcomponents
3643
1871
  Hero.Head = HeroHead;
3644
1872
  Hero.Body = HeroBody;
3645
1873
  Hero.Foot = HeroFoot;
3646
1874
 
3647
- /**
3648
- * Bulma Media component root.
3649
- *
3650
- * @function
3651
- * @param {MediaProps} props - Props for the Media component.
3652
- * @returns {JSX.Element} The rendered media container.
3653
- * @see {@link https://bulma.io/documentation/layout/media-object/ | Bulma Media documentation}
3654
- */
3655
1875
  const Media = ({ as = 'article', className, children, ...props }) => {
3656
1876
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
3657
1877
  const Tag = as;
3658
1878
  return (jsxRuntimeExports.jsx(Tag, { className: classNames('media', bulmaHelperClasses, className), ...rest, children: children }));
3659
1879
  };
3660
- /**
3661
- * Bulma Media left section.
3662
- */
3663
1880
  const MediaLeft = ({ as = 'figure', className, children, ...props }) => {
3664
1881
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
3665
1882
  const Tag = as;
3666
1883
  return (jsxRuntimeExports.jsx(Tag, { className: classNames('media-left', bulmaHelperClasses, className), ...rest, children: children }));
3667
1884
  };
3668
- /**
3669
- * Bulma Media content section.
3670
- */
3671
1885
  const MediaContent = ({ className, children, ...props }) => {
3672
1886
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
3673
1887
  return (jsxRuntimeExports.jsx("div", { className: classNames('media-content', bulmaHelperClasses, className), ...rest, children: children }));
3674
1888
  };
3675
- /**
3676
- * Bulma Media right section.
3677
- */
3678
1889
  const MediaRight = ({ className, children, ...props }) => {
3679
1890
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
3680
1891
  return (jsxRuntimeExports.jsx("div", { className: classNames('media-right', bulmaHelperClasses, className), ...rest, children: children }));
@@ -3683,14 +1894,6 @@ Media.Left = MediaLeft;
3683
1894
  Media.Content = MediaContent;
3684
1895
  Media.Right = MediaRight;
3685
1896
 
3686
- /**
3687
- * Bulma Section component for general layout.
3688
- *
3689
- * @function
3690
- * @param {SectionProps} props - Props for the Section component.
3691
- * @returns {JSX.Element} The rendered section.
3692
- * @see {@link https://bulma.io/documentation/layout/section/ | Bulma Section documentation}
3693
- */
3694
1897
  const Section = ({ size, className, children, ...props }) => {
3695
1898
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
3696
1899
  const sectionClasses = classNames('section', className, bulmaHelperClasses, {