@allxsmith/bestax-bulma 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useMemo, createContext, useContext, useState, useRef, useEffect, forwardRef } from 'react';
1
+ import React, { createContext, useContext, useMemo, useState, useRef, useEffect, forwardRef } from 'react';
2
2
 
3
3
  var jsxRuntime = {exports: {}};
4
4
 
@@ -427,6 +427,20 @@ function requireJsxRuntime () {
427
427
 
428
428
  var jsxRuntimeExports = requireJsxRuntime();
429
429
 
430
+ const ConfigContext = createContext({});
431
+ const useConfig = () => useContext(ConfigContext);
432
+ const ConfigProvider = ({ classPrefix, children, }) => {
433
+ return (jsxRuntimeExports.jsx(ConfigContext.Provider, { value: { classPrefix }, children: children }));
434
+ };
435
+ const useClassPrefix = () => {
436
+ const { classPrefix } = useConfig();
437
+ return classPrefix || '';
438
+ };
439
+ const usePrefixedClass = () => {
440
+ const { classPrefix } = useConfig();
441
+ return (className) => classPrefix ? `${classPrefix}${className}` : className;
442
+ };
443
+
430
444
  function classNames(...args) {
431
445
  const classSet = new Set();
432
446
  function process(item) {
@@ -459,6 +473,55 @@ function classNames(...args) {
459
473
  }
460
474
  return Array.from(classSet).join(' ');
461
475
  }
476
+ function createPrefixedClassNames(classPrefix) {
477
+ return function prefixedClassNames(...args) {
478
+ const classSet = new Set();
479
+ function process(item) {
480
+ if (item === undefined ||
481
+ item === null ||
482
+ item === false ||
483
+ item === '') {
484
+ return;
485
+ }
486
+ if (typeof item === 'string' || typeof item === 'number') {
487
+ for (const cls of String(item).split(/\s+/)) {
488
+ if (cls) {
489
+ classSet.add(`${classPrefix}${cls}`);
490
+ }
491
+ }
492
+ }
493
+ else if (Array.isArray(item)) {
494
+ for (const sub of item)
495
+ process(sub);
496
+ }
497
+ else if (typeof item === 'object') {
498
+ for (const key in item) {
499
+ if (Object.prototype.hasOwnProperty.call(item, key) && item[key]) {
500
+ for (const cls of key.split(/\s+/)) {
501
+ if (cls) {
502
+ classSet.add(`${classPrefix}${cls}`);
503
+ }
504
+ }
505
+ }
506
+ }
507
+ }
508
+ }
509
+ for (const arg of args) {
510
+ process(arg);
511
+ }
512
+ return Array.from(classSet).join(' ');
513
+ };
514
+ }
515
+ function prefixedClassNames(prefix, ...args) {
516
+ if (!prefix) {
517
+ return classNames(...args);
518
+ }
519
+ return createPrefixedClassNames(prefix)(...args);
520
+ }
521
+ function usePrefixedClassNames(...args) {
522
+ const { classPrefix } = useConfig();
523
+ return prefixedClassNames(classPrefix, ...args);
524
+ }
462
525
 
463
526
  const validColors = [
464
527
  'primary',
@@ -583,7 +646,7 @@ const validAlignSelfs = [
583
646
  'baseline',
584
647
  'stretch',
585
648
  ];
586
- const validFlexGrowShrink = ['0', '1'];
649
+ const validFlexGrowShrink = ['0', '1', '2', '3', '4', '5'];
587
650
  const validViewports = [
588
651
  'mobile',
589
652
  'tablet',
@@ -592,15 +655,19 @@ const validViewports = [
592
655
  'fullhd',
593
656
  ];
594
657
  const useBulmaClasses = (props) => {
595
- 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, skeleton, ...rest } = props;
658
+ const { classPrefix } = useConfig();
659
+ 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, displayMobile, displayTablet, displayDesktop, displayWidescreen, displayFullhd, skeleton, ...rest } = props;
596
660
  const bulmaHelperClasses = useMemo(() => {
597
661
  const classes = [];
662
+ const addPrefixedClass = (className) => {
663
+ classes.push(classPrefix ? `${classPrefix}${className}` : className);
664
+ };
598
665
  const addClass = (prefix, value, validValues) => {
599
666
  if (value && (!validValues.length || validValues.includes(value))) {
600
667
  const className = viewport && validViewports.includes(viewport)
601
668
  ? `${prefix}-${value}-${viewport}`
602
669
  : `${prefix}-${value}`;
603
- classes.push(className);
670
+ addPrefixedClass(className);
604
671
  }
605
672
  };
606
673
  const addColorClass = (prefix, value, shade) => {
@@ -610,7 +677,7 @@ const useBulmaClasses = (props) => {
610
677
  const className = prefix === 'has-text' && viewport && validViewports.includes(viewport)
611
678
  ? `${prefix}-${value}-${shade}-${viewport}`
612
679
  : `${prefix}-${value}-${shade}`;
613
- classes.push(className);
680
+ addPrefixedClass(className);
614
681
  }
615
682
  else {
616
683
  addClass(prefix, value, [...validColors, 'inherit', 'current']);
@@ -637,18 +704,62 @@ const useBulmaClasses = (props) => {
637
704
  addClass('is', textTransform, validTextTransforms);
638
705
  addClass('has-text-weight', textWeight, validTextWeights);
639
706
  addClass('is-family', fontFamily, validFontFamilies);
640
- addClass('is', display, validDisplays);
707
+ const addDisplayClass = (displayValue, viewportSuffix) => {
708
+ if (displayValue) {
709
+ if (displayValue === 'none') {
710
+ addPrefixedClass(`is-hidden${viewportSuffix}`);
711
+ }
712
+ else if (validDisplays.includes(displayValue)) {
713
+ addPrefixedClass(`is-${displayValue}${viewportSuffix}`);
714
+ }
715
+ }
716
+ };
717
+ addDisplayClass(displayMobile, '-mobile');
718
+ addDisplayClass(displayTablet, '-tablet');
719
+ addDisplayClass(displayDesktop, '-desktop');
720
+ addDisplayClass(displayWidescreen, '-widescreen');
721
+ addDisplayClass(displayFullhd, '-fullhd');
722
+ const hasViewportSpecificDisplay = !!(displayMobile ||
723
+ displayTablet ||
724
+ displayDesktop ||
725
+ displayWidescreen ||
726
+ displayFullhd);
727
+ if (!hasViewportSpecificDisplay) {
728
+ if (display === 'none') {
729
+ if (viewport && validViewports.includes(viewport)) {
730
+ addPrefixedClass(`is-hidden-${viewport}`);
731
+ }
732
+ else {
733
+ addPrefixedClass('is-hidden');
734
+ }
735
+ }
736
+ else {
737
+ addClass('is', display, [...validDisplays]);
738
+ }
739
+ }
641
740
  if (visibility) {
642
741
  if (visibility === 'hidden' &&
643
742
  viewport &&
644
743
  validViewports.includes(viewport)) {
645
- classes.push(`is-hidden-${viewport}`);
744
+ addPrefixedClass(`is-hidden-${viewport}`);
646
745
  }
647
746
  else if (validVisibilities.includes(visibility)) {
648
- classes.push(`is-${visibility}`);
747
+ addPrefixedClass(`is-${visibility}`);
649
748
  }
650
749
  }
651
- if (display === 'flex' || display === 'inline-flex') {
750
+ const hasFlexDisplay = display === 'flex' ||
751
+ display === 'inline-flex' ||
752
+ displayMobile === 'flex' ||
753
+ displayMobile === 'inline-flex' ||
754
+ displayTablet === 'flex' ||
755
+ displayTablet === 'inline-flex' ||
756
+ displayDesktop === 'flex' ||
757
+ displayDesktop === 'inline-flex' ||
758
+ displayWidescreen === 'flex' ||
759
+ displayWidescreen === 'inline-flex' ||
760
+ displayFullhd === 'flex' ||
761
+ displayFullhd === 'inline-flex';
762
+ if (hasFlexDisplay) {
652
763
  addClass('is-flex-direction', flexDirection, validFlexDirections);
653
764
  addClass('is-flex-wrap', flexWrap, validFlexWraps);
654
765
  addClass('is-justify-content', justifyContent, validJustifyContents);
@@ -665,7 +776,7 @@ const useBulmaClasses = (props) => {
665
776
  addClass('is', overflow, ['clipped']);
666
777
  }
667
778
  if (overlay) {
668
- classes.push('is-overlay');
779
+ addPrefixedClass('is-overlay');
669
780
  }
670
781
  if (interaction) {
671
782
  addClass('is', interaction, ['unselectable', 'clickable']);
@@ -680,10 +791,11 @@ const useBulmaClasses = (props) => {
680
791
  addClass('is', responsive, ['mobile', 'narrow']);
681
792
  }
682
793
  if (skeleton) {
683
- classes.push('is-skeleton');
794
+ addPrefixedClass('is-skeleton');
684
795
  }
685
796
  return classNames(classes);
686
797
  }, [
798
+ classPrefix,
687
799
  color,
688
800
  backgroundColor,
689
801
  colorShade,
@@ -724,148 +836,70 @@ const useBulmaClasses = (props) => {
724
836
  shadow,
725
837
  responsive,
726
838
  viewport,
839
+ displayMobile,
840
+ displayTablet,
841
+ displayDesktop,
842
+ displayWidescreen,
843
+ displayFullhd,
727
844
  skeleton,
728
845
  ]);
729
846
  return { bulmaHelperClasses, rest };
730
847
  };
731
848
 
732
- const ConfigContext = createContext({});
733
- const useConfig = () => useContext(ConfigContext);
734
- const ConfigProvider = ({ classPrefix, children, }) => {
735
- return (jsxRuntimeExports.jsx(ConfigContext.Provider, { value: { classPrefix }, children: children }));
736
- };
737
- const useClassPrefix = () => {
738
- const { classPrefix } = useConfig();
739
- return classPrefix || '';
740
- };
741
-
742
- function getColumnClassNames(props) {
743
- const classList = [];
744
- const sizeProps = [
745
- { prop: 'size', prefix: 'is', suffix: '' },
746
- { prop: 'sizeMobile', prefix: 'is', suffix: 'mobile' },
747
- { prop: 'sizeTablet', prefix: 'is', suffix: 'tablet' },
748
- { prop: 'sizeDesktop', prefix: 'is', suffix: 'desktop' },
749
- { prop: 'sizeWidescreen', prefix: 'is', suffix: 'widescreen' },
750
- { prop: 'sizeFullhd', prefix: 'is', suffix: 'fullhd' },
751
- ];
752
- for (const { prop, prefix, suffix } of sizeProps) {
753
- const val = props[prop];
754
- if (val !== undefined && val !== null) {
755
- let className = `${prefix}-${val}`;
756
- if (suffix)
757
- className += `-${suffix}`;
758
- classList.push(className);
759
- }
760
- }
761
- const offsetProps = [
762
- { prop: 'offset', prefix: 'is-offset', suffix: '' },
763
- { prop: 'offsetMobile', prefix: 'is-offset', suffix: 'mobile' },
764
- { prop: 'offsetTablet', prefix: 'is-offset', suffix: 'tablet' },
765
- { prop: 'offsetDesktop', prefix: 'is-offset', suffix: 'desktop' },
766
- { prop: 'offsetWidescreen', prefix: 'is-offset', suffix: 'widescreen' },
767
- { prop: 'offsetFullhd', prefix: 'is-offset', suffix: 'fullhd' },
768
- ];
769
- for (const { prop, prefix, suffix } of offsetProps) {
770
- const val = props[prop];
771
- if (val !== undefined && val !== null) {
772
- let className = `${prefix}-${val}`;
773
- if (suffix)
774
- className += `-${suffix}`;
775
- classList.push(className);
776
- }
777
- }
778
- if (props.isNarrow)
779
- classList.push('is-narrow');
780
- if (props.isNarrowMobile)
781
- classList.push('is-narrow-mobile');
782
- if (props.isNarrowTablet)
783
- classList.push('is-narrow-tablet');
784
- if (props.isNarrowTouch)
785
- classList.push('is-narrow-touch');
786
- if (props.isNarrowDesktop)
787
- classList.push('is-narrow-desktop');
788
- if (props.isNarrowWidescreen)
789
- classList.push('is-narrow-widescreen');
790
- if (props.isNarrowFullhd)
791
- classList.push('is-narrow-fullhd');
792
- return classList;
793
- }
794
- 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 }) => {
849
+ const Column = ({ className, textColor, color: _fieldColor, bgColor, size, sizeMobile, sizeTablet, sizeDesktop, sizeWidescreen, sizeFullhd, offset, offsetMobile, offsetTablet, offsetDesktop, offsetWidescreen, offsetFullhd, isNarrow, isNarrowMobile, isNarrowTablet, isNarrowTouch, isNarrowDesktop, isNarrowWidescreen, isNarrowFullhd, children, ...props }) => {
795
850
  const { bulmaHelperClasses, rest } = useBulmaClasses({
796
851
  color: textColor,
797
852
  backgroundColor: bgColor,
798
853
  ...props,
799
854
  });
800
- const { classPrefix } = useConfig();
801
- const mainClass = classPrefix ? `${classPrefix}column` : 'column';
802
- const columnClasses = classNames(mainClass, ...getColumnClassNames({
803
- size,
804
- sizeMobile,
805
- sizeTablet,
806
- sizeDesktop,
807
- sizeWidescreen,
808
- sizeFullhd,
809
- offset,
810
- offsetMobile,
811
- offsetTablet,
812
- offsetDesktop,
813
- offsetWidescreen,
814
- offsetFullhd,
815
- isNarrow,
816
- isNarrowMobile,
817
- isNarrowTablet,
818
- isNarrowTouch,
819
- isNarrowDesktop,
820
- isNarrowWidescreen,
821
- isNarrowFullhd,
822
- }), className, bulmaHelperClasses);
855
+ const mainClass = usePrefixedClassNames('column');
856
+ const columnSpecificClasses = usePrefixedClassNames('', {
857
+ [`is-${size}`]: size !== undefined && size !== null,
858
+ [`is-${sizeMobile}-mobile`]: sizeMobile !== undefined && sizeMobile !== null,
859
+ [`is-${sizeTablet}-tablet`]: sizeTablet !== undefined && sizeTablet !== null,
860
+ [`is-${sizeDesktop}-desktop`]: sizeDesktop !== undefined && sizeDesktop !== null,
861
+ [`is-${sizeWidescreen}-widescreen`]: sizeWidescreen !== undefined && sizeWidescreen !== null,
862
+ [`is-${sizeFullhd}-fullhd`]: sizeFullhd !== undefined && sizeFullhd !== null,
863
+ [`is-offset-${offset}`]: offset !== undefined && offset !== null,
864
+ [`is-offset-${offsetMobile}-mobile`]: offsetMobile !== undefined && offsetMobile !== null,
865
+ [`is-offset-${offsetTablet}-tablet`]: offsetTablet !== undefined && offsetTablet !== null,
866
+ [`is-offset-${offsetDesktop}-desktop`]: offsetDesktop !== undefined && offsetDesktop !== null,
867
+ [`is-offset-${offsetWidescreen}-widescreen`]: offsetWidescreen !== undefined && offsetWidescreen !== null,
868
+ [`is-offset-${offsetFullhd}-fullhd`]: offsetFullhd !== undefined && offsetFullhd !== null,
869
+ 'is-narrow': !!isNarrow,
870
+ 'is-narrow-mobile': !!isNarrowMobile,
871
+ 'is-narrow-tablet': !!isNarrowTablet,
872
+ 'is-narrow-touch': !!isNarrowTouch,
873
+ 'is-narrow-desktop': !!isNarrowDesktop,
874
+ 'is-narrow-widescreen': !!isNarrowWidescreen,
875
+ 'is-narrow-fullhd': !!isNarrowFullhd,
876
+ });
877
+ const columnClasses = classNames(mainClass, columnSpecificClasses, className, bulmaHelperClasses);
823
878
  return (jsxRuntimeExports.jsx("div", { className: columnClasses, ...rest, children: children }));
824
879
  };
825
880
 
826
- function getGapClasses(props) {
827
- const gapClassMap = [
828
- { prop: 'gapSize', prefix: 'is' },
829
- { prop: 'gapSizeMobile', prefix: 'is', suffix: 'mobile' },
830
- { prop: 'gapSizeTablet', prefix: 'is', suffix: 'tablet' },
831
- { prop: 'gapSizeDesktop', prefix: 'is', suffix: 'desktop' },
832
- { prop: 'gapSizeWidescreen', prefix: 'is', suffix: 'widescreen' },
833
- { prop: 'gapSizeFullhd', prefix: 'is', suffix: 'fullhd' },
834
- ];
835
- return gapClassMap.flatMap(({ prop, prefix, suffix }) => {
836
- const val = props[prop];
837
- if (val !== undefined && val !== null) {
838
- let className = `${prefix}-${val}`;
839
- if (suffix)
840
- className += `-${suffix}`;
841
- return [className];
842
- }
843
- return [];
844
- });
845
- }
846
- const Columns = ({ className, textColor, bgColor, isCentered, isGapless, isMultiline, isVCentered, isMobile, isDesktop, gapSize, gapSizeMobile, gapSizeTablet, gapSizeDesktop, gapSizeWidescreen, gapSizeFullhd, children, ...props }) => {
881
+ const Columns = ({ className, textColor, color: _fieldColor, bgColor, isCentered, isGapless, isMultiline, isVCentered, isMobile, isDesktop, gapSize, gapSizeMobile, gapSizeTablet, gapSizeDesktop, gapSizeWidescreen, gapSizeFullhd, children, ...props }) => {
847
882
  const { bulmaHelperClasses, rest } = useBulmaClasses({
848
883
  color: textColor,
849
884
  backgroundColor: bgColor,
850
885
  ...props,
851
886
  });
852
- const { classPrefix } = useConfig();
853
- const mainClass = classPrefix ? `${classPrefix}columns` : 'columns';
854
- const columnsClasses = classNames(mainClass, {
855
- 'is-centered': isCentered,
856
- 'is-gapless': isGapless,
857
- 'is-multiline': isMultiline,
858
- 'is-vcentered': isVCentered,
859
- 'is-mobile': isMobile,
860
- 'is-desktop': isDesktop,
861
- }, ...getGapClasses({
862
- gapSize,
863
- gapSizeMobile,
864
- gapSizeTablet,
865
- gapSizeDesktop,
866
- gapSizeWidescreen,
867
- gapSizeFullhd,
868
- }), className, bulmaHelperClasses);
887
+ const mainClass = usePrefixedClassNames('columns');
888
+ const gapClasses = usePrefixedClassNames('', {
889
+ [`is-${gapSize}`]: gapSize !== undefined && gapSize !== null,
890
+ [`is-${gapSizeMobile}-mobile`]: gapSizeMobile !== undefined && gapSizeMobile !== null,
891
+ [`is-${gapSizeTablet}-tablet`]: gapSizeTablet !== undefined && gapSizeTablet !== null,
892
+ [`is-${gapSizeDesktop}-desktop`]: gapSizeDesktop !== undefined && gapSizeDesktop !== null,
893
+ [`is-${gapSizeWidescreen}-widescreen`]: gapSizeWidescreen !== undefined && gapSizeWidescreen !== null,
894
+ [`is-${gapSizeFullhd}-fullhd`]: gapSizeFullhd !== undefined && gapSizeFullhd !== null,
895
+ 'is-centered': !!isCentered,
896
+ 'is-gapless': !!isGapless,
897
+ 'is-multiline': !!isMultiline,
898
+ 'is-vcentered': !!isVCentered,
899
+ 'is-mobile': !!isMobile,
900
+ 'is-desktop': !!isDesktop,
901
+ });
902
+ const columnsClasses = classNames(mainClass, gapClasses, className, bulmaHelperClasses);
869
903
  return (jsxRuntimeExports.jsx("div", { className: columnsClasses, ...rest, children: children }));
870
904
  };
871
905
 
@@ -878,14 +912,13 @@ const validBreadcrumbSeparators = [
878
912
  ];
879
913
  const validBreadcrumbSizes = ['small', 'medium', 'large'];
880
914
  const Breadcrumb = ({ className, alignment, separator, size, children, ...props }) => {
881
- const { classPrefix } = useConfig();
882
915
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
883
- const mainClass = classPrefix ? `${classPrefix}breadcrumb` : 'breadcrumb';
884
- const breadcrumbClasses = classNames(mainClass, className, bulmaHelperClasses, {
916
+ const bulmaClasses = usePrefixedClassNames('breadcrumb', {
885
917
  [`is-${alignment}`]: alignment && validBreadcrumbAlignments.includes(alignment),
886
918
  [`has-${separator}-separator`]: separator && validBreadcrumbSeparators.includes(separator),
887
919
  [`is-${size}`]: size && validBreadcrumbSizes.includes(size),
888
920
  });
921
+ const breadcrumbClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
889
922
  return (jsxRuntimeExports.jsx("nav", { className: breadcrumbClasses, "aria-label": "breadcrumbs", ...rest, children: jsxRuntimeExports.jsx("ul", { children: children }) }));
890
923
  };
891
924
 
@@ -896,16 +929,15 @@ const renderFooter = (footer) => {
896
929
  return items.map((item, idx) => (jsxRuntimeExports.jsx("span", { className: "card-footer-item", children: item }, idx)));
897
930
  };
898
931
  const Card = ({ className, children, textColor, bgColor, hasShadow = true, header, headerCentered, headerIcon, footer, image, imageAlt, ...props }) => {
899
- const { classPrefix } = useConfig();
900
932
  const { bulmaHelperClasses, rest } = useBulmaClasses({
901
933
  color: textColor,
902
934
  backgroundColor: bgColor,
903
935
  ...props,
904
936
  });
905
- const mainClass = classPrefix ? `${classPrefix}card` : 'card';
906
- const cardClasses = classNames(mainClass, className, bulmaHelperClasses, {
937
+ const bulmaClasses = usePrefixedClassNames('card', {
907
938
  'is-shadowless': !hasShadow,
908
939
  });
940
+ const cardClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
909
941
  const renderHeader = (header, headerIcon, headerCentered) => {
910
942
  if (!header && !headerIcon)
911
943
  return null;
@@ -921,12 +953,17 @@ const __test_exports__ = { renderFooter };
921
953
 
922
954
  const isBrowser = (win, doc) => typeof win !== 'undefined' && typeof doc !== 'undefined';
923
955
  const DropdownComponent = ({ label, children, className, menuClassName, active: activeProp, up, right, hoverable, disabled, onActiveChange, closeOnClick = true, id, ...props }) => {
924
- const { classPrefix } = useConfig();
925
956
  const [active, setActive] = useState(!!activeProp);
926
957
  const dropdownRef = useRef(null);
927
958
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
928
- const mainClass = classPrefix ? `${classPrefix}dropdown` : 'dropdown';
929
- const buttonClass = classPrefix ? `${classPrefix}button` : 'button';
959
+ const bulmaClasses = usePrefixedClassNames('dropdown', {
960
+ 'is-active': active,
961
+ 'is-up': up,
962
+ 'is-right': right,
963
+ 'is-hoverable': hoverable,
964
+ 'is-disabled': disabled,
965
+ });
966
+ const buttonClass = usePrefixedClassNames('button');
930
967
  useEffect(() => {
931
968
  if (typeof activeProp === 'boolean')
932
969
  setActive(activeProp);
@@ -959,13 +996,7 @@ const DropdownComponent = ({ label, children, className, menuClassName, active:
959
996
  onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(false);
960
997
  }
961
998
  };
962
- const dropdownClasses = classNames(mainClass, bulmaHelperClasses, {
963
- 'is-active': active,
964
- 'is-up': up,
965
- 'is-right': right,
966
- 'is-hoverable': hoverable,
967
- 'is-disabled': disabled,
968
- }, className);
999
+ const dropdownClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
969
1000
  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: buttonClass, "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 }) })] }));
970
1001
  };
971
1002
  const DropdownItem = ({ children, active, className, as: Component = 'a', ...props }) => {
@@ -980,10 +1011,9 @@ const Dropdown = Object.assign(DropdownComponent, {
980
1011
 
981
1012
  const MenuListLevelContext = createContext(0);
982
1013
  const MenuComponent = ({ className, children, ...props }) => {
983
- const { classPrefix } = useConfig();
984
1014
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
985
- const mainClass = classPrefix ? `${classPrefix}menu` : 'menu';
986
- return (jsxRuntimeExports.jsx("aside", { className: classNames(mainClass, className, bulmaHelperClasses), ...rest, children: children }));
1015
+ const bulmaClasses = usePrefixedClassNames('menu');
1016
+ return (jsxRuntimeExports.jsx("aside", { className: classNames(bulmaClasses, bulmaHelperClasses, className), ...rest, children: children }));
987
1017
  };
988
1018
  const MenuLabel = ({ className, children, ...props }) => {
989
1019
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
@@ -1026,20 +1056,20 @@ const Menu = Object.assign(MenuComponent, {
1026
1056
  });
1027
1057
 
1028
1058
  const Message = ({ className, title, textColor, color, bgColor, onClose, children, ...props }) => {
1029
- const { classPrefix } = useConfig();
1030
1059
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1031
1060
  color: textColor,
1032
1061
  backgroundColor: bgColor,
1033
1062
  ...props,
1034
1063
  });
1035
- const mainClass = classPrefix ? `${classPrefix}message` : 'message';
1036
- const deleteClass = classPrefix ? `${classPrefix}delete` : 'delete';
1037
- const messageClasses = classNames(mainClass, color && `is-${color}`, className, bulmaHelperClasses);
1064
+ const bulmaClasses = usePrefixedClassNames('message', {
1065
+ [`is-${color}`]: color,
1066
+ });
1067
+ const deleteClass = usePrefixedClassNames('delete');
1068
+ const messageClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1038
1069
  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: deleteClass, "aria-label": "delete", onClick: onClose, type: "button", "data-testid": "message-close" }))] })), children && (jsxRuntimeExports.jsx("div", { className: "message-body", "data-testid": "message-body", children: children }))] }));
1039
1070
  };
1040
1071
 
1041
1072
  const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCardTitle, modalCardFoot, type, children, ...props }) => {
1042
- const { classPrefix } = useConfig();
1043
1073
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1044
1074
  color: textColor,
1045
1075
  backgroundColor: bgColor,
@@ -1052,25 +1082,26 @@ const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCa
1052
1082
  isModalCard = false;
1053
1083
  else
1054
1084
  isModalCard = !!modalCardTitle || !!modalCardFoot;
1055
- const mainClass = classPrefix ? `${classPrefix}modal` : 'modal';
1056
- const deleteClass = classPrefix ? `${classPrefix}delete` : 'delete';
1057
- const modalClasses = classNames(mainClass, { 'is-active': active }, className, bulmaHelperClasses);
1085
+ const bulmaClasses = usePrefixedClassNames('modal', {
1086
+ 'is-active': active,
1087
+ });
1088
+ const deleteClass = usePrefixedClassNames('delete');
1089
+ const modalClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1058
1090
  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: deleteClass, "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" }))] }));
1059
1091
  };
1060
1092
 
1061
1093
  const Navbar = ({ className, textColor, bgColor, color, transparent, fixed, children, ...props }) => {
1062
- const { classPrefix } = useConfig();
1063
1094
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1064
1095
  color: textColor,
1065
1096
  backgroundColor: bgColor,
1066
1097
  ...props,
1067
1098
  });
1068
- const mainClass = classPrefix ? `${classPrefix}navbar` : 'navbar';
1069
- const navbarClasses = classNames(mainClass, bulmaHelperClasses, className, {
1099
+ const bulmaClasses = usePrefixedClassNames('navbar', {
1070
1100
  [`is-${color}`]: color,
1071
1101
  'is-transparent': transparent,
1072
1102
  [`is-fixed-${fixed}`]: fixed,
1073
1103
  });
1104
+ const navbarClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1074
1105
  return (jsxRuntimeExports.jsx("nav", { className: navbarClasses, role: "navigation", "aria-label": "main navigation", ...rest, children: children }));
1075
1106
  };
1076
1107
  const NavbarBrand = ({ className, children, textColor, ...props }) => {
@@ -1157,19 +1188,18 @@ const PaginationNext = ({ className, disabled, children, ...props }) => (jsxRunt
1157
1188
  }
1158
1189
  : props.onClick, children: children }));
1159
1190
  const Pagination = ({ color, textColor, bgColor, size, align, rounded, className, children, ...props }) => {
1160
- const { classPrefix } = useConfig();
1161
1191
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1162
1192
  color: textColor,
1163
1193
  backgroundColor: bgColor,
1164
1194
  ...props,
1165
1195
  });
1166
- const mainClass = classPrefix ? `${classPrefix}pagination` : 'pagination';
1167
- const paginationClasses = classNames(mainClass, bulmaHelperClasses, className, {
1196
+ const bulmaClasses = usePrefixedClassNames('pagination', {
1168
1197
  [`is-${color}`]: color,
1169
1198
  [`is-${size}`]: size,
1170
1199
  [`is-${align}`]: align,
1171
1200
  'is-rounded': rounded,
1172
1201
  });
1202
+ const paginationClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1173
1203
  return (jsxRuntimeExports.jsx("nav", { className: paginationClasses, role: "navigation", "aria-label": "pagination", ...rest, children: children }));
1174
1204
  };
1175
1205
  const PaginationList = ({ className, textColor, bgColor, children, ...props }) => {
@@ -1209,15 +1239,14 @@ Pagination.Previous = PaginationPrevious;
1209
1239
  Pagination.Next = PaginationNext;
1210
1240
 
1211
1241
  const Panel = ({ color, className, children, ...props }) => {
1212
- const { classPrefix } = useConfig();
1213
1242
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1214
1243
  color,
1215
1244
  ...props,
1216
1245
  });
1217
- const mainClass = classPrefix ? `${classPrefix}panel` : 'panel';
1218
- const panelClasses = classNames(mainClass, bulmaHelperClasses, className, {
1246
+ const bulmaClasses = usePrefixedClassNames('panel', {
1219
1247
  [`is-${color}`]: color,
1220
1248
  });
1249
+ const panelClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1221
1250
  return (jsxRuntimeExports.jsx("nav", { className: panelClasses, ...rest, children: children }));
1222
1251
  };
1223
1252
  const PanelHeading = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("p", { className: classNames('panel-heading', className), ...props, children: children }));
@@ -1225,8 +1254,7 @@ const PanelTabs = ({ className, children, ...props }) => (jsxRuntimeExports.jsx(
1225
1254
  const PanelBlock = ({ className, active, children, ...props }) => (jsxRuntimeExports.jsx("a", { className: classNames('panel-block', className, { 'is-active': active }), ...props, children: children }));
1226
1255
  const PanelIcon = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("span", { className: classNames('panel-icon', className), ...props, children: children }));
1227
1256
  const PanelInputBlock = ({ value, onChange, placeholder, iconClassName = 'fas fa-search', ...props }) => {
1228
- const { classPrefix } = useConfig();
1229
- const inputClass = classPrefix ? `${classPrefix}input` : 'input';
1257
+ const inputClass = usePrefixedClassNames('input');
1230
1258
  return (jsxRuntimeExports.jsx("div", { className: "panel-block", ...props, children: jsxRuntimeExports.jsxs("p", { className: "control has-icons-left", children: [jsxRuntimeExports.jsx("input", { className: inputClass, type: "text", placeholder: placeholder, value: value, onChange: onChange }), jsxRuntimeExports.jsx("span", { className: "icon is-left", children: jsxRuntimeExports.jsx("i", { className: iconClassName, "aria-hidden": "true" }) })] }) }));
1231
1259
  };
1232
1260
  const PanelCheckboxBlock = ({ checked, onChange, children, ...props }) => (jsxRuntimeExports.jsxs("label", { className: "panel-block", ...props, children: [jsxRuntimeExports.jsx("input", { type: "checkbox", checked: checked, onChange: onChange }), children] }));
@@ -1240,21 +1268,19 @@ Panel.CheckboxBlock = PanelCheckboxBlock;
1240
1268
  Panel.ButtonBlock = PanelButtonBlock;
1241
1269
 
1242
1270
  const Tabs = ({ align, size, fullwidth, boxed, toggle, rounded, color, className, children, ...props }) => {
1243
- const { classPrefix } = useConfig();
1244
1271
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1245
- color,
1246
1272
  ...props,
1247
1273
  });
1248
- const mainClass = classPrefix ? `${classPrefix}tabs` : 'tabs';
1249
- const tabsClass = classNames(mainClass, bulmaHelperClasses, {
1274
+ const bulmaClasses = usePrefixedClassNames('tabs', {
1250
1275
  [`is-${align}`]: align,
1251
1276
  [`is-${size}`]: size,
1277
+ [`is-${color}`]: color,
1252
1278
  'is-fullwidth': fullwidth,
1253
1279
  'is-boxed': boxed,
1254
1280
  'is-toggle': toggle,
1255
- 'is-toggle-rounded': toggle && rounded,
1256
- [`is-${color}`]: color,
1257
- }, className);
1281
+ 'is-toggle-rounded': rounded,
1282
+ });
1283
+ const tabsClass = classNames(bulmaClasses, bulmaHelperClasses, className);
1258
1284
  return (jsxRuntimeExports.jsx("div", { className: tabsClass, ...rest, children: children }));
1259
1285
  };
1260
1286
  const TabList = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("ul", { className: classNames(className), ...props, children: children }));
@@ -1263,106 +1289,100 @@ Tabs.List = TabList;
1263
1289
  Tabs.Item = TabItem;
1264
1290
 
1265
1291
  const Block = ({ className, textColor, bgColor, children, ...props }) => {
1266
- const { classPrefix } = useConfig();
1267
1292
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1268
1293
  color: textColor,
1269
1294
  backgroundColor: bgColor,
1270
1295
  ...props,
1271
1296
  });
1272
- const mainClass = classPrefix ? `${classPrefix}block` : 'block';
1273
- const blockClasses = classNames(mainClass, className, bulmaHelperClasses);
1297
+ const bulmaClasses = usePrefixedClassNames('block');
1298
+ const blockClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1274
1299
  return (jsxRuntimeExports.jsx("div", { className: blockClasses, ...rest, children: children }));
1275
1300
  };
1276
1301
 
1277
1302
  const Box = ({ className, textColor, bgColor, hasShadow = true, children, ...props }) => {
1278
- const { classPrefix } = useConfig();
1279
1303
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1280
1304
  color: textColor,
1281
1305
  backgroundColor: bgColor,
1282
1306
  ...props,
1283
1307
  });
1284
- const mainClass = classPrefix ? `${classPrefix}box` : 'box';
1285
- const boxClasses = classNames(mainClass, className, bulmaHelperClasses, {
1308
+ const bulmaClasses = usePrefixedClassNames('box', {
1286
1309
  'is-shadowless': !hasShadow,
1287
1310
  });
1311
+ const boxClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1288
1312
  return (jsxRuntimeExports.jsx("div", { className: boxClasses, ...rest, children: children }));
1289
1313
  };
1290
1314
 
1291
1315
  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 }) => {
1292
- const { classPrefix } = useConfig();
1293
1316
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1294
1317
  color: textColor,
1295
1318
  backgroundColor: bgColor,
1296
1319
  ...props,
1297
1320
  });
1298
- const mainClass = classPrefix ? `${classPrefix}button` : 'button';
1299
- const buttonClasses = classNames(mainClass, className, bulmaHelperClasses, {
1300
- [`is-${color}`]: color,
1301
- [`is-${size}`]: size && size !== 'normal',
1321
+ const bulmaClasses = usePrefixedClassNames('button', {
1322
+ [`is-${color}`]: color && validColors.includes(color),
1323
+ [`is-${size}`]: size,
1324
+ 'is-outlined': isOutlined,
1302
1325
  'is-light': isLight,
1303
- 'is-rounded': isRounded,
1304
1326
  'is-loading': isLoading,
1305
1327
  'is-static': isStatic,
1306
- 'is-fullwidth': isFullWidth,
1307
- 'is-outlined': isOutlined,
1308
- 'is-inverted': isInverted,
1328
+ 'is-disabled': isDisabled,
1329
+ 'is-rounded': isRounded,
1330
+ 'is-hovered': isHovered,
1309
1331
  'is-focused': isFocused,
1310
1332
  'is-active': isActive,
1311
- 'is-hovered': isHovered,
1312
- 'is-disabled': isDisabled,
1333
+ 'is-inverted': isInverted,
1334
+ 'is-fullwidth': isFullWidth,
1313
1335
  });
1336
+ const buttonClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1314
1337
  if (as === 'a') {
1315
- const { ...anchorRest } = rest;
1338
+ const { type: _type, disabled: _disabled, form: _form, formAction: _formAction, formEncType: _formEncType, formMethod: _formMethod, formNoValidate: _formNoValidate, formTarget: _formTarget, name: _name, value: _value, autoFocus: _autoFocus, ...anchorRest } = rest;
1316
1339
  return (jsxRuntimeExports.jsx("a", { className: buttonClasses, href: href, target: target, rel: rel, "aria-disabled": isDisabled, tabIndex: isDisabled ? -1 : undefined, onClick: isDisabled
1317
- ? e => e.preventDefault()
1340
+ ? (e) => e.preventDefault()
1318
1341
  : onClick, ...anchorRest, children: children }));
1319
1342
  }
1320
1343
  return (jsxRuntimeExports.jsx("button", { className: buttonClasses, disabled: isDisabled, onClick: onClick, ...rest, children: children }));
1321
1344
  };
1322
1345
 
1323
1346
  const Buttons = ({ className, textColor, bgColor, isCentered, isRight, hasAddons, children, ...props }) => {
1324
- const { classPrefix } = useConfig();
1347
+ const buttonsClasses = usePrefixedClassNames('buttons', {
1348
+ 'is-centered': isCentered,
1349
+ 'is-right': isRight,
1350
+ 'has-addons': hasAddons,
1351
+ });
1325
1352
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1326
1353
  color: textColor,
1327
1354
  backgroundColor: bgColor,
1328
1355
  ...props,
1329
1356
  });
1330
- const mainClass = classPrefix ? `${classPrefix}buttons` : 'buttons';
1331
- const buttonsClasses = classNames(mainClass, className, bulmaHelperClasses, {
1332
- 'is-centered': isCentered,
1333
- 'is-right': isRight,
1334
- 'has-addons': hasAddons,
1335
- });
1336
- return (jsxRuntimeExports.jsx("div", { className: buttonsClasses, ...rest, children: children }));
1357
+ const combinedClasses = classNames(buttonsClasses, className, bulmaHelperClasses);
1358
+ return (jsxRuntimeExports.jsx("div", { className: combinedClasses, ...rest, children: children }));
1337
1359
  };
1338
1360
 
1339
1361
  const validSizes = ['small', 'medium', 'large'];
1340
1362
  const Content = ({ className, textColor, bgColor, size, children, ...props }) => {
1341
- const { classPrefix } = useConfig();
1342
1363
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1343
1364
  color: textColor,
1344
1365
  backgroundColor: bgColor,
1345
1366
  ...props,
1346
1367
  });
1347
- const mainClass = classPrefix ? `${classPrefix}content` : 'content';
1348
- const contentClasses = classNames(mainClass, className, bulmaHelperClasses, {
1368
+ const bulmaClasses = usePrefixedClassNames('content', {
1349
1369
  [`is-${size}`]: size && size !== 'normal' && validSizes.includes(size),
1350
1370
  });
1371
+ const contentClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1351
1372
  return (jsxRuntimeExports.jsx("div", { className: contentClasses, ...rest, children: children }));
1352
1373
  };
1353
1374
 
1354
1375
  const Delete = ({ className, textColor, bgColor, onClick, size, ariaLabel = 'Close', disabled = false, ...props }) => {
1355
- const { classPrefix } = useConfig();
1356
1376
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1357
1377
  color: textColor,
1358
1378
  backgroundColor: bgColor,
1359
1379
  ...props,
1360
1380
  });
1361
- const mainClass = classPrefix ? `${classPrefix}delete` : 'delete';
1362
- const classes = classNames(mainClass, {
1381
+ const bulmaClasses = usePrefixedClassNames('delete', {
1363
1382
  [`is-${size}`]: size,
1364
1383
  'is-disabled': disabled,
1365
- }, bulmaHelperClasses, className);
1384
+ });
1385
+ const classes = classNames(bulmaClasses, bulmaHelperClasses, className);
1366
1386
  return (jsxRuntimeExports.jsx("button", { className: classes, onClick: onClick, "aria-label": ariaLabel, disabled: disabled, type: "button", ...rest }));
1367
1387
  };
1368
1388
 
@@ -1395,44 +1415,41 @@ function getIconClasses(library, name, libraryFeatures) {
1395
1415
  }
1396
1416
  }
1397
1417
  const Icon = ({ className, textColor, bgColor, name, library = 'fa', libraryFeatures, size, ariaLabel = 'icon', style, ...props }) => {
1398
- const { classPrefix } = useConfig();
1399
1418
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1400
1419
  color: textColor,
1401
1420
  backgroundColor: bgColor,
1402
1421
  ...props,
1403
1422
  });
1404
- const mainClass = classPrefix ? `${classPrefix}icon` : 'icon';
1405
- const iconContainerClasses = classNames(mainClass, {
1423
+ const bulmaClasses = usePrefixedClassNames('icon', {
1406
1424
  [`is-${size}`]: size,
1407
- }, bulmaHelperClasses, className);
1425
+ });
1426
+ const iconContainerClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1408
1427
  const iClasses = getIconClasses(library, name, libraryFeatures);
1409
1428
  return (jsxRuntimeExports.jsx("span", { className: iconContainerClasses, "aria-label": ariaLabel, style: style, ...rest, children: jsxRuntimeExports.jsx("i", { className: iClasses }) }));
1410
1429
  };
1411
1430
 
1412
1431
  const IconText = ({ className, textColor, bgColor, iconProps, children, items, ...props }) => {
1413
- const { classPrefix } = useConfig();
1414
1432
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1415
1433
  color: textColor,
1416
1434
  backgroundColor: bgColor,
1417
1435
  ...props,
1418
1436
  });
1419
- const mainClass = classPrefix ? `${classPrefix}icon-text` : 'icon-text';
1420
- const iconTextClasses = classNames(mainClass, bulmaHelperClasses, className);
1437
+ const bulmaClasses = usePrefixedClassNames('icon-text');
1438
+ const iconTextClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1421
1439
  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 })] })) }));
1422
1440
  };
1423
1441
 
1424
1442
  const Image = ({ as, className, textColor, bgColor, size, isRounded, isRetina, src, alt, children, ...props }) => {
1425
- const { classPrefix } = useConfig();
1426
1443
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1427
1444
  color: textColor,
1428
1445
  backgroundColor: bgColor,
1429
1446
  ...props,
1430
1447
  });
1431
- const mainClass = classPrefix ? `${classPrefix}image` : 'image';
1432
- const imageClasses = classNames(mainClass, className, bulmaHelperClasses, {
1448
+ const bulmaClasses = usePrefixedClassNames('image', {
1433
1449
  [`is-${size}`]: size,
1434
1450
  'has-ratio': size && typeof size === 'string' && size.includes('by'),
1435
1451
  });
1452
+ const imageClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1436
1453
  let Tag;
1437
1454
  if (as) {
1438
1455
  Tag = as;
@@ -1443,48 +1460,42 @@ const Image = ({ as, className, textColor, bgColor, size, isRounded, isRetina, s
1443
1460
  else {
1444
1461
  Tag = 'div';
1445
1462
  }
1446
- const content = children ? (children) : (jsxRuntimeExports.jsx("img", { className: classNames({ 'is-rounded': isRounded }), src: src, alt: alt, ...(isRetina && src ? { srcSet: `${src} 2x` } : {}) }));
1463
+ const roundedClass = usePrefixedClassNames('is-rounded');
1464
+ const content = children ? (children) : (jsxRuntimeExports.jsx("img", { className: classNames({ [roundedClass]: isRounded }), src: src, alt: alt, ...(isRetina && src ? { srcSet: `${src} 2x` } : {}) }));
1447
1465
  return (jsxRuntimeExports.jsx(Tag, { className: imageClasses, ...rest, children: content }));
1448
1466
  };
1449
1467
 
1450
1468
  const Notification = ({ className, color, isLight, hasDelete, onDelete, children, ...props }) => {
1451
- const { classPrefix } = useConfig();
1452
1469
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1453
1470
  ...props,
1454
1471
  });
1455
- const mainClass = classPrefix ? `${classPrefix}notification` : 'notification';
1456
- const deleteClass = classPrefix ? `${classPrefix}delete` : 'delete';
1457
- const notificationClasses = classNames(mainClass, className, bulmaHelperClasses, {
1472
+ const bulmaClasses = usePrefixedClassNames('notification', {
1458
1473
  [`is-${color}`]: color && validColors.includes(color),
1459
1474
  'is-light': isLight,
1460
1475
  });
1461
- return (jsxRuntimeExports.jsxs("div", { className: notificationClasses, ...rest, children: [hasDelete && (jsxRuntimeExports.jsx("button", { className: deleteClass, onClick: onDelete, "aria-label": "Close notification" })), children] }));
1476
+ const deleteClasses = usePrefixedClassNames('delete');
1477
+ const notificationClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1478
+ return (jsxRuntimeExports.jsxs("div", { className: notificationClasses, ...rest, children: [hasDelete && (jsxRuntimeExports.jsx("button", { className: deleteClasses, onClick: onDelete, "aria-label": "Close notification" })), children] }));
1462
1479
  };
1463
1480
 
1464
1481
  const Progress = ({ className, color, size, value, max, children, ...props }) => {
1465
- const { classPrefix } = useConfig();
1466
1482
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1467
1483
  ...props,
1468
1484
  });
1469
- const mainClass = classPrefix ? `${classPrefix}progress` : 'progress';
1470
- const progressClasses = classNames(mainClass, className, bulmaHelperClasses, {
1485
+ const bulmaClasses = usePrefixedClassNames('progress', {
1471
1486
  [`is-${color}`]: color && validColors.includes(color),
1472
1487
  [`is-${size}`]: size,
1473
1488
  });
1489
+ const progressClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1474
1490
  return (jsxRuntimeExports.jsx("progress", { className: progressClasses, value: value, max: max, ...rest, children: children }));
1475
1491
  };
1476
1492
 
1477
1493
  const Skeleton = ({ className, variant = 'block', lines = 3, children, ...props }) => {
1478
- const { classPrefix } = useConfig();
1494
+ const linesClass = usePrefixedClassNames('skeleton-lines');
1495
+ const blockClass = usePrefixedClassNames('skeleton-block');
1479
1496
  if (variant === 'lines') {
1480
- const linesClass = classPrefix
1481
- ? `${classPrefix}skeleton-lines`
1482
- : 'skeleton-lines';
1483
1497
  return (jsxRuntimeExports.jsx("div", { className: classNames(linesClass, className), ...props, children: Array.from({ length: lines }).map((_, i) => (jsxRuntimeExports.jsx("div", {}, i))) }));
1484
1498
  }
1485
- const blockClass = classPrefix
1486
- ? `${classPrefix}skeleton-block`
1487
- : 'skeleton-block';
1488
1499
  return (jsxRuntimeExports.jsx("div", { className: classNames(blockClass, className), ...props, children: children }));
1489
1500
  };
1490
1501
 
@@ -1499,35 +1510,31 @@ const validSubTitleElements = [
1499
1510
  'p',
1500
1511
  ];
1501
1512
  const SubTitle = ({ className, size, as = 'h1', hasSkeleton, children, ...props }) => {
1502
- const { classPrefix } = useConfig();
1503
1513
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1504
1514
  const element = validSubTitleElements.includes(as) ? as : 'h1';
1505
1515
  const validSize = size && validSubTitleSizes.includes(size) ? size : undefined;
1506
- const mainClass = classPrefix ? `${classPrefix}subtitle` : 'subtitle';
1507
- const subTitleClasses = classNames(mainClass, className, bulmaHelperClasses, {
1516
+ const bulmaClasses = usePrefixedClassNames('subtitle', {
1508
1517
  [`is-${validSize}`]: validSize,
1509
1518
  'has-skeleton': hasSkeleton,
1510
1519
  });
1520
+ const subTitleClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1511
1521
  const Tag = element === 'p' ? 'p' : validSize ? `h${validSize}` : element;
1512
1522
  return (jsxRuntimeExports.jsx(Tag, { className: subTitleClasses, ...rest, children: children }));
1513
1523
  };
1514
1524
 
1515
1525
  const Table = ({ className, isBordered, isStriped, isNarrow, isHoverable, isFullwidth, isResponsive, children, ...props }) => {
1516
- const { classPrefix } = useConfig();
1517
1526
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1518
- const mainClass = classPrefix ? `${classPrefix}table` : 'table';
1519
- const tableClasses = classNames(mainClass, className, bulmaHelperClasses, {
1527
+ const bulmaClasses = usePrefixedClassNames('table', {
1520
1528
  'is-bordered': isBordered,
1521
1529
  'is-striped': isStriped,
1522
1530
  'is-narrow': isNarrow,
1523
1531
  'is-hoverable': isHoverable,
1524
1532
  'is-fullwidth': isFullwidth,
1525
1533
  });
1534
+ const containerClass = usePrefixedClassNames('table-container');
1535
+ const tableClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1526
1536
  const tableElement = (jsxRuntimeExports.jsx("table", { className: tableClasses, ...rest, children: children }));
1527
1537
  if (isResponsive) {
1528
- const containerClass = classPrefix
1529
- ? `${classPrefix}table-container`
1530
- : 'table-container';
1531
1538
  return jsxRuntimeExports.jsx("div", { className: containerClass, children: tableElement });
1532
1539
  }
1533
1540
  return tableElement;
@@ -1547,16 +1554,15 @@ const validTagColors = [
1547
1554
  ];
1548
1555
  const validTagSizes = ['normal', 'medium', 'large'];
1549
1556
  const Tag = ({ className, color, size, isRounded, isDelete, isHoverable, onDelete, children, ...props }) => {
1550
- const { classPrefix } = useConfig();
1551
1557
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1552
- const mainClass = classPrefix ? `${classPrefix}tag` : 'tag';
1553
- const tagClasses = classNames(mainClass, className, bulmaHelperClasses, {
1558
+ const bulmaClasses = usePrefixedClassNames('tag', {
1554
1559
  [`is-${color}`]: color && validTagColors.includes(color),
1555
1560
  [`is-${size}`]: size && size !== 'normal' && validTagSizes.includes(size),
1556
1561
  'is-rounded': isRounded,
1557
1562
  'is-delete': isDelete,
1558
1563
  'is-hoverable': isHoverable,
1559
1564
  });
1565
+ const tagClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1560
1566
  if (isDelete) {
1561
1567
  return (jsxRuntimeExports.jsx("button", { className: tagClasses, onClick: onDelete, "aria-label": "Delete tag", ...rest }));
1562
1568
  }
@@ -1564,13 +1570,12 @@ const Tag = ({ className, color, size, isRounded, isDelete, isHoverable, onDelet
1564
1570
  };
1565
1571
 
1566
1572
  const Tags = ({ className, hasAddons, isMultiline, children, ...props }) => {
1567
- const { classPrefix } = useConfig();
1568
1573
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1569
- const mainClass = classPrefix ? `${classPrefix}tags` : 'tags';
1570
- const tagsClasses = classNames(mainClass, className, bulmaHelperClasses, {
1574
+ const bulmaClasses = usePrefixedClassNames('tags', {
1571
1575
  'has-addons': hasAddons,
1572
1576
  'are-multiline': isMultiline,
1573
1577
  });
1578
+ const tagsClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1574
1579
  return (jsxRuntimeExports.jsx("div", { className: tagsClasses, ...rest, children: children }));
1575
1580
  };
1576
1581
 
@@ -1593,10 +1598,11 @@ const validTableColors = [
1593
1598
  'white',
1594
1599
  ];
1595
1600
  const Td = ({ className, color, children, ...props }) => {
1596
- const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1597
- const tdClasses = classNames(className, bulmaHelperClasses, {
1601
+ const colorClass = usePrefixedClassNames('', {
1598
1602
  [`is-${color}`]: color && validTableColors.includes(color),
1599
1603
  });
1604
+ const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1605
+ const tdClasses = classNames(colorClass, className, bulmaHelperClasses);
1600
1606
  return (jsxRuntimeExports.jsx("td", { className: tdClasses, ...rest, children: children }));
1601
1607
  };
1602
1608
 
@@ -1608,11 +1614,12 @@ const Tfoot = ({ className, children, ...props }) => {
1608
1614
 
1609
1615
  const validAlignments = ['left', 'right', 'centered'];
1610
1616
  const Th = ({ className, isAligned, width, color, children, ...props }) => {
1611
- const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1612
- const thClasses = classNames(className, bulmaHelperClasses, {
1617
+ const bulmaClasses = usePrefixedClassNames('', {
1613
1618
  [`has-text-${isAligned}`]: isAligned && validAlignments.includes(isAligned),
1614
1619
  [`is-${color}`]: color && validTableColors.includes(color),
1615
1620
  });
1621
+ const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1622
+ const thClasses = classNames(bulmaClasses, className, bulmaHelperClasses);
1616
1623
  return (jsxRuntimeExports.jsx("th", { className: thClasses, style: width
1617
1624
  ? { width: typeof width === 'number' ? `${width}px` : width }
1618
1625
  : undefined, ...rest, children: children }));
@@ -1627,46 +1634,44 @@ const Thead = ({ className, children, ...props }) => {
1627
1634
  const validTitleSizes = ['1', '2', '3', '4', '5', '6'];
1628
1635
  const validTitleElements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'];
1629
1636
  const Title = ({ className, size, isSpaced, as = 'h1', hasSkeleton, children, ...props }) => {
1630
- const { classPrefix } = useConfig();
1631
1637
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1632
1638
  const element = validTitleElements.includes(as) ? as : 'h1';
1633
1639
  const validSize = size && validTitleSizes.includes(size) ? size : undefined;
1634
- const mainClass = classPrefix ? `${classPrefix}title` : 'title';
1635
- const titleClasses = classNames(mainClass, className, bulmaHelperClasses, {
1640
+ const bulmaClasses = usePrefixedClassNames('title', {
1636
1641
  [`is-${validSize}`]: validSize,
1637
1642
  'is-spaced': isSpaced,
1638
1643
  'has-skeleton': hasSkeleton,
1639
1644
  });
1645
+ const titleClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1640
1646
  const Tag = element === 'p' ? 'p' : validSize ? `h${validSize}` : element;
1641
1647
  return (jsxRuntimeExports.jsx(Tag, { className: titleClasses, ...rest, children: children }));
1642
1648
  };
1643
1649
 
1644
1650
  const Tr = ({ className, isSelected, color, children, ...props }) => {
1645
- const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1646
- const trClasses = classNames(className, bulmaHelperClasses, {
1651
+ const bulmaClasses = usePrefixedClassNames('', {
1647
1652
  'is-selected': isSelected,
1648
1653
  [`is-${color}`]: color && validTableColors.includes(color),
1649
1654
  });
1655
+ const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1656
+ const trClasses = classNames(bulmaClasses, className, bulmaHelperClasses);
1650
1657
  return (jsxRuntimeExports.jsx("tr", { className: trClasses, ...rest, children: children }));
1651
1658
  };
1652
1659
 
1653
1660
  const Checkbox = forwardRef(({ disabled, className, children, ...props }, ref) => {
1654
- const { classPrefix } = useConfig();
1655
1661
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1656
1662
  ...props,
1657
1663
  });
1658
- const mainClass = classPrefix ? `${classPrefix}checkbox` : 'checkbox';
1664
+ const mainClass = usePrefixedClassNames('checkbox');
1659
1665
  const checkboxClass = classNames(mainClass, bulmaHelperClasses, className);
1660
1666
  return (jsxRuntimeExports.jsxs("label", { className: checkboxClass, children: [jsxRuntimeExports.jsx("input", { ref: ref, type: "checkbox", disabled: disabled, ...rest }), children] }));
1661
1667
  });
1662
1668
  Checkbox.displayName = 'Checkbox';
1663
1669
 
1664
1670
  const Checkboxes = ({ children, className, ...props }) => {
1665
- const { classPrefix } = useConfig();
1666
1671
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1667
1672
  ...props,
1668
1673
  });
1669
- const mainClass = classPrefix ? `${classPrefix}checkboxes` : 'checkboxes';
1674
+ const mainClass = usePrefixedClassNames('checkboxes');
1670
1675
  const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);
1671
1676
  return (jsxRuntimeExports.jsx("div", { className: wrapperClass, ...rest, children: children }));
1672
1677
  };
@@ -1674,7 +1679,6 @@ const Checkboxes = ({ children, className, ...props }) => {
1674
1679
  const allowedColors = [...validColors, 'inherit', 'current'];
1675
1680
  const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isLoading, isExpanded, size, textColor, bgColor, iconLeft, iconRight, iconLeftName, iconLeftSize, iconRightName, iconRightSize, className, children, ...props }, ref) => {
1676
1681
  const Component = (as === 'p' ? 'p' : 'div');
1677
- const { classPrefix } = useConfig();
1678
1682
  const { textColor: _ignoredTextColor, bgColor: _ignoredBgColor, ...restProps } = props;
1679
1683
  const safeTextColor = allowedColors.includes(textColor)
1680
1684
  ? textColor
@@ -1701,49 +1705,47 @@ const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isL
1701
1705
  size: iconRightSize,
1702
1706
  }
1703
1707
  : undefined);
1704
- const mainClass = classPrefix ? `${classPrefix}control` : 'control';
1705
- const controlClass = classNames(mainClass, bulmaHelperClasses, {
1708
+ const mainClass = usePrefixedClassNames('control', {
1706
1709
  'has-icons-left': hasIconsLeft || !!leftIconProps,
1707
1710
  'has-icons-right': hasIconsRight || !!rightIconProps,
1708
1711
  'is-loading': isLoading,
1709
1712
  'is-expanded': isExpanded,
1710
1713
  [`is-${size}`]: !!size,
1711
- }, className);
1714
+ });
1715
+ const controlClass = classNames(mainClass, bulmaHelperClasses, className);
1712
1716
  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" }))] }));
1713
1717
  });
1714
1718
  Control.displayName = 'Control';
1715
1719
 
1716
1720
  const FieldLabel = ({ size, textColor, bgColor, className, children, ...props }) => {
1717
- const { classPrefix } = useConfig();
1718
1721
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1719
1722
  color: textColor,
1720
1723
  backgroundColor: bgColor,
1721
1724
  ...props,
1722
1725
  });
1723
- const mainClass = classPrefix ? `${classPrefix}field-label` : 'field-label';
1724
- const fieldLabelClass = classNames(mainClass, bulmaHelperClasses, { [`is-${size}`]: size }, className);
1726
+ const mainClass = usePrefixedClassNames('field-label', {
1727
+ [`is-${size}`]: !!size,
1728
+ });
1729
+ const fieldLabelClass = classNames(mainClass, bulmaHelperClasses, className);
1725
1730
  return (jsxRuntimeExports.jsx("div", { className: fieldLabelClass, ...props, ...rest, children: children }));
1726
1731
  };
1727
1732
  const FieldBody = ({ textColor, bgColor, className, children, ...props }) => {
1728
- const { classPrefix } = useConfig();
1729
1733
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1730
1734
  color: textColor,
1731
1735
  backgroundColor: bgColor,
1732
1736
  ...props,
1733
1737
  });
1734
- const mainClass = classPrefix ? `${classPrefix}field-body` : 'field-body';
1738
+ const mainClass = usePrefixedClassNames('field-body');
1735
1739
  const fieldBodyClass = classNames(mainClass, bulmaHelperClasses, className);
1736
1740
  return (jsxRuntimeExports.jsx("div", { className: fieldBodyClass, ...props, ...rest, children: children }));
1737
1741
  };
1738
- const Field = ({ horizontal, grouped, hasAddons, label, labelSize, labelProps, textColor, bgColor, className, children, ...props }) => {
1739
- const { classPrefix } = useConfig();
1742
+ const Field = ({ horizontal, grouped, hasAddons, label, labelSize, labelProps, textColor, color: _fieldColor, bgColor, className, children, ...props }) => {
1740
1743
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1741
1744
  color: textColor,
1742
1745
  backgroundColor: bgColor,
1743
1746
  ...props,
1744
1747
  });
1745
- const mainClass = classPrefix ? `${classPrefix}field` : 'field';
1746
- const fieldClass = classNames(mainClass, bulmaHelperClasses, {
1748
+ const mainClass = usePrefixedClassNames('field', {
1747
1749
  'is-horizontal': horizontal,
1748
1750
  'has-addons': !!hasAddons,
1749
1751
  'is-grouped': grouped === true ||
@@ -1753,11 +1755,12 @@ const Field = ({ horizontal, grouped, hasAddons, label, labelSize, labelProps, t
1753
1755
  'is-grouped-centered': grouped === 'centered',
1754
1756
  'is-grouped-right': grouped === 'right',
1755
1757
  'is-grouped-multiline': grouped === 'multiline',
1756
- }, className);
1758
+ });
1759
+ const fieldClass = classNames(mainClass, bulmaHelperClasses, className);
1757
1760
  const mappedLabelSize = labelSize === 'normal' ? undefined : labelSize;
1761
+ const labelClass = usePrefixedClassNames('label');
1758
1762
  let renderedLabel = null;
1759
1763
  if (label) {
1760
- const labelClass = classPrefix ? `${classPrefix}label` : 'label';
1761
1764
  if (horizontal) {
1762
1765
  renderedLabel = (jsxRuntimeExports.jsx(FieldLabel, { size: mappedLabelSize, children: jsxRuntimeExports.jsx("label", { ...labelProps, className: classNames(labelClass, labelProps === null || labelProps === void 0 ? void 0 : labelProps.className), style: labelProps === null || labelProps === void 0 ? void 0 : labelProps.style, children: label }) }));
1763
1766
  }
@@ -1783,7 +1786,6 @@ Field.Label = FieldLabel;
1783
1786
  Field.Body = FieldBody;
1784
1787
 
1785
1788
  const File = forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isCentered, hasName, label, iconLeft, iconRight, className, inputClassName, fileName, ...props }, ref) => {
1786
- const { classPrefix } = useConfig();
1787
1789
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1788
1790
  color,
1789
1791
  ...props,
@@ -1798,73 +1800,69 @@ const File = forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isCentere
1798
1800
  else if (isCentered) {
1799
1801
  alignmentClass = 'is-centered';
1800
1802
  }
1801
- const mainClass = classPrefix ? `${classPrefix}file` : 'file';
1802
- const fileClass = classNames(mainClass, bulmaHelperClasses, {
1803
- [`is-${color}`]: color,
1804
- [`is-${size}`]: size,
1803
+ const mainClass = usePrefixedClassNames('file', {
1804
+ [`is-${color}`]: !!color,
1805
+ [`is-${size}`]: !!size,
1805
1806
  'is-boxed': isBoxed,
1806
1807
  'is-fullwidth': isFullwidth,
1807
1808
  'has-name': hasName,
1808
- }, alignmentClass, className);
1809
+ });
1810
+ const fileClass = classNames(mainClass, bulmaHelperClasses, alignmentClass, className);
1809
1811
  return (jsxRuntimeExports.jsx("div", { className: fileClass, children: jsxRuntimeExports.jsxs("label", { className: "file-label", children: [jsxRuntimeExports.jsx("input", { ref: ref, className: classNames('file-input', inputClassName), type: "file", ...rest }), jsxRuntimeExports.jsxs("span", { className: "file-cta", children: [iconLeft && jsxRuntimeExports.jsx("span", { className: "file-icon", children: iconLeft }), jsxRuntimeExports.jsx("span", { className: "file-label", children: label || 'Choose a file…' }), iconRight && jsxRuntimeExports.jsx("span", { className: "file-icon", children: iconRight })] }), hasName && fileName && jsxRuntimeExports.jsx("span", { className: "file-name", children: fileName })] }) }));
1810
1812
  });
1811
1813
  File.displayName = 'File';
1812
1814
 
1813
1815
  const Input = forwardRef(({ color, size, isRounded, isStatic, isHovered, isFocused, isLoading, className, disabled, readOnly, ...props }, ref) => {
1814
- const { classPrefix } = useConfig();
1815
1816
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1816
1817
  color,
1817
1818
  ...props,
1818
1819
  });
1819
- const mainClass = classPrefix ? `${classPrefix}input` : 'input';
1820
- const inputClass = classNames(mainClass, bulmaHelperClasses, {
1821
- [`is-${color}`]: color,
1822
- [`is-${size}`]: size,
1820
+ const mainClass = usePrefixedClassNames('input', {
1821
+ [`is-${color}`]: !!color,
1822
+ [`is-${size}`]: !!size,
1823
1823
  'is-rounded': isRounded,
1824
1824
  'is-static': isStatic,
1825
1825
  'is-hovered': isHovered,
1826
1826
  'is-focused': isFocused,
1827
1827
  'is-loading': isLoading,
1828
- }, className);
1828
+ });
1829
+ const inputClass = classNames(mainClass, bulmaHelperClasses, className);
1829
1830
  return (jsxRuntimeExports.jsx("input", { ref: ref, className: inputClass, disabled: disabled, readOnly: readOnly, ...rest }));
1830
1831
  });
1831
1832
  Input.displayName = 'Input';
1832
1833
 
1833
1834
  const Radio = forwardRef(({ disabled, className, children, ...props }, ref) => {
1834
- const { classPrefix } = useConfig();
1835
1835
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1836
1836
  ...props,
1837
1837
  });
1838
- const mainClass = classPrefix ? `${classPrefix}radio` : 'radio';
1838
+ const mainClass = usePrefixedClassNames('radio');
1839
1839
  const radioClass = classNames(mainClass, bulmaHelperClasses, className);
1840
1840
  return (jsxRuntimeExports.jsxs("label", { className: radioClass, children: [jsxRuntimeExports.jsx("input", { ref: ref, type: "radio", disabled: disabled, ...rest }), children] }));
1841
1841
  });
1842
1842
  Radio.displayName = 'Radio';
1843
1843
 
1844
1844
  const Radios = ({ children, className, ...props }) => {
1845
- const { classPrefix } = useConfig();
1846
1845
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1847
1846
  ...props,
1848
1847
  });
1849
- const mainClass = classPrefix ? `${classPrefix}radios` : 'radios';
1848
+ const mainClass = usePrefixedClassNames('radios');
1850
1849
  const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);
1851
1850
  return (jsxRuntimeExports.jsx("div", { className: wrapperClass, ...rest, children: children }));
1852
1851
  };
1853
1852
 
1854
1853
  const Select = forwardRef(({ color, size, isRounded, isLoading, isActive, className, disabled, children, multiple, multipleSize, ...props }, ref) => {
1855
- const { classPrefix } = useConfig();
1856
1854
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1857
1855
  color,
1858
1856
  ...props,
1859
1857
  });
1860
- const mainClass = classPrefix ? `${classPrefix}select` : 'select';
1861
- const selectClass = classNames(mainClass, bulmaHelperClasses, {
1862
- [`is-${color}`]: color,
1863
- [`is-${size}`]: size,
1858
+ const mainClass = usePrefixedClassNames('select', {
1859
+ [`is-${color}`]: !!color,
1860
+ [`is-${size}`]: !!size,
1864
1861
  'is-rounded': isRounded,
1865
1862
  'is-loading': isLoading,
1866
1863
  'is-active': isActive,
1867
- }, className);
1864
+ });
1865
+ const selectClass = classNames(mainClass, bulmaHelperClasses, className);
1868
1866
  const selectProps = {
1869
1867
  disabled,
1870
1868
  multiple,
@@ -1878,15 +1876,13 @@ const Select = forwardRef(({ color, size, isRounded, isLoading, isActive, classN
1878
1876
  Select.displayName = 'Select';
1879
1877
 
1880
1878
  const TextArea = forwardRef(({ color, size, isRounded, isStatic, isHovered, isFocused, isLoading, isActive, hasFixedSize, className, disabled, readOnly, rows, ...props }, ref) => {
1881
- const { classPrefix } = useConfig();
1882
1879
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1883
1880
  color,
1884
1881
  ...props,
1885
1882
  });
1886
- const mainClass = classPrefix ? `${classPrefix}textarea` : 'textarea';
1887
- const textareaClass = classNames(mainClass, bulmaHelperClasses, {
1888
- [`is-${color}`]: color,
1889
- [`is-${size}`]: size,
1883
+ const mainClass = usePrefixedClassNames('textarea', {
1884
+ [`is-${color}`]: !!color,
1885
+ [`is-${size}`]: !!size,
1890
1886
  'is-rounded': isRounded,
1891
1887
  'is-static': isStatic,
1892
1888
  'is-hovered': isHovered,
@@ -1894,96 +1890,55 @@ const TextArea = forwardRef(({ color, size, isRounded, isStatic, isHovered, isFo
1894
1890
  'is-loading': isLoading,
1895
1891
  'is-active': isActive,
1896
1892
  'has-fixed-size': hasFixedSize,
1897
- }, className);
1893
+ });
1894
+ const textareaClass = classNames(mainClass, bulmaHelperClasses, className);
1898
1895
  return (jsxRuntimeExports.jsx("textarea", { ref: ref, className: textareaClass, disabled: disabled, readOnly: readOnly, rows: rows, ...rest }));
1899
1896
  });
1900
1897
  TextArea.displayName = 'TextArea';
1901
1898
 
1902
- function getCellGridClasses(props) {
1903
- const classes = [];
1904
- if (props.colStart !== undefined)
1905
- classes.push(`is-col-start-${props.colStart}`);
1906
- if (props.colFromEnd !== undefined)
1907
- classes.push(`is-col-from-end-${props.colFromEnd}`);
1908
- if (props.colSpan !== undefined)
1909
- classes.push(`is-col-span-${props.colSpan}`);
1910
- if (props.rowStart !== undefined)
1911
- classes.push(`is-row-start-${props.rowStart}`);
1912
- if (props.rowFromEnd !== undefined)
1913
- classes.push(`is-row-from-end-${props.rowFromEnd}`);
1914
- if (props.rowSpan !== undefined)
1915
- classes.push(`is-row-span-${props.rowSpan}`);
1916
- return classes;
1917
- }
1918
- const Cell = ({ colStart, colFromEnd, colSpan, rowStart, rowFromEnd, rowSpan, className, textColor, bgColor, children, ...props }) => {
1899
+ const Cell = ({ colStart, colFromEnd, colSpan, rowStart, rowFromEnd, rowSpan, className, textColor, color: _fieldColor, bgColor, children, ...props }) => {
1919
1900
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1920
1901
  color: textColor,
1921
1902
  backgroundColor: bgColor,
1922
1903
  ...props,
1923
1904
  });
1924
- const { classPrefix } = useConfig();
1925
- const mainClass = classPrefix ? `${classPrefix}cell` : 'cell';
1926
- const cellClasses = classNames(mainClass, ...getCellGridClasses({
1927
- colStart,
1928
- colFromEnd,
1929
- colSpan,
1930
- rowStart,
1931
- rowFromEnd,
1932
- rowSpan,
1933
- }), className, bulmaHelperClasses);
1905
+ const mainClass = usePrefixedClassNames('cell');
1906
+ const cellGridClasses = usePrefixedClassNames('', {
1907
+ [`is-col-start-${colStart}`]: colStart !== undefined && colStart !== null,
1908
+ [`is-col-from-end-${colFromEnd}`]: colFromEnd !== undefined && colFromEnd !== null,
1909
+ [`is-col-span-${colSpan}`]: colSpan !== undefined && colSpan !== null,
1910
+ [`is-row-start-${rowStart}`]: rowStart !== undefined && rowStart !== null,
1911
+ [`is-row-from-end-${rowFromEnd}`]: rowFromEnd !== undefined && rowFromEnd !== null,
1912
+ [`is-row-span-${rowSpan}`]: rowSpan !== undefined && rowSpan !== null,
1913
+ });
1914
+ const cellClasses = classNames(mainClass, cellGridClasses, className, bulmaHelperClasses);
1934
1915
  return (jsxRuntimeExports.jsx("div", { className: cellClasses, ...rest, children: children }));
1935
1916
  };
1936
1917
 
1937
- function getGridInnerClasses({ gap, columnGap, rowGap, minCol, }) {
1938
- const classes = [];
1939
- if (gap !== undefined)
1940
- classes.push(`is-gap-${gap}`);
1941
- if (columnGap !== undefined)
1942
- classes.push(`is-column-gap-${columnGap}`);
1943
- if (rowGap !== undefined)
1944
- classes.push(`is-row-gap-${rowGap}`);
1945
- if (minCol !== undefined)
1946
- classes.push(`is-col-min-${minCol}`);
1947
- return classes;
1948
- }
1949
- function getFixedGridClasses({ fixedCols, fixedColsMobile, fixedColsTablet, fixedColsDesktop, fixedColsWidescreen, fixedColsFullhd, }) {
1950
- const classes = [];
1951
- if (fixedCols === 'auto') {
1952
- classes.push('has-auto-count');
1953
- return classes;
1954
- }
1955
- if (fixedCols !== undefined)
1956
- classes.push(`has-${fixedCols}-cols`);
1957
- if (fixedColsMobile !== undefined)
1958
- classes.push(`has-${fixedColsMobile}-cols-mobile`);
1959
- if (fixedColsTablet !== undefined)
1960
- classes.push(`has-${fixedColsTablet}-cols-tablet`);
1961
- if (fixedColsDesktop !== undefined)
1962
- classes.push(`has-${fixedColsDesktop}-cols-desktop`);
1963
- if (fixedColsWidescreen !== undefined)
1964
- classes.push(`has-${fixedColsWidescreen}-cols-widescreen`);
1965
- if (fixedColsFullhd !== undefined)
1966
- classes.push(`has-${fixedColsFullhd}-cols-fullhd`);
1967
- return classes;
1968
- }
1969
- const Grid = ({ isFixed = false, gap, columnGap, rowGap, minCol, fixedCols, fixedColsMobile, fixedColsTablet, fixedColsDesktop, fixedColsWidescreen, fixedColsFullhd, className, textColor, bgColor, children, ...props }) => {
1918
+ const Grid = ({ isFixed = false, gap, columnGap, rowGap, minCol, fixedCols, fixedColsMobile, fixedColsTablet, fixedColsDesktop, fixedColsWidescreen, fixedColsFullhd, className, textColor, color: _fieldColor, bgColor, children, ...props }) => {
1970
1919
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1971
1920
  color: textColor,
1972
1921
  backgroundColor: bgColor,
1973
1922
  ...props,
1974
1923
  });
1975
- const { classPrefix } = useConfig();
1976
- const mainClass = classPrefix ? `${classPrefix}grid` : 'grid';
1977
- const gridClasses = classNames(mainClass, ...getGridInnerClasses({ gap, columnGap, rowGap, minCol }), bulmaHelperClasses, className);
1924
+ const mainClass = usePrefixedClassNames('grid');
1925
+ const gridInnerClasses = usePrefixedClassNames('', {
1926
+ [`is-gap-${gap}`]: gap !== undefined && gap !== null,
1927
+ [`is-column-gap-${columnGap}`]: columnGap !== undefined && columnGap !== null,
1928
+ [`is-row-gap-${rowGap}`]: rowGap !== undefined && rowGap !== null,
1929
+ [`is-col-min-${minCol}`]: minCol !== undefined && minCol !== null,
1930
+ });
1931
+ const fixedGridClasses = usePrefixedClassNames('fixed-grid', {
1932
+ 'has-auto-count': fixedCols === 'auto',
1933
+ [`has-${fixedCols}-cols`]: fixedCols !== undefined && fixedCols !== 'auto',
1934
+ [`has-${fixedColsMobile}-cols-mobile`]: fixedColsMobile !== undefined && fixedColsMobile !== null,
1935
+ [`has-${fixedColsTablet}-cols-tablet`]: fixedColsTablet !== undefined && fixedColsTablet !== null,
1936
+ [`has-${fixedColsDesktop}-cols-desktop`]: fixedColsDesktop !== undefined && fixedColsDesktop !== null,
1937
+ [`has-${fixedColsWidescreen}-cols-widescreen`]: fixedColsWidescreen !== undefined && fixedColsWidescreen !== null,
1938
+ [`has-${fixedColsFullhd}-cols-fullhd`]: fixedColsFullhd !== undefined && fixedColsFullhd !== null,
1939
+ });
1940
+ const gridClasses = classNames(mainClass, gridInnerClasses, bulmaHelperClasses, className);
1978
1941
  if (isFixed) {
1979
- const fixedGridClasses = classNames('fixed-grid', ...getFixedGridClasses({
1980
- fixedCols,
1981
- fixedColsMobile,
1982
- fixedColsTablet,
1983
- fixedColsDesktop,
1984
- fixedColsWidescreen,
1985
- fixedColsFullhd,
1986
- }));
1987
1942
  return (jsxRuntimeExports.jsx("div", { className: fixedGridClasses, children: jsxRuntimeExports.jsx("div", { className: gridClasses, ...rest, children: children }) }));
1988
1943
  }
1989
1944
  return (jsxRuntimeExports.jsx("div", { className: gridClasses, ...rest, children: children }));
@@ -2580,7 +2535,6 @@ const Theme = ({ bulmaVars = {}, children, className, isRoot = false, ...restPro
2580
2535
  };
2581
2536
 
2582
2537
  const Container = ({ className, textColor, bgColor, fluid, widescreen, fullhd, breakpoint, isMax, children, ...props }) => {
2583
- const { classPrefix } = useConfig();
2584
2538
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2585
2539
  color: textColor,
2586
2540
  backgroundColor: bgColor,
@@ -2600,141 +2554,188 @@ const Container = ({ className, textColor, bgColor, fluid, widescreen, fullhd, b
2600
2554
  breakpointClass = `is-${breakpoint}`;
2601
2555
  }
2602
2556
  }
2603
- const mainClass = classPrefix ? `${classPrefix}container` : 'container';
2604
- const containerClasses = classNames(mainClass, {
2557
+ const mainClass = usePrefixedClassNames('container');
2558
+ const containerModifiers = usePrefixedClassNames('', {
2605
2559
  'is-fluid': fluid,
2606
2560
  'is-widescreen': widescreen,
2607
2561
  'is-fullhd': fullhd,
2608
- }, breakpointClass, className, bulmaHelperClasses);
2562
+ });
2563
+ const prefixedBreakpointClass = usePrefixedClassNames(breakpointClass || '');
2564
+ const containerClasses = classNames(mainClass, containerModifiers, prefixedBreakpointClass, className, bulmaHelperClasses);
2609
2565
  return (jsxRuntimeExports.jsx("div", { className: containerClasses, ...rest, children: children }));
2610
2566
  };
2611
2567
 
2612
- const Footer = ({ as = 'footer', className, children, ...props }) => {
2613
- const { classPrefix } = useConfig();
2614
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2568
+ const Footer = ({ as = 'footer', className, children, color, bgColor, textColor, ...props }) => {
2569
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2570
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2571
+ backgroundColor: bgColor,
2572
+ ...props,
2573
+ });
2615
2574
  const Tag = as;
2616
- const mainClass = classPrefix ? `${classPrefix}footer` : 'footer';
2617
- return (jsxRuntimeExports.jsx(Tag, { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2575
+ const mainClass = usePrefixedClassNames('footer');
2576
+ const footerClasses = classNames(mainClass, bulmaHelperClasses, className);
2577
+ return (jsxRuntimeExports.jsx(Tag, { className: footerClasses, ...rest, children: children }));
2618
2578
  };
2619
2579
 
2620
2580
  const Hero = ({ className, color, size, bgColor, fullheightWithNavbar, children, ...props }) => {
2621
- const { classPrefix } = useConfig();
2622
2581
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2623
- color,
2624
2582
  backgroundColor: bgColor,
2625
2583
  ...props,
2626
2584
  });
2627
- const mainClass = classPrefix ? `${classPrefix}hero` : 'hero';
2628
- const heroClasses = classNames(mainClass, bulmaHelperClasses, className, color && `is-${color}`, size && size !== 'fullheight-with-navbar' && `is-${size}`, {
2585
+ const mainClass = usePrefixedClassNames('hero', {
2586
+ [`is-${color}`]: color,
2587
+ [`is-${size}`]: size && size !== 'fullheight-with-navbar',
2629
2588
  'is-fullheight-with-navbar': fullheightWithNavbar || size === 'fullheight-with-navbar',
2630
2589
  });
2590
+ const heroClasses = classNames(mainClass, bulmaHelperClasses, className);
2631
2591
  return (jsxRuntimeExports.jsx("section", { className: heroClasses, ...rest, children: children }));
2632
2592
  };
2633
2593
  const HeroHead = ({ className, children, color, bgColor, textColor, ...props }) => {
2634
- const { classPrefix } = useConfig();
2635
2594
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2636
2595
  color: textColor !== null && textColor !== void 0 ? textColor : color,
2637
2596
  backgroundColor: bgColor,
2638
2597
  ...props,
2639
2598
  });
2640
- const mainClass = classPrefix ? `${classPrefix}hero-head` : 'hero-head';
2641
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2599
+ const mainClass = usePrefixedClassNames('hero-head');
2600
+ const heroHeadClasses = classNames(mainClass, bulmaHelperClasses, className);
2601
+ return (jsxRuntimeExports.jsx("div", { className: heroHeadClasses, ...rest, children: children }));
2642
2602
  };
2643
2603
  const HeroBody = ({ className, children, color, bgColor, textColor, ...props }) => {
2644
- const { classPrefix } = useConfig();
2645
2604
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2646
2605
  color: textColor !== null && textColor !== void 0 ? textColor : color,
2647
2606
  backgroundColor: bgColor,
2648
2607
  ...props,
2649
2608
  });
2650
- const mainClass = classPrefix ? `${classPrefix}hero-body` : 'hero-body';
2651
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2609
+ const mainClass = usePrefixedClassNames('hero-body');
2610
+ const heroBodyClasses = classNames(mainClass, bulmaHelperClasses, className);
2611
+ return (jsxRuntimeExports.jsx("div", { className: heroBodyClasses, ...rest, children: children }));
2652
2612
  };
2653
2613
  const HeroFoot = ({ className, children, color, bgColor, textColor, ...props }) => {
2654
- const { classPrefix } = useConfig();
2655
2614
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2656
2615
  color: textColor !== null && textColor !== void 0 ? textColor : color,
2657
2616
  backgroundColor: bgColor,
2658
2617
  ...props,
2659
2618
  });
2660
- const mainClass = classPrefix ? `${classPrefix}hero-foot` : 'hero-foot';
2661
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2619
+ const mainClass = usePrefixedClassNames('hero-foot');
2620
+ const heroFootClasses = classNames(mainClass, bulmaHelperClasses, className);
2621
+ return (jsxRuntimeExports.jsx("div", { className: heroFootClasses, ...rest, children: children }));
2662
2622
  };
2663
2623
  Hero.Head = HeroHead;
2664
2624
  Hero.Body = HeroBody;
2665
2625
  Hero.Foot = HeroFoot;
2666
2626
 
2667
- const Level = ({ isMobile, className, children, ...props }) => {
2668
- const { classPrefix } = useConfig();
2669
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2670
- const mainClass = classPrefix ? `${classPrefix}level` : 'level';
2671
- return (jsxRuntimeExports.jsx("nav", { className: classNames(mainClass, bulmaHelperClasses, className, {
2672
- 'is-mobile': isMobile,
2673
- }), ...rest, children: children }));
2627
+ const Level = ({ isMobile, className, children, color, bgColor, textColor, ...props }) => {
2628
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2629
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2630
+ backgroundColor: bgColor,
2631
+ ...props,
2632
+ });
2633
+ const mainClass = usePrefixedClassNames('level', {
2634
+ 'is-mobile': isMobile,
2635
+ });
2636
+ const levelClasses = classNames(mainClass, bulmaHelperClasses, className);
2637
+ return (jsxRuntimeExports.jsx("nav", { className: levelClasses, ...rest, children: children }));
2674
2638
  };
2675
- const LevelLeft = ({ className, children, ...props }) => {
2676
- const { classPrefix } = useConfig();
2677
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2678
- const mainClass = classPrefix ? `${classPrefix}level-left` : 'level-left';
2679
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2639
+ const LevelLeft = ({ className, children, color, bgColor, textColor, ...props }) => {
2640
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2641
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2642
+ backgroundColor: bgColor,
2643
+ ...props,
2644
+ });
2645
+ const mainClass = usePrefixedClassNames('level-left');
2646
+ const levelLeftClasses = classNames(mainClass, bulmaHelperClasses, className);
2647
+ return (jsxRuntimeExports.jsx("div", { className: levelLeftClasses, ...rest, children: children }));
2680
2648
  };
2681
- const LevelRight = ({ className, children, ...props }) => {
2682
- const { classPrefix } = useConfig();
2683
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2684
- const mainClass = classPrefix ? `${classPrefix}level-right` : 'level-right';
2685
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2649
+ const LevelRight = ({ className, children, color, bgColor, textColor, ...props }) => {
2650
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2651
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2652
+ backgroundColor: bgColor,
2653
+ ...props,
2654
+ });
2655
+ const mainClass = usePrefixedClassNames('level-right');
2656
+ const levelRightClasses = classNames(mainClass, bulmaHelperClasses, className);
2657
+ return (jsxRuntimeExports.jsx("div", { className: levelRightClasses, ...rest, children: children }));
2686
2658
  };
2687
- const LevelItem = ({ as = 'div', hasTextCentered, className, children, href, target, rel, ...props }) => {
2688
- const { classPrefix } = useConfig();
2689
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2659
+ const LevelItem = ({ as = 'div', hasTextCentered, className, children, href, target, rel, color, bgColor, textColor, ...props }) => {
2660
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2661
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2662
+ backgroundColor: bgColor,
2663
+ ...props,
2664
+ });
2690
2665
  const Tag = as;
2691
- const mainClass = classPrefix ? `${classPrefix}level-item` : 'level-item';
2666
+ const mainClass = usePrefixedClassNames('level-item', {
2667
+ 'has-text-centered': hasTextCentered,
2668
+ });
2669
+ const levelItemClasses = classNames(mainClass, bulmaHelperClasses, className);
2692
2670
  if (Tag === 'a') {
2693
- return (jsxRuntimeExports.jsx("a", { className: classNames(mainClass, bulmaHelperClasses, className, {
2694
- 'has-text-centered': hasTextCentered,
2695
- }), href: href, target: target, rel: rel, ...rest, children: children }));
2671
+ return (jsxRuntimeExports.jsx("a", { className: levelItemClasses, href: href, target: target, rel: rel, ...rest, children: children }));
2696
2672
  }
2697
- return (jsxRuntimeExports.jsx(Tag, { className: classNames(mainClass, bulmaHelperClasses, className, {
2698
- 'has-text-centered': hasTextCentered,
2699
- }), ...rest, children: children }));
2673
+ return (jsxRuntimeExports.jsx(Tag, { className: levelItemClasses, ...rest, children: children }));
2700
2674
  };
2701
2675
  Level.Left = LevelLeft;
2702
2676
  Level.Right = LevelRight;
2703
2677
  Level.Item = LevelItem;
2704
2678
 
2705
- const Media = ({ as = 'article', className, children, ...props }) => {
2706
- const { classPrefix } = useConfig();
2707
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2679
+ const Media = ({ as = 'article', className, children, color, bgColor, textColor, ...props }) => {
2680
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2681
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2682
+ backgroundColor: bgColor,
2683
+ ...props,
2684
+ });
2708
2685
  const Tag = as;
2709
- const mainClass = classPrefix ? `${classPrefix}media` : 'media';
2710
- return (jsxRuntimeExports.jsx(Tag, { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2686
+ const mainClass = usePrefixedClassNames('media');
2687
+ const mediaClasses = classNames(mainClass, bulmaHelperClasses, className);
2688
+ return (jsxRuntimeExports.jsx(Tag, { className: mediaClasses, ...rest, children: children }));
2711
2689
  };
2712
- const MediaLeft = ({ as = 'figure', className, children, ...props }) => {
2713
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2690
+ const MediaLeft = ({ as = 'figure', className, children, color, bgColor, textColor, ...props }) => {
2691
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2692
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2693
+ backgroundColor: bgColor,
2694
+ ...props,
2695
+ });
2714
2696
  const Tag = as;
2715
- return (jsxRuntimeExports.jsx(Tag, { className: classNames('media-left', bulmaHelperClasses, className), ...rest, children: children }));
2697
+ const mainClass = usePrefixedClassNames('media-left');
2698
+ const mediaLeftClasses = classNames(mainClass, bulmaHelperClasses, className);
2699
+ return (jsxRuntimeExports.jsx(Tag, { className: mediaLeftClasses, ...rest, children: children }));
2716
2700
  };
2717
- const MediaContent = ({ className, children, ...props }) => {
2718
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2719
- return (jsxRuntimeExports.jsx("div", { className: classNames('media-content', bulmaHelperClasses, className), ...rest, children: children }));
2701
+ const MediaContent = ({ className, children, color, bgColor, textColor, ...props }) => {
2702
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2703
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2704
+ backgroundColor: bgColor,
2705
+ ...props,
2706
+ });
2707
+ const mainClass = usePrefixedClassNames('media-content');
2708
+ const mediaContentClasses = classNames(mainClass, bulmaHelperClasses, className);
2709
+ return (jsxRuntimeExports.jsx("div", { className: mediaContentClasses, ...rest, children: children }));
2720
2710
  };
2721
- const MediaRight = ({ className, children, ...props }) => {
2722
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2723
- return (jsxRuntimeExports.jsx("div", { className: classNames('media-right', bulmaHelperClasses, className), ...rest, children: children }));
2711
+ const MediaRight = ({ className, children, color, bgColor, textColor, ...props }) => {
2712
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2713
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2714
+ backgroundColor: bgColor,
2715
+ ...props,
2716
+ });
2717
+ const mainClass = usePrefixedClassNames('media-right');
2718
+ const mediaRightClasses = classNames(mainClass, bulmaHelperClasses, className);
2719
+ return (jsxRuntimeExports.jsx("div", { className: mediaRightClasses, ...rest, children: children }));
2724
2720
  };
2725
- Media.Left = MediaLeft;
2726
- Media.Content = MediaContent;
2727
- Media.Right = MediaRight;
2721
+ const MediaWithSubcomponents = Media;
2722
+ MediaWithSubcomponents.Left = MediaLeft;
2723
+ MediaWithSubcomponents.Content = MediaContent;
2724
+ MediaWithSubcomponents.Right = MediaRight;
2728
2725
 
2729
- const Section = ({ size, className, children, ...props }) => {
2730
- const { classPrefix } = useConfig();
2731
- const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
2732
- const mainClass = classPrefix ? `${classPrefix}section` : 'section';
2733
- const sectionClasses = classNames(mainClass, className, bulmaHelperClasses, {
2726
+ const Section = ({ size, className, children, color, bgColor, textColor, ...props }) => {
2727
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2728
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2729
+ backgroundColor: bgColor,
2730
+ ...props,
2731
+ });
2732
+ const mainClass = usePrefixedClassNames('section');
2733
+ const sectionModifiers = usePrefixedClassNames('', {
2734
2734
  [`is-${size}`]: size,
2735
2735
  });
2736
+ const sectionClasses = classNames(mainClass, sectionModifiers, className, bulmaHelperClasses);
2736
2737
  return (jsxRuntimeExports.jsx("section", { className: sectionClasses, ...rest, children: children }));
2737
2738
  };
2738
2739
 
2739
- export { Block, Box, Breadcrumb, Button, Buttons, Card, Cell, Checkbox, Checkboxes, Column, Columns, ConfigProvider, Container, Content, Control, Delete, Dropdown, DropdownDivider, DropdownItem, Field, FieldBody, FieldLabel, File, Footer, Grid, Hero, HeroBody, HeroFoot, HeroHead, Icon, IconText, Image, Input, Level, LevelItem, LevelLeft, LevelRight, Media, MediaContent, MediaLeft, MediaRight, Menu, MenuItem, MenuLabel, MenuList, Message, Modal, Navbar, NavbarBrand, NavbarBurger, NavbarDivider, NavbarDropdown, NavbarDropdownMenu, NavbarEnd, NavbarItem, NavbarMenu, NavbarStart, Notification, Pagination, PaginationEllipsis, PaginationLink, PaginationList, PaginationNext, PaginationPrevious, Panel, PanelBlock, PanelButtonBlock, PanelCheckboxBlock, PanelHeading, PanelIcon, PanelInputBlock, PanelTabs, Progress, Radio, Radios, Section, Select, Skeleton, SubTitle, TabItem, TabList, Table, Tabs, Tag, Tags, Tbody, Td, TextArea, Tfoot, Th, Thead, Theme, Title, Tr, __test_exports__, classNames, isBrowser, useBulmaClasses, useClassPrefix, useConfig, validAlignContents, validAlignItems, validAlignSelfs, validAlignments$1 as validAlignments, validColorShades, validColors, validDisplays, validFlexDirections, validFlexGrowShrink, validFlexWraps, validFontFamilies, validJustifyContents, validSizes$1 as validSizes, validTableColors, validTextSizes, validTextTransforms, validTextWeights, validViewports, validVisibilities };
2740
+ export { Block, Box, Breadcrumb, Button, Buttons, Card, Cell, Checkbox, Checkboxes, Column, Columns, ConfigProvider, Container, Content, Control, Delete, Dropdown, DropdownDivider, DropdownItem, Field, FieldBody, FieldLabel, File, Footer, Grid, Hero, HeroBody, HeroFoot, HeroHead, Icon, IconText, Image, Input, Level, LevelItem, LevelLeft, LevelRight, Media, MediaContent, MediaLeft, MediaRight, Menu, MenuItem, MenuLabel, MenuList, Message, Modal, Navbar, NavbarBrand, NavbarBurger, NavbarDivider, NavbarDropdown, NavbarDropdownMenu, NavbarEnd, NavbarItem, NavbarMenu, NavbarStart, Notification, Pagination, PaginationEllipsis, PaginationLink, PaginationList, PaginationNext, PaginationPrevious, Panel, PanelBlock, PanelButtonBlock, PanelCheckboxBlock, PanelHeading, PanelIcon, PanelInputBlock, PanelTabs, Progress, Radio, Radios, Section, Select, Skeleton, SubTitle, TabItem, TabList, Table, Tabs, Tag, Tags, Tbody, Td, TextArea, Tfoot, Th, Thead, Theme, Title, Tr, __test_exports__, classNames, createPrefixedClassNames, isBrowser, prefixedClassNames, useBulmaClasses, useClassPrefix, useConfig, usePrefixedClass, usePrefixedClassNames, validAlignContents, validAlignItems, validAlignSelfs, validAlignments$1 as validAlignments, validColorShades, validColors, validDisplays, validFlexDirections, validFlexGrowShrink, validFlexWraps, validFontFamilies, validJustifyContents, validSizes$1 as validSizes, validTableColors, validTextSizes, validTextTransforms, validTextWeights, validViewports, validVisibilities };
2740
2741
  //# sourceMappingURL=index.esm.js.map