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