@allxsmith/bestax-bulma 2.0.0 → 2.0.2

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',
@@ -503,6 +566,11 @@ const validColorShades = [
503
566
  '90',
504
567
  '95',
505
568
  'invert',
569
+ 'light',
570
+ 'dark',
571
+ 'soft',
572
+ 'bold',
573
+ 'on-scheme',
506
574
  ];
507
575
  const validSizes$1 = ['0', '1', '2', '3', '4', '5', '6', 'auto'];
508
576
  const validTextSizes = ['1', '2', '3', '4', '5', '6', '7'];
@@ -539,7 +607,7 @@ const validDisplays = [
539
607
  'inline-block',
540
608
  'inline-flex',
541
609
  ];
542
- const validVisibilities = ['hidden', 'sr-only'];
610
+ const validVisibilities = ['hidden', 'sr-only', 'invisible'];
543
611
  const validFlexDirections = [
544
612
  'row',
545
613
  'row-reverse',
@@ -585,7 +653,7 @@ const validAlignSelfs = [
585
653
  'baseline',
586
654
  'stretch',
587
655
  ];
588
- const validFlexGrowShrink = ['0', '1'];
656
+ const validFlexGrowShrink = ['0', '1', '2', '3', '4', '5'];
589
657
  const validViewports = [
590
658
  'mobile',
591
659
  'tablet',
@@ -594,101 +662,196 @@ const validViewports = [
594
662
  'fullhd',
595
663
  ];
596
664
  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;
665
+ const { classPrefix } = useConfig();
666
+ const { color, backgroundColor, colorShade, backgroundColorShade, 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, textSizeMobile, textSizeTablet, textSizeDesktop, textSizeWidescreen, textSizeFullhd, textAlignMobile, textAlignTablet, textAlignDesktop, textAlignWidescreen, textAlignFullhd, visibilityMobile, visibilityTablet, visibilityDesktop, visibilityWidescreen, visibilityFullhd, skeleton, clearfix, relative, ...rest } = props;
598
667
  const bulmaHelperClasses = React.useMemo(() => {
599
668
  const classes = [];
600
- const addClass = (prefix, value, validValues) => {
601
- if (value && (!validValues.length || validValues.includes(value))) {
602
- const className = viewport && validViewports.includes(viewport)
669
+ const addPrefixedClass = (className) => {
670
+ classes.push(classPrefix ? `${classPrefix}${className}` : className);
671
+ };
672
+ const addClass = (prefix, value, validValues, supportsViewport = false) => {
673
+ if (value && validValues.includes(value)) {
674
+ const className = supportsViewport && viewport && validViewports.includes(viewport)
603
675
  ? `${prefix}-${value}-${viewport}`
604
676
  : `${prefix}-${value}`;
605
- classes.push(className);
677
+ addPrefixedClass(className);
678
+ }
679
+ };
680
+ const addClassNoViewport = (prefix, value, validValues) => {
681
+ if (value && (!validValues.length || validValues.includes(value))) {
682
+ addPrefixedClass(`${prefix}-${value}`);
606
683
  }
607
684
  };
608
685
  const addColorClass = (prefix, value, shade) => {
609
686
  if (!value || ![...validColors, 'inherit', 'current'].includes(value))
610
687
  return;
611
688
  if (shade && validColorShades.includes(shade)) {
612
- const className = prefix === 'has-text' && viewport && validViewports.includes(viewport)
613
- ? `${prefix}-${value}-${shade}-${viewport}`
614
- : `${prefix}-${value}-${shade}`;
615
- classes.push(className);
689
+ const className = `${prefix}-${value}-${shade}`;
690
+ addPrefixedClass(className);
616
691
  }
617
692
  else {
618
- addClass(prefix, value, [...validColors, 'inherit', 'current']);
693
+ addClass(prefix, value, [...validColors, 'inherit', 'current'], false);
619
694
  }
620
695
  };
621
696
  addColorClass('has-text', color, colorShade);
622
- addColorClass('has-background', backgroundColor, colorShade);
623
- addClass('m', m, validSizes$1);
624
- addClass('mt', mt, validSizes$1);
625
- addClass('mr', mr, validSizes$1);
626
- addClass('mb', mb, validSizes$1);
627
- addClass('ml', ml, validSizes$1);
628
- addClass('mx', mx, validSizes$1);
629
- addClass('my', my, validSizes$1);
630
- addClass('p', p, validSizes$1);
631
- addClass('pt', pt, validSizes$1);
632
- addClass('pr', pr, validSizes$1);
633
- addClass('pb', pb, validSizes$1);
634
- addClass('pl', pl, validSizes$1);
635
- addClass('px', px, validSizes$1);
636
- addClass('py', py, validSizes$1);
637
- addClass('is-size', textSize, validTextSizes);
638
- addClass('has-text', textAlign, validAlignments$1);
639
- addClass('is', textTransform, validTextTransforms);
640
- addClass('has-text-weight', textWeight, validTextWeights);
641
- addClass('is-family', fontFamily, validFontFamilies);
642
- addClass('is', display, validDisplays);
697
+ addColorClass('has-background', backgroundColor, backgroundColorShade);
698
+ addClassNoViewport('m', m, validSizes$1);
699
+ addClassNoViewport('mt', mt, validSizes$1);
700
+ addClassNoViewport('mr', mr, validSizes$1);
701
+ addClassNoViewport('mb', mb, validSizes$1);
702
+ addClassNoViewport('ml', ml, validSizes$1);
703
+ addClassNoViewport('mx', mx, validSizes$1);
704
+ addClassNoViewport('my', my, validSizes$1);
705
+ addClassNoViewport('p', p, validSizes$1);
706
+ addClassNoViewport('pt', pt, validSizes$1);
707
+ addClassNoViewport('pr', pr, validSizes$1);
708
+ addClassNoViewport('pb', pb, validSizes$1);
709
+ addClassNoViewport('pl', pl, validSizes$1);
710
+ addClassNoViewport('px', px, validSizes$1);
711
+ addClassNoViewport('py', py, validSizes$1);
712
+ addClass('is-size', textSize, validTextSizes, true);
713
+ addClass('has-text', textAlign, validAlignments$1, true);
714
+ addClassNoViewport('is', textTransform, validTextTransforms);
715
+ addClassNoViewport('has-text-weight', textWeight, validTextWeights);
716
+ addClassNoViewport('is-family', fontFamily, validFontFamilies);
717
+ const addViewportSpecificTextSizeClass = (value, viewportSuffix) => {
718
+ if (value && validTextSizes.includes(value)) {
719
+ addPrefixedClass(`is-size-${value}${viewportSuffix}`);
720
+ }
721
+ };
722
+ addViewportSpecificTextSizeClass(textSizeMobile, '-mobile');
723
+ addViewportSpecificTextSizeClass(textSizeTablet, '-tablet');
724
+ addViewportSpecificTextSizeClass(textSizeDesktop, '-desktop');
725
+ addViewportSpecificTextSizeClass(textSizeWidescreen, '-widescreen');
726
+ addViewportSpecificTextSizeClass(textSizeFullhd, '-fullhd');
727
+ const addViewportSpecificTextAlignClass = (value, viewportSuffix) => {
728
+ if (value && validAlignments$1.includes(value)) {
729
+ addPrefixedClass(`has-text-${value}${viewportSuffix}`);
730
+ }
731
+ };
732
+ addViewportSpecificTextAlignClass(textAlignMobile, '-mobile');
733
+ addViewportSpecificTextAlignClass(textAlignTablet, '-tablet');
734
+ addViewportSpecificTextAlignClass(textAlignDesktop, '-desktop');
735
+ addViewportSpecificTextAlignClass(textAlignWidescreen, '-widescreen');
736
+ addViewportSpecificTextAlignClass(textAlignFullhd, '-fullhd');
737
+ const addViewportSpecificVisibilityClass = (value, viewportSuffix) => {
738
+ if (value === 'hidden') {
739
+ addPrefixedClass(`is-hidden${viewportSuffix}`);
740
+ }
741
+ else if (value === 'sr-only') {
742
+ addPrefixedClass(`is-sr-only${viewportSuffix}`);
743
+ }
744
+ else if (value === 'invisible') {
745
+ addPrefixedClass(`is-invisible${viewportSuffix}`);
746
+ }
747
+ };
748
+ addViewportSpecificVisibilityClass(visibilityMobile, '-mobile');
749
+ addViewportSpecificVisibilityClass(visibilityTablet, '-tablet');
750
+ addViewportSpecificVisibilityClass(visibilityDesktop, '-desktop');
751
+ addViewportSpecificVisibilityClass(visibilityWidescreen, '-widescreen');
752
+ addViewportSpecificVisibilityClass(visibilityFullhd, '-fullhd');
753
+ const addDisplayClass = (displayValue, viewportSuffix) => {
754
+ if (displayValue) {
755
+ if (displayValue === 'none') {
756
+ addPrefixedClass(`is-hidden${viewportSuffix}`);
757
+ }
758
+ else if (validDisplays.includes(displayValue)) {
759
+ addPrefixedClass(`is-${displayValue}${viewportSuffix}`);
760
+ }
761
+ }
762
+ };
763
+ addDisplayClass(displayMobile, '-mobile');
764
+ addDisplayClass(displayTablet, '-tablet');
765
+ addDisplayClass(displayDesktop, '-desktop');
766
+ addDisplayClass(displayWidescreen, '-widescreen');
767
+ addDisplayClass(displayFullhd, '-fullhd');
768
+ const hasViewportSpecificDisplay = !!(displayMobile ||
769
+ displayTablet ||
770
+ displayDesktop ||
771
+ displayWidescreen ||
772
+ displayFullhd);
773
+ if (!hasViewportSpecificDisplay) {
774
+ if (display === 'none') {
775
+ if (viewport && validViewports.includes(viewport)) {
776
+ addPrefixedClass(`is-hidden-${viewport}`);
777
+ }
778
+ else {
779
+ addPrefixedClass('is-hidden');
780
+ }
781
+ }
782
+ else {
783
+ addClass('is', display, [...validDisplays], true);
784
+ }
785
+ }
643
786
  if (visibility) {
644
- if (visibility === 'hidden' &&
787
+ if ((visibility === 'hidden' || visibility === 'invisible') &&
645
788
  viewport &&
646
789
  validViewports.includes(viewport)) {
647
- classes.push(`is-hidden-${viewport}`);
790
+ addPrefixedClass(`is-${visibility}-${viewport}`);
648
791
  }
649
792
  else if (validVisibilities.includes(visibility)) {
650
- classes.push(`is-${visibility}`);
793
+ addPrefixedClass(`is-${visibility}`);
651
794
  }
652
795
  }
653
- if (display === 'flex' || display === 'inline-flex') {
654
- addClass('is-flex-direction', flexDirection, validFlexDirections);
655
- addClass('is-flex-wrap', flexWrap, validFlexWraps);
656
- addClass('is-justify-content', justifyContent, validJustifyContents);
657
- addClass('is-align-content', alignContent, validAlignContents);
658
- addClass('is-align-items', alignItems, validAlignItems);
659
- addClass('is-align-self', alignSelf, validAlignSelfs);
660
- addClass('is-flex-grow', flexGrow, validFlexGrowShrink);
661
- addClass('is-flex-shrink', flexShrink, validFlexGrowShrink);
796
+ const hasFlexDisplay = display === 'flex' ||
797
+ display === 'inline-flex' ||
798
+ displayMobile === 'flex' ||
799
+ displayMobile === 'inline-flex' ||
800
+ displayTablet === 'flex' ||
801
+ displayTablet === 'inline-flex' ||
802
+ displayDesktop === 'flex' ||
803
+ displayDesktop === 'inline-flex' ||
804
+ displayWidescreen === 'flex' ||
805
+ displayWidescreen === 'inline-flex' ||
806
+ displayFullhd === 'flex' ||
807
+ displayFullhd === 'inline-flex';
808
+ if (hasFlexDisplay) {
809
+ addClassNoViewport('is-flex-direction', flexDirection, validFlexDirections);
810
+ addClassNoViewport('is-flex-wrap', flexWrap, validFlexWraps);
811
+ addClassNoViewport('is-justify-content', justifyContent, validJustifyContents);
812
+ addClassNoViewport('is-align-content', alignContent, validAlignContents);
813
+ addClassNoViewport('is-align-items', alignItems, validAlignItems);
662
814
  }
815
+ addClassNoViewport('is-align-self', alignSelf, validAlignSelfs);
816
+ addClassNoViewport('is-flex-grow', flexGrow, validFlexGrowShrink);
817
+ addClassNoViewport('is-flex-shrink', flexShrink, validFlexGrowShrink);
663
818
  if (float) {
664
- addClass('is-pulled', float, ['left', 'right']);
819
+ addClassNoViewport('is-pulled', float, ['left', 'right']);
665
820
  }
666
821
  if (overflow) {
667
- addClass('is', overflow, ['clipped']);
822
+ addClassNoViewport('is', overflow, ['clipped']);
668
823
  }
669
824
  if (overlay) {
670
- classes.push('is-overlay');
825
+ addPrefixedClass('is-overlay');
671
826
  }
672
827
  if (interaction) {
673
- addClass('is', interaction, ['unselectable', 'clickable']);
828
+ addClassNoViewport('is', interaction, ['unselectable', 'clickable']);
674
829
  }
675
830
  if (radius) {
676
- addClass('is', radius, ['radiusless']);
831
+ addClassNoViewport('is', radius, ['radiusless']);
677
832
  }
678
833
  if (shadow) {
679
- addClass('is', shadow, ['shadowless']);
834
+ addClassNoViewport('is', shadow, ['shadowless']);
680
835
  }
681
836
  if (responsive) {
682
- addClass('is', responsive, ['mobile', 'narrow']);
837
+ addClassNoViewport('is', responsive, ['mobile', 'narrow']);
683
838
  }
684
839
  if (skeleton) {
685
- classes.push('is-skeleton');
840
+ addPrefixedClass('is-skeleton');
841
+ }
842
+ if (clearfix) {
843
+ addPrefixedClass('is-clearfix');
844
+ }
845
+ if (relative) {
846
+ addPrefixedClass('is-relative');
686
847
  }
687
848
  return classNames(classes);
688
849
  }, [
850
+ classPrefix,
689
851
  color,
690
852
  backgroundColor,
691
853
  colorShade,
854
+ backgroundColorShade,
692
855
  m,
693
856
  mt,
694
857
  mr,
@@ -726,148 +889,87 @@ const useBulmaClasses = (props) => {
726
889
  shadow,
727
890
  responsive,
728
891
  viewport,
892
+ displayMobile,
893
+ displayTablet,
894
+ displayDesktop,
895
+ displayWidescreen,
896
+ displayFullhd,
729
897
  skeleton,
898
+ clearfix,
899
+ relative,
900
+ textSizeMobile,
901
+ textSizeTablet,
902
+ textSizeDesktop,
903
+ textSizeWidescreen,
904
+ textSizeFullhd,
905
+ textAlignMobile,
906
+ textAlignTablet,
907
+ textAlignDesktop,
908
+ textAlignWidescreen,
909
+ textAlignFullhd,
910
+ visibilityMobile,
911
+ visibilityTablet,
912
+ visibilityDesktop,
913
+ visibilityWidescreen,
914
+ visibilityFullhd,
730
915
  ]);
731
916
  return { bulmaHelperClasses, rest };
732
917
  };
733
918
 
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 }) => {
919
+ 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
920
  const { bulmaHelperClasses, rest } = useBulmaClasses({
798
921
  color: textColor,
799
922
  backgroundColor: bgColor,
800
923
  ...props,
801
924
  });
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);
925
+ const mainClass = usePrefixedClassNames('column');
926
+ const columnSpecificClasses = usePrefixedClassNames('', {
927
+ [`is-${size}`]: size !== undefined && size !== null,
928
+ [`is-${sizeMobile}-mobile`]: sizeMobile !== undefined && sizeMobile !== null,
929
+ [`is-${sizeTablet}-tablet`]: sizeTablet !== undefined && sizeTablet !== null,
930
+ [`is-${sizeDesktop}-desktop`]: sizeDesktop !== undefined && sizeDesktop !== null,
931
+ [`is-${sizeWidescreen}-widescreen`]: sizeWidescreen !== undefined && sizeWidescreen !== null,
932
+ [`is-${sizeFullhd}-fullhd`]: sizeFullhd !== undefined && sizeFullhd !== null,
933
+ [`is-offset-${offset}`]: offset !== undefined && offset !== null,
934
+ [`is-offset-${offsetMobile}-mobile`]: offsetMobile !== undefined && offsetMobile !== null,
935
+ [`is-offset-${offsetTablet}-tablet`]: offsetTablet !== undefined && offsetTablet !== null,
936
+ [`is-offset-${offsetDesktop}-desktop`]: offsetDesktop !== undefined && offsetDesktop !== null,
937
+ [`is-offset-${offsetWidescreen}-widescreen`]: offsetWidescreen !== undefined && offsetWidescreen !== null,
938
+ [`is-offset-${offsetFullhd}-fullhd`]: offsetFullhd !== undefined && offsetFullhd !== null,
939
+ 'is-narrow': !!isNarrow,
940
+ 'is-narrow-mobile': !!isNarrowMobile,
941
+ 'is-narrow-tablet': !!isNarrowTablet,
942
+ 'is-narrow-touch': !!isNarrowTouch,
943
+ 'is-narrow-desktop': !!isNarrowDesktop,
944
+ 'is-narrow-widescreen': !!isNarrowWidescreen,
945
+ 'is-narrow-fullhd': !!isNarrowFullhd,
946
+ });
947
+ const columnClasses = classNames(mainClass, columnSpecificClasses, className, bulmaHelperClasses);
825
948
  return (jsxRuntimeExports.jsx("div", { className: columnClasses, ...rest, children: children }));
826
949
  };
827
950
 
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 }) => {
951
+ const Columns = ({ className, textColor, color: _fieldColor, bgColor, isCentered, isGapless, isMultiline, isVCentered, isMobile, isDesktop, gapSize, gapSizeMobile, gapSizeTablet, gapSizeDesktop, gapSizeWidescreen, gapSizeFullhd, children, ...props }) => {
849
952
  const { bulmaHelperClasses, rest } = useBulmaClasses({
850
953
  color: textColor,
851
954
  backgroundColor: bgColor,
852
955
  ...props,
853
956
  });
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);
957
+ const mainClass = usePrefixedClassNames('columns');
958
+ const gapClasses = usePrefixedClassNames('', {
959
+ [`is-${gapSize}`]: gapSize !== undefined && gapSize !== null,
960
+ [`is-${gapSizeMobile}-mobile`]: gapSizeMobile !== undefined && gapSizeMobile !== null,
961
+ [`is-${gapSizeTablet}-tablet`]: gapSizeTablet !== undefined && gapSizeTablet !== null,
962
+ [`is-${gapSizeDesktop}-desktop`]: gapSizeDesktop !== undefined && gapSizeDesktop !== null,
963
+ [`is-${gapSizeWidescreen}-widescreen`]: gapSizeWidescreen !== undefined && gapSizeWidescreen !== null,
964
+ [`is-${gapSizeFullhd}-fullhd`]: gapSizeFullhd !== undefined && gapSizeFullhd !== null,
965
+ 'is-centered': !!isCentered,
966
+ 'is-gapless': !!isGapless,
967
+ 'is-multiline': !!isMultiline,
968
+ 'is-vcentered': !!isVCentered,
969
+ 'is-mobile': !!isMobile,
970
+ 'is-desktop': !!isDesktop,
971
+ });
972
+ const columnsClasses = classNames(mainClass, gapClasses, className, bulmaHelperClasses);
871
973
  return (jsxRuntimeExports.jsx("div", { className: columnsClasses, ...rest, children: children }));
872
974
  };
873
975
 
@@ -880,14 +982,13 @@ const validBreadcrumbSeparators = [
880
982
  ];
881
983
  const validBreadcrumbSizes = ['small', 'medium', 'large'];
882
984
  const Breadcrumb = ({ className, alignment, separator, size, children, ...props }) => {
883
- const { classPrefix } = useConfig();
884
985
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
885
- const mainClass = classPrefix ? `${classPrefix}breadcrumb` : 'breadcrumb';
886
- const breadcrumbClasses = classNames(mainClass, className, bulmaHelperClasses, {
986
+ const bulmaClasses = usePrefixedClassNames('breadcrumb', {
887
987
  [`is-${alignment}`]: alignment && validBreadcrumbAlignments.includes(alignment),
888
988
  [`has-${separator}-separator`]: separator && validBreadcrumbSeparators.includes(separator),
889
989
  [`is-${size}`]: size && validBreadcrumbSizes.includes(size),
890
990
  });
991
+ const breadcrumbClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
891
992
  return (jsxRuntimeExports.jsx("nav", { className: breadcrumbClasses, "aria-label": "breadcrumbs", ...rest, children: jsxRuntimeExports.jsx("ul", { children: children }) }));
892
993
  };
893
994
 
@@ -897,17 +998,28 @@ const renderFooter = (footer) => {
897
998
  const items = Array.isArray(footer) ? footer : [footer];
898
999
  return items.map((item, idx) => (jsxRuntimeExports.jsx("span", { className: "card-footer-item", children: item }, idx)));
899
1000
  };
900
- const Card = ({ className, children, textColor, bgColor, hasShadow = true, header, headerCentered, headerIcon, footer, image, imageAlt, ...props }) => {
901
- const { classPrefix } = useConfig();
1001
+ const hasCompoundComponents = (children) => {
1002
+ return React.Children.toArray(children).some(child => {
1003
+ if (!React.isValidElement(child))
1004
+ return false;
1005
+ return (child.type === CardHeader ||
1006
+ child.type === CardContent ||
1007
+ child.type === CardImage ||
1008
+ child.type === CardFooter ||
1009
+ child.type === CardFooterItem ||
1010
+ child.type === CardHeaderIcon);
1011
+ });
1012
+ };
1013
+ const CardComponent = ({ className, children, textColor, bgColor, hasShadow = true, header, headerCentered, headerIcon, footer, image, imageAlt, ...props }) => {
902
1014
  const { bulmaHelperClasses, rest } = useBulmaClasses({
903
1015
  color: textColor,
904
1016
  backgroundColor: bgColor,
905
1017
  ...props,
906
1018
  });
907
- const mainClass = classPrefix ? `${classPrefix}card` : 'card';
908
- const cardClasses = classNames(mainClass, className, bulmaHelperClasses, {
1019
+ const bulmaClasses = usePrefixedClassNames('card', {
909
1020
  'is-shadowless': !hasShadow,
910
1021
  });
1022
+ const cardClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
911
1023
  const renderHeader = (header, headerIcon, headerCentered) => {
912
1024
  if (!header && !headerIcon)
913
1025
  return null;
@@ -917,18 +1029,51 @@ const Card = ({ className, children, textColor, bgColor, hasShadow = true, heade
917
1029
  };
918
1030
  return (jsxRuntimeExports.jsxs("div", { className: cardClasses, ...rest, children: [renderHeader(header, headerIcon, headerCentered), image && (jsxRuntimeExports.jsx("div", { className: "card-image", children: typeof image === 'string' ? (jsxRuntimeExports.jsx("figure", { className: "image", children: jsxRuntimeExports.jsx("img", { src: image, alt: imageAlt !== null && imageAlt !== void 0 ? imageAlt : 'Card image' }) })) : (image) })), typeof children !== 'undefined' &&
919
1031
  children !== null &&
920
- children !== '' && jsxRuntimeExports.jsx("div", { className: "card-content", children: children }), footer && (jsxRuntimeExports.jsx("footer", { className: "card-footer", children: renderFooter(footer) }))] }));
921
- };
1032
+ children !== '' &&
1033
+ !hasCompoundComponents(children) && (jsxRuntimeExports.jsx("div", { className: "card-content", children: children })), typeof children !== 'undefined' &&
1034
+ children !== null &&
1035
+ children !== '' &&
1036
+ hasCompoundComponents(children) &&
1037
+ children, footer && (jsxRuntimeExports.jsx("footer", { className: "card-footer", children: renderFooter(footer) }))] }));
1038
+ };
1039
+ const CardHeader = ({ className, children, centered, ...props }) => {
1040
+ const hasHeaderTitle = React.Children.toArray(children).some(child => React.isValidElement(child) &&
1041
+ typeof child.type === 'function' &&
1042
+ child.type === CardHeaderTitle);
1043
+ return (jsxRuntimeExports.jsx("header", { className: classNames('card-header', className), ...props, children: hasHeaderTitle ? (children) : (jsxRuntimeExports.jsx("div", { className: classNames('card-header-title', {
1044
+ 'is-centered': centered,
1045
+ }), children: children })) }));
1046
+ };
1047
+ const CardHeaderTitle = ({ className, children, centered, ...props }) => (jsxRuntimeExports.jsx("div", { className: classNames('card-header-title', { 'is-centered': centered }, className), ...props, children: children }));
1048
+ const CardHeaderIcon = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("button", { className: classNames('card-header-icon', className), "aria-label": props['aria-label'] || 'more options', ...props, children: children }));
1049
+ const CardImage = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("div", { className: classNames('card-image', className), ...props, children: children }));
1050
+ const CardContent = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("div", { className: classNames('card-content', className), ...props, children: children }));
1051
+ const CardFooter = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("footer", { className: classNames('card-footer', className), ...props, children: children }));
1052
+ const CardFooterItem = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("span", { className: classNames('card-footer-item', className), ...props, children: children }));
1053
+ const CardWithSubComponents = CardComponent;
1054
+ const CardHeaderWithTitle = CardHeader;
1055
+ CardHeaderWithTitle.Title = CardHeaderTitle;
1056
+ CardHeaderWithTitle.Icon = CardHeaderIcon;
1057
+ CardWithSubComponents.Header = CardHeaderWithTitle;
1058
+ CardWithSubComponents.Image = CardImage;
1059
+ CardWithSubComponents.Content = CardContent;
1060
+ CardWithSubComponents.Footer = CardFooter;
1061
+ CardWithSubComponents.FooterItem = CardFooterItem;
922
1062
  const __test_exports__ = { renderFooter };
923
1063
 
924
1064
  const isBrowser = (win, doc) => typeof win !== 'undefined' && typeof doc !== 'undefined';
925
1065
  const DropdownComponent = ({ label, children, className, menuClassName, active: activeProp, up, right, hoverable, disabled, onActiveChange, closeOnClick = true, id, ...props }) => {
926
- const { classPrefix } = useConfig();
927
1066
  const [active, setActive] = React.useState(!!activeProp);
928
1067
  const dropdownRef = React.useRef(null);
929
1068
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
930
- const mainClass = classPrefix ? `${classPrefix}dropdown` : 'dropdown';
931
- const buttonClass = classPrefix ? `${classPrefix}button` : 'button';
1069
+ const bulmaClasses = usePrefixedClassNames('dropdown', {
1070
+ 'is-active': active,
1071
+ 'is-up': up,
1072
+ 'is-right': right,
1073
+ 'is-hoverable': hoverable,
1074
+ 'is-disabled': disabled,
1075
+ });
1076
+ const buttonClass = usePrefixedClassNames('button');
932
1077
  React.useEffect(() => {
933
1078
  if (typeof activeProp === 'boolean')
934
1079
  setActive(activeProp);
@@ -961,13 +1106,7 @@ const DropdownComponent = ({ label, children, className, menuClassName, active:
961
1106
  onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(false);
962
1107
  }
963
1108
  };
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);
1109
+ const dropdownClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
971
1110
  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
1111
  };
973
1112
  const DropdownItem = ({ children, active, className, as: Component = 'a', ...props }) => {
@@ -982,10 +1121,9 @@ const Dropdown = Object.assign(DropdownComponent, {
982
1121
 
983
1122
  const MenuListLevelContext = React.createContext(0);
984
1123
  const MenuComponent = ({ className, children, ...props }) => {
985
- const { classPrefix } = useConfig();
986
1124
  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 }));
1125
+ const bulmaClasses = usePrefixedClassNames('menu');
1126
+ return (jsxRuntimeExports.jsx("aside", { className: classNames(bulmaClasses, bulmaHelperClasses, className), ...rest, children: children }));
989
1127
  };
990
1128
  const MenuLabel = ({ className, children, ...props }) => {
991
1129
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
@@ -1027,21 +1165,26 @@ const Menu = Object.assign(MenuComponent, {
1027
1165
  Item: MenuItem,
1028
1166
  });
1029
1167
 
1030
- const Message = ({ className, title, textColor, color, bgColor, onClose, children, ...props }) => {
1031
- const { classPrefix } = useConfig();
1168
+ const MessageComponent = ({ className, title, textColor, color, bgColor, onClose, children, ...props }) => {
1032
1169
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1033
1170
  color: textColor,
1034
1171
  backgroundColor: bgColor,
1035
1172
  ...props,
1036
1173
  });
1037
- const mainClass = classPrefix ? `${classPrefix}message` : 'message';
1038
- const deleteClass = classPrefix ? `${classPrefix}delete` : 'delete';
1039
- const messageClasses = classNames(mainClass, color && `is-${color}`, className, bulmaHelperClasses);
1174
+ const bulmaClasses = usePrefixedClassNames('message', {
1175
+ [`is-${color}`]: color,
1176
+ });
1177
+ const deleteClass = usePrefixedClassNames('delete');
1178
+ const messageClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1040
1179
  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
1180
  };
1181
+ const MessageHeader = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("div", { className: classNames('message-header', className), ...props, children: children }));
1182
+ const MessageBody = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("div", { className: classNames('message-body', className), ...props, children: children }));
1183
+ const MessageWithSubComponents = MessageComponent;
1184
+ MessageWithSubComponents.Header = MessageHeader;
1185
+ MessageWithSubComponents.Body = MessageBody;
1042
1186
 
1043
1187
  const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCardTitle, modalCardFoot, type, children, ...props }) => {
1044
- const { classPrefix } = useConfig();
1045
1188
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1046
1189
  color: textColor,
1047
1190
  backgroundColor: bgColor,
@@ -1054,25 +1197,26 @@ const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCa
1054
1197
  isModalCard = false;
1055
1198
  else
1056
1199
  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);
1200
+ const bulmaClasses = usePrefixedClassNames('modal', {
1201
+ 'is-active': active,
1202
+ });
1203
+ const deleteClass = usePrefixedClassNames('delete');
1204
+ const modalClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1060
1205
  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
1206
  };
1062
1207
 
1063
1208
  const Navbar = ({ className, textColor, bgColor, color, transparent, fixed, children, ...props }) => {
1064
- const { classPrefix } = useConfig();
1065
1209
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1066
1210
  color: textColor,
1067
1211
  backgroundColor: bgColor,
1068
1212
  ...props,
1069
1213
  });
1070
- const mainClass = classPrefix ? `${classPrefix}navbar` : 'navbar';
1071
- const navbarClasses = classNames(mainClass, bulmaHelperClasses, className, {
1214
+ const bulmaClasses = usePrefixedClassNames('navbar', {
1072
1215
  [`is-${color}`]: color,
1073
1216
  'is-transparent': transparent,
1074
1217
  [`is-fixed-${fixed}`]: fixed,
1075
1218
  });
1219
+ const navbarClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1076
1220
  return (jsxRuntimeExports.jsx("nav", { className: navbarClasses, role: "navigation", "aria-label": "main navigation", ...rest, children: children }));
1077
1221
  };
1078
1222
  const NavbarBrand = ({ className, children, textColor, ...props }) => {
@@ -1159,19 +1303,18 @@ const PaginationNext = ({ className, disabled, children, ...props }) => (jsxRunt
1159
1303
  }
1160
1304
  : props.onClick, children: children }));
1161
1305
  const Pagination = ({ color, textColor, bgColor, size, align, rounded, className, children, ...props }) => {
1162
- const { classPrefix } = useConfig();
1163
1306
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1164
1307
  color: textColor,
1165
1308
  backgroundColor: bgColor,
1166
1309
  ...props,
1167
1310
  });
1168
- const mainClass = classPrefix ? `${classPrefix}pagination` : 'pagination';
1169
- const paginationClasses = classNames(mainClass, bulmaHelperClasses, className, {
1311
+ const bulmaClasses = usePrefixedClassNames('pagination', {
1170
1312
  [`is-${color}`]: color,
1171
1313
  [`is-${size}`]: size,
1172
1314
  [`is-${align}`]: align,
1173
1315
  'is-rounded': rounded,
1174
1316
  });
1317
+ const paginationClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1175
1318
  return (jsxRuntimeExports.jsx("nav", { className: paginationClasses, role: "navigation", "aria-label": "pagination", ...rest, children: children }));
1176
1319
  };
1177
1320
  const PaginationList = ({ className, textColor, bgColor, children, ...props }) => {
@@ -1211,15 +1354,14 @@ Pagination.Previous = PaginationPrevious;
1211
1354
  Pagination.Next = PaginationNext;
1212
1355
 
1213
1356
  const Panel = ({ color, className, children, ...props }) => {
1214
- const { classPrefix } = useConfig();
1215
1357
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1216
1358
  color,
1217
1359
  ...props,
1218
1360
  });
1219
- const mainClass = classPrefix ? `${classPrefix}panel` : 'panel';
1220
- const panelClasses = classNames(mainClass, bulmaHelperClasses, className, {
1361
+ const bulmaClasses = usePrefixedClassNames('panel', {
1221
1362
  [`is-${color}`]: color,
1222
1363
  });
1364
+ const panelClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1223
1365
  return (jsxRuntimeExports.jsx("nav", { className: panelClasses, ...rest, children: children }));
1224
1366
  };
1225
1367
  const PanelHeading = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("p", { className: classNames('panel-heading', className), ...props, children: children }));
@@ -1227,8 +1369,7 @@ const PanelTabs = ({ className, children, ...props }) => (jsxRuntimeExports.jsx(
1227
1369
  const PanelBlock = ({ className, active, children, ...props }) => (jsxRuntimeExports.jsx("a", { className: classNames('panel-block', className, { 'is-active': active }), ...props, children: children }));
1228
1370
  const PanelIcon = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("span", { className: classNames('panel-icon', className), ...props, children: children }));
1229
1371
  const PanelInputBlock = ({ value, onChange, placeholder, iconClassName = 'fas fa-search', ...props }) => {
1230
- const { classPrefix } = useConfig();
1231
- const inputClass = classPrefix ? `${classPrefix}input` : 'input';
1372
+ const inputClass = usePrefixedClassNames('input');
1232
1373
  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
1374
  };
1234
1375
  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 +1383,19 @@ Panel.CheckboxBlock = PanelCheckboxBlock;
1242
1383
  Panel.ButtonBlock = PanelButtonBlock;
1243
1384
 
1244
1385
  const Tabs = ({ align, size, fullwidth, boxed, toggle, rounded, color, className, children, ...props }) => {
1245
- const { classPrefix } = useConfig();
1246
1386
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1247
- color,
1248
1387
  ...props,
1249
1388
  });
1250
- const mainClass = classPrefix ? `${classPrefix}tabs` : 'tabs';
1251
- const tabsClass = classNames(mainClass, bulmaHelperClasses, {
1389
+ const bulmaClasses = usePrefixedClassNames('tabs', {
1252
1390
  [`is-${align}`]: align,
1253
1391
  [`is-${size}`]: size,
1392
+ [`is-${color}`]: color,
1254
1393
  'is-fullwidth': fullwidth,
1255
1394
  'is-boxed': boxed,
1256
1395
  'is-toggle': toggle,
1257
- 'is-toggle-rounded': toggle && rounded,
1258
- [`is-${color}`]: color,
1259
- }, className);
1396
+ 'is-toggle-rounded': rounded,
1397
+ });
1398
+ const tabsClass = classNames(bulmaClasses, bulmaHelperClasses, className);
1260
1399
  return (jsxRuntimeExports.jsx("div", { className: tabsClass, ...rest, children: children }));
1261
1400
  };
1262
1401
  const TabList = ({ className, children, ...props }) => (jsxRuntimeExports.jsx("ul", { className: classNames(className), ...props, children: children }));
@@ -1265,176 +1404,252 @@ Tabs.List = TabList;
1265
1404
  Tabs.Item = TabItem;
1266
1405
 
1267
1406
  const Block = ({ className, textColor, bgColor, children, ...props }) => {
1268
- const { classPrefix } = useConfig();
1269
1407
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1270
1408
  color: textColor,
1271
1409
  backgroundColor: bgColor,
1272
1410
  ...props,
1273
1411
  });
1274
- const mainClass = classPrefix ? `${classPrefix}block` : 'block';
1275
- const blockClasses = classNames(mainClass, className, bulmaHelperClasses);
1412
+ const bulmaClasses = usePrefixedClassNames('block');
1413
+ const blockClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1276
1414
  return (jsxRuntimeExports.jsx("div", { className: blockClasses, ...rest, children: children }));
1277
1415
  };
1278
1416
 
1279
1417
  const Box = ({ className, textColor, bgColor, hasShadow = true, children, ...props }) => {
1280
- const { classPrefix } = useConfig();
1281
1418
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1282
1419
  color: textColor,
1283
1420
  backgroundColor: bgColor,
1284
1421
  ...props,
1285
1422
  });
1286
- const mainClass = classPrefix ? `${classPrefix}box` : 'box';
1287
- const boxClasses = classNames(mainClass, className, bulmaHelperClasses, {
1423
+ const bulmaClasses = usePrefixedClassNames('box', {
1288
1424
  'is-shadowless': !hasShadow,
1289
1425
  });
1426
+ const boxClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1290
1427
  return (jsxRuntimeExports.jsx("div", { className: boxClasses, ...rest, children: children }));
1291
1428
  };
1292
1429
 
1293
1430
  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
1431
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1296
1432
  color: textColor,
1297
1433
  backgroundColor: bgColor,
1298
1434
  ...props,
1299
1435
  });
1300
- const mainClass = classPrefix ? `${classPrefix}button` : 'button';
1301
- const buttonClasses = classNames(mainClass, className, bulmaHelperClasses, {
1302
- [`is-${color}`]: color,
1303
- [`is-${size}`]: size && size !== 'normal',
1436
+ const bulmaClasses = usePrefixedClassNames('button', {
1437
+ [`is-${color}`]: color && validColors.includes(color),
1438
+ [`is-${size}`]: size,
1439
+ 'is-outlined': isOutlined,
1304
1440
  'is-light': isLight,
1305
- 'is-rounded': isRounded,
1306
1441
  'is-loading': isLoading,
1307
1442
  'is-static': isStatic,
1308
- 'is-fullwidth': isFullWidth,
1309
- 'is-outlined': isOutlined,
1310
- 'is-inverted': isInverted,
1443
+ 'is-disabled': isDisabled,
1444
+ 'is-rounded': isRounded,
1445
+ 'is-hovered': isHovered,
1311
1446
  'is-focused': isFocused,
1312
1447
  'is-active': isActive,
1313
- 'is-hovered': isHovered,
1314
- 'is-disabled': isDisabled,
1448
+ 'is-inverted': isInverted,
1449
+ 'is-fullwidth': isFullWidth,
1315
1450
  });
1451
+ const buttonClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1316
1452
  if (as === 'a') {
1317
- const { ...anchorRest } = rest;
1453
+ 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
1454
  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()
1455
+ ? (e) => e.preventDefault()
1320
1456
  : onClick, ...anchorRest, children: children }));
1321
1457
  }
1322
1458
  return (jsxRuntimeExports.jsx("button", { className: buttonClasses, disabled: isDisabled, onClick: onClick, ...rest, children: children }));
1323
1459
  };
1324
1460
 
1325
1461
  const Buttons = ({ className, textColor, bgColor, isCentered, isRight, hasAddons, children, ...props }) => {
1326
- const { classPrefix } = useConfig();
1462
+ const buttonsClasses = usePrefixedClassNames('buttons', {
1463
+ 'is-centered': isCentered,
1464
+ 'is-right': isRight,
1465
+ 'has-addons': hasAddons,
1466
+ });
1327
1467
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1328
1468
  color: textColor,
1329
1469
  backgroundColor: bgColor,
1330
1470
  ...props,
1331
1471
  });
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 }));
1472
+ const combinedClasses = classNames(buttonsClasses, className, bulmaHelperClasses);
1473
+ return (jsxRuntimeExports.jsx("div", { className: combinedClasses, ...rest, children: children }));
1339
1474
  };
1340
1475
 
1341
1476
  const validSizes = ['small', 'medium', 'large'];
1342
1477
  const Content = ({ className, textColor, bgColor, size, children, ...props }) => {
1343
- const { classPrefix } = useConfig();
1344
1478
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1345
1479
  color: textColor,
1346
1480
  backgroundColor: bgColor,
1347
1481
  ...props,
1348
1482
  });
1349
- const mainClass = classPrefix ? `${classPrefix}content` : 'content';
1350
- const contentClasses = classNames(mainClass, className, bulmaHelperClasses, {
1483
+ const bulmaClasses = usePrefixedClassNames('content', {
1351
1484
  [`is-${size}`]: size && size !== 'normal' && validSizes.includes(size),
1352
1485
  });
1486
+ const contentClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1353
1487
  return (jsxRuntimeExports.jsx("div", { className: contentClasses, ...rest, children: children }));
1354
1488
  };
1355
1489
 
1356
1490
  const Delete = ({ className, textColor, bgColor, onClick, size, ariaLabel = 'Close', disabled = false, ...props }) => {
1357
- const { classPrefix } = useConfig();
1358
1491
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1359
1492
  color: textColor,
1360
1493
  backgroundColor: bgColor,
1361
1494
  ...props,
1362
1495
  });
1363
- const mainClass = classPrefix ? `${classPrefix}delete` : 'delete';
1364
- const classes = classNames(mainClass, {
1496
+ const bulmaClasses = usePrefixedClassNames('delete', {
1365
1497
  [`is-${size}`]: size,
1366
1498
  'is-disabled': disabled,
1367
- }, bulmaHelperClasses, className);
1499
+ });
1500
+ const classes = classNames(bulmaClasses, bulmaHelperClasses, className);
1368
1501
  return (jsxRuntimeExports.jsx("button", { className: classes, onClick: onClick, "aria-label": ariaLabel, disabled: disabled, type: "button", ...rest }));
1369
1502
  };
1370
1503
 
1371
- function getIconClasses(library, name, libraryFeatures) {
1504
+ function getIconClasses(library, name, variant, features) {
1372
1505
  let baseClass = '';
1373
1506
  let iconClass = '';
1374
- let features = Array.isArray(libraryFeatures)
1375
- ? libraryFeatures
1376
- : libraryFeatures
1377
- ? [libraryFeatures]
1507
+ let featureList = Array.isArray(features)
1508
+ ? features
1509
+ : features
1510
+ ? [features]
1378
1511
  : [];
1379
1512
  switch (library) {
1380
1513
  case 'fa': {
1381
- const faStyle = features.find(f => ['fas', 'far', 'fab', 'fal', 'fad', 'fat'].includes(f)) || 'fas';
1514
+ const styleMap = {
1515
+ solid: 'fas',
1516
+ regular: 'far',
1517
+ brands: 'fab',
1518
+ light: 'fal',
1519
+ duotone: 'fad',
1520
+ thin: 'fat',
1521
+ };
1522
+ const faStyle = variant ? styleMap[variant] || variant : 'fas';
1382
1523
  baseClass = faStyle;
1383
1524
  iconClass = `fa-${name}`;
1384
- features = features.filter(f => f !== faStyle);
1385
- return [baseClass, iconClass, ...features].join(' ');
1525
+ return [baseClass, iconClass, ...featureList].join(' ');
1386
1526
  }
1387
1527
  case 'mdi':
1388
1528
  baseClass = 'mdi';
1389
1529
  iconClass = `mdi-${name}`;
1390
- return [baseClass, iconClass, ...features].join(' ');
1391
- case 'ion':
1392
- baseClass = 'ion';
1393
- iconClass = `ion-${name}`;
1394
- return [baseClass, iconClass, ...features].join(' ');
1530
+ return [baseClass, iconClass, ...featureList].join(' ');
1531
+ case 'material-icons': {
1532
+ const styleVariants = {
1533
+ filled: 'material-icons',
1534
+ outlined: 'material-icons-outlined',
1535
+ round: 'material-icons-round',
1536
+ sharp: 'material-icons-sharp',
1537
+ };
1538
+ baseClass = variant
1539
+ ? styleVariants[variant] || `material-icons-${variant}`
1540
+ : 'material-icons';
1541
+ return [baseClass, ...featureList].join(' ');
1542
+ }
1543
+ case 'material-symbols': {
1544
+ const styleVariants = {
1545
+ outlined: 'material-symbols-outlined',
1546
+ rounded: 'material-symbols-rounded',
1547
+ sharp: 'material-symbols-sharp',
1548
+ };
1549
+ baseClass = variant
1550
+ ? styleVariants[variant] || `material-symbols-${variant}`
1551
+ : 'material-symbols-outlined';
1552
+ return [baseClass, ...featureList].join(' ');
1553
+ }
1395
1554
  default:
1396
- return [name, ...features].join(' ');
1555
+ return [name, ...featureList].join(' ');
1397
1556
  }
1398
1557
  }
1399
- const Icon = ({ className, textColor, bgColor, name, library = 'fa', libraryFeatures, size, ariaLabel = 'icon', style, ...props }) => {
1400
- const { classPrefix } = useConfig();
1558
+ const Icon = ({ className, textColor, bgColor, name, library = 'fa', variant, features, libraryFeatures, size, ariaLabel = 'icon', style, ...restProps }) => {
1401
1559
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1402
1560
  color: textColor,
1403
1561
  backgroundColor: bgColor,
1404
- ...props,
1562
+ ...restProps,
1405
1563
  });
1406
- const mainClass = classPrefix ? `${classPrefix}icon` : 'icon';
1407
- const iconContainerClasses = classNames(mainClass, {
1564
+ const bulmaClasses = usePrefixedClassNames('icon', {
1408
1565
  [`is-${size}`]: size,
1409
- }, bulmaHelperClasses, className);
1410
- const iClasses = getIconClasses(library, name, libraryFeatures);
1566
+ });
1567
+ const iconContainerClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1568
+ let finalVariant = variant;
1569
+ let finalFeatures = features;
1570
+ if (libraryFeatures && !variant && !features) {
1571
+ const legacyFeatures = Array.isArray(libraryFeatures)
1572
+ ? libraryFeatures
1573
+ : [libraryFeatures];
1574
+ if (library === 'fa') {
1575
+ const faStyle = legacyFeatures.find(f => [
1576
+ 'fas',
1577
+ 'far',
1578
+ 'fab',
1579
+ 'fal',
1580
+ 'fad',
1581
+ 'fat',
1582
+ 'solid',
1583
+ 'regular',
1584
+ 'brands',
1585
+ 'light',
1586
+ 'duotone',
1587
+ 'thin',
1588
+ ].includes(f));
1589
+ if (faStyle) {
1590
+ finalVariant = faStyle;
1591
+ finalFeatures = legacyFeatures.filter(f => f !== faStyle);
1592
+ }
1593
+ else {
1594
+ finalFeatures = legacyFeatures;
1595
+ }
1596
+ }
1597
+ else if (library === 'material-icons' || library === 'material-symbols') {
1598
+ const styleVariants = library === 'material-icons'
1599
+ ? ['filled', 'outlined', 'round', 'sharp']
1600
+ : ['outlined', 'rounded', 'sharp'];
1601
+ const styleVariant = legacyFeatures.find(f => styleVariants.includes(f));
1602
+ if (styleVariant) {
1603
+ finalVariant = styleVariant;
1604
+ finalFeatures = legacyFeatures.filter(f => f !== styleVariant);
1605
+ }
1606
+ else {
1607
+ finalFeatures = legacyFeatures;
1608
+ }
1609
+ }
1610
+ else {
1611
+ finalFeatures = legacyFeatures;
1612
+ }
1613
+ }
1614
+ if (library === 'ion') {
1615
+ let ionName = name;
1616
+ if (finalVariant === 'outline') {
1617
+ ionName = `${name}-outline`;
1618
+ }
1619
+ else if (finalVariant === 'sharp') {
1620
+ ionName = `${name}-sharp`;
1621
+ }
1622
+ return (jsxRuntimeExports.jsx("span", { className: iconContainerClasses, "aria-label": ariaLabel, style: style, ...rest, children: jsxRuntimeExports.jsx("ion-icon", { name: ionName }) }));
1623
+ }
1624
+ const iClasses = getIconClasses(library, name, finalVariant, finalFeatures);
1625
+ if (library === 'material-icons' || library === 'material-symbols') {
1626
+ return (jsxRuntimeExports.jsx("span", { className: iconContainerClasses, "aria-label": ariaLabel, style: style, ...rest, children: jsxRuntimeExports.jsx("i", { className: iClasses, children: name }) }));
1627
+ }
1411
1628
  return (jsxRuntimeExports.jsx("span", { className: iconContainerClasses, "aria-label": ariaLabel, style: style, ...rest, children: jsxRuntimeExports.jsx("i", { className: iClasses }) }));
1412
1629
  };
1413
1630
 
1414
1631
  const IconText = ({ className, textColor, bgColor, iconProps, children, items, ...props }) => {
1415
- const { classPrefix } = useConfig();
1416
1632
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1417
1633
  color: textColor,
1418
1634
  backgroundColor: bgColor,
1419
1635
  ...props,
1420
1636
  });
1421
- const mainClass = classPrefix ? `${classPrefix}icon-text` : 'icon-text';
1422
- const iconTextClasses = classNames(mainClass, bulmaHelperClasses, className);
1637
+ const bulmaClasses = usePrefixedClassNames('icon-text');
1638
+ const iconTextClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1423
1639
  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
1640
  };
1425
1641
 
1426
1642
  const Image = ({ as, className, textColor, bgColor, size, isRounded, isRetina, src, alt, children, ...props }) => {
1427
- const { classPrefix } = useConfig();
1428
1643
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1429
1644
  color: textColor,
1430
1645
  backgroundColor: bgColor,
1431
1646
  ...props,
1432
1647
  });
1433
- const mainClass = classPrefix ? `${classPrefix}image` : 'image';
1434
- const imageClasses = classNames(mainClass, className, bulmaHelperClasses, {
1648
+ const bulmaClasses = usePrefixedClassNames('image', {
1435
1649
  [`is-${size}`]: size,
1436
1650
  'has-ratio': size && typeof size === 'string' && size.includes('by'),
1437
1651
  });
1652
+ const imageClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1438
1653
  let Tag;
1439
1654
  if (as) {
1440
1655
  Tag = as;
@@ -1445,48 +1660,42 @@ const Image = ({ as, className, textColor, bgColor, size, isRounded, isRetina, s
1445
1660
  else {
1446
1661
  Tag = 'div';
1447
1662
  }
1448
- const content = children ? (children) : (jsxRuntimeExports.jsx("img", { className: classNames({ 'is-rounded': isRounded }), src: src, alt: alt, ...(isRetina && src ? { srcSet: `${src} 2x` } : {}) }));
1663
+ const roundedClass = usePrefixedClassNames('is-rounded');
1664
+ const content = children ? (children) : (jsxRuntimeExports.jsx("img", { className: classNames({ [roundedClass]: isRounded }), src: src, alt: alt, ...(isRetina && src ? { srcSet: `${src} 2x` } : {}) }));
1449
1665
  return (jsxRuntimeExports.jsx(Tag, { className: imageClasses, ...rest, children: content }));
1450
1666
  };
1451
1667
 
1452
1668
  const Notification = ({ className, color, isLight, hasDelete, onDelete, children, ...props }) => {
1453
- const { classPrefix } = useConfig();
1454
1669
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1455
1670
  ...props,
1456
1671
  });
1457
- const mainClass = classPrefix ? `${classPrefix}notification` : 'notification';
1458
- const deleteClass = classPrefix ? `${classPrefix}delete` : 'delete';
1459
- const notificationClasses = classNames(mainClass, className, bulmaHelperClasses, {
1672
+ const bulmaClasses = usePrefixedClassNames('notification', {
1460
1673
  [`is-${color}`]: color && validColors.includes(color),
1461
1674
  'is-light': isLight,
1462
1675
  });
1463
- return (jsxRuntimeExports.jsxs("div", { className: notificationClasses, ...rest, children: [hasDelete && (jsxRuntimeExports.jsx("button", { className: deleteClass, onClick: onDelete, "aria-label": "Close notification" })), children] }));
1676
+ const deleteClasses = usePrefixedClassNames('delete');
1677
+ const notificationClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1678
+ return (jsxRuntimeExports.jsxs("div", { className: notificationClasses, ...rest, children: [hasDelete && (jsxRuntimeExports.jsx("button", { className: deleteClasses, onClick: onDelete, "aria-label": "Close notification" })), children] }));
1464
1679
  };
1465
1680
 
1466
1681
  const Progress = ({ className, color, size, value, max, children, ...props }) => {
1467
- const { classPrefix } = useConfig();
1468
1682
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1469
1683
  ...props,
1470
1684
  });
1471
- const mainClass = classPrefix ? `${classPrefix}progress` : 'progress';
1472
- const progressClasses = classNames(mainClass, className, bulmaHelperClasses, {
1685
+ const bulmaClasses = usePrefixedClassNames('progress', {
1473
1686
  [`is-${color}`]: color && validColors.includes(color),
1474
1687
  [`is-${size}`]: size,
1475
1688
  });
1689
+ const progressClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1476
1690
  return (jsxRuntimeExports.jsx("progress", { className: progressClasses, value: value, max: max, ...rest, children: children }));
1477
1691
  };
1478
1692
 
1479
1693
  const Skeleton = ({ className, variant = 'block', lines = 3, children, ...props }) => {
1480
- const { classPrefix } = useConfig();
1694
+ const linesClass = usePrefixedClassNames('skeleton-lines');
1695
+ const blockClass = usePrefixedClassNames('skeleton-block');
1481
1696
  if (variant === 'lines') {
1482
- const linesClass = classPrefix
1483
- ? `${classPrefix}skeleton-lines`
1484
- : 'skeleton-lines';
1485
1697
  return (jsxRuntimeExports.jsx("div", { className: classNames(linesClass, className), ...props, children: Array.from({ length: lines }).map((_, i) => (jsxRuntimeExports.jsx("div", {}, i))) }));
1486
1698
  }
1487
- const blockClass = classPrefix
1488
- ? `${classPrefix}skeleton-block`
1489
- : 'skeleton-block';
1490
1699
  return (jsxRuntimeExports.jsx("div", { className: classNames(blockClass, className), ...props, children: children }));
1491
1700
  };
1492
1701
 
@@ -1501,35 +1710,31 @@ const validSubTitleElements = [
1501
1710
  'p',
1502
1711
  ];
1503
1712
  const SubTitle = ({ className, size, as = 'h1', hasSkeleton, children, ...props }) => {
1504
- const { classPrefix } = useConfig();
1505
1713
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1506
1714
  const element = validSubTitleElements.includes(as) ? as : 'h1';
1507
1715
  const validSize = size && validSubTitleSizes.includes(size) ? size : undefined;
1508
- const mainClass = classPrefix ? `${classPrefix}subtitle` : 'subtitle';
1509
- const subTitleClasses = classNames(mainClass, className, bulmaHelperClasses, {
1716
+ const bulmaClasses = usePrefixedClassNames('subtitle', {
1510
1717
  [`is-${validSize}`]: validSize,
1511
1718
  'has-skeleton': hasSkeleton,
1512
1719
  });
1720
+ const subTitleClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1513
1721
  const Tag = element === 'p' ? 'p' : validSize ? `h${validSize}` : element;
1514
1722
  return (jsxRuntimeExports.jsx(Tag, { className: subTitleClasses, ...rest, children: children }));
1515
1723
  };
1516
1724
 
1517
1725
  const Table = ({ className, isBordered, isStriped, isNarrow, isHoverable, isFullwidth, isResponsive, children, ...props }) => {
1518
- const { classPrefix } = useConfig();
1519
1726
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1520
- const mainClass = classPrefix ? `${classPrefix}table` : 'table';
1521
- const tableClasses = classNames(mainClass, className, bulmaHelperClasses, {
1727
+ const bulmaClasses = usePrefixedClassNames('table', {
1522
1728
  'is-bordered': isBordered,
1523
1729
  'is-striped': isStriped,
1524
1730
  'is-narrow': isNarrow,
1525
1731
  'is-hoverable': isHoverable,
1526
1732
  'is-fullwidth': isFullwidth,
1527
1733
  });
1734
+ const containerClass = usePrefixedClassNames('table-container');
1735
+ const tableClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1528
1736
  const tableElement = (jsxRuntimeExports.jsx("table", { className: tableClasses, ...rest, children: children }));
1529
1737
  if (isResponsive) {
1530
- const containerClass = classPrefix
1531
- ? `${classPrefix}table-container`
1532
- : 'table-container';
1533
1738
  return jsxRuntimeExports.jsx("div", { className: containerClass, children: tableElement });
1534
1739
  }
1535
1740
  return tableElement;
@@ -1549,16 +1754,15 @@ const validTagColors = [
1549
1754
  ];
1550
1755
  const validTagSizes = ['normal', 'medium', 'large'];
1551
1756
  const Tag = ({ className, color, size, isRounded, isDelete, isHoverable, onDelete, children, ...props }) => {
1552
- const { classPrefix } = useConfig();
1553
1757
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1554
- const mainClass = classPrefix ? `${classPrefix}tag` : 'tag';
1555
- const tagClasses = classNames(mainClass, className, bulmaHelperClasses, {
1758
+ const bulmaClasses = usePrefixedClassNames('tag', {
1556
1759
  [`is-${color}`]: color && validTagColors.includes(color),
1557
1760
  [`is-${size}`]: size && size !== 'normal' && validTagSizes.includes(size),
1558
1761
  'is-rounded': isRounded,
1559
1762
  'is-delete': isDelete,
1560
1763
  'is-hoverable': isHoverable,
1561
1764
  });
1765
+ const tagClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1562
1766
  if (isDelete) {
1563
1767
  return (jsxRuntimeExports.jsx("button", { className: tagClasses, onClick: onDelete, "aria-label": "Delete tag", ...rest }));
1564
1768
  }
@@ -1566,13 +1770,12 @@ const Tag = ({ className, color, size, isRounded, isDelete, isHoverable, onDelet
1566
1770
  };
1567
1771
 
1568
1772
  const Tags = ({ className, hasAddons, isMultiline, children, ...props }) => {
1569
- const { classPrefix } = useConfig();
1570
1773
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1571
- const mainClass = classPrefix ? `${classPrefix}tags` : 'tags';
1572
- const tagsClasses = classNames(mainClass, className, bulmaHelperClasses, {
1774
+ const bulmaClasses = usePrefixedClassNames('tags', {
1573
1775
  'has-addons': hasAddons,
1574
1776
  'are-multiline': isMultiline,
1575
1777
  });
1778
+ const tagsClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1576
1779
  return (jsxRuntimeExports.jsx("div", { className: tagsClasses, ...rest, children: children }));
1577
1780
  };
1578
1781
 
@@ -1595,10 +1798,11 @@ const validTableColors = [
1595
1798
  'white',
1596
1799
  ];
1597
1800
  const Td = ({ className, color, children, ...props }) => {
1598
- const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1599
- const tdClasses = classNames(className, bulmaHelperClasses, {
1801
+ const colorClass = usePrefixedClassNames('', {
1600
1802
  [`is-${color}`]: color && validTableColors.includes(color),
1601
1803
  });
1804
+ const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1805
+ const tdClasses = classNames(colorClass, className, bulmaHelperClasses);
1602
1806
  return (jsxRuntimeExports.jsx("td", { className: tdClasses, ...rest, children: children }));
1603
1807
  };
1604
1808
 
@@ -1610,11 +1814,12 @@ const Tfoot = ({ className, children, ...props }) => {
1610
1814
 
1611
1815
  const validAlignments = ['left', 'right', 'centered'];
1612
1816
  const Th = ({ className, isAligned, width, color, children, ...props }) => {
1613
- const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1614
- const thClasses = classNames(className, bulmaHelperClasses, {
1817
+ const bulmaClasses = usePrefixedClassNames('', {
1615
1818
  [`has-text-${isAligned}`]: isAligned && validAlignments.includes(isAligned),
1616
1819
  [`is-${color}`]: color && validTableColors.includes(color),
1617
1820
  });
1821
+ const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1822
+ const thClasses = classNames(bulmaClasses, className, bulmaHelperClasses);
1618
1823
  return (jsxRuntimeExports.jsx("th", { className: thClasses, style: width
1619
1824
  ? { width: typeof width === 'number' ? `${width}px` : width }
1620
1825
  : undefined, ...rest, children: children }));
@@ -1629,46 +1834,44 @@ const Thead = ({ className, children, ...props }) => {
1629
1834
  const validTitleSizes = ['1', '2', '3', '4', '5', '6'];
1630
1835
  const validTitleElements = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p'];
1631
1836
  const Title = ({ className, size, isSpaced, as = 'h1', hasSkeleton, children, ...props }) => {
1632
- const { classPrefix } = useConfig();
1633
1837
  const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1634
1838
  const element = validTitleElements.includes(as) ? as : 'h1';
1635
1839
  const validSize = size && validTitleSizes.includes(size) ? size : undefined;
1636
- const mainClass = classPrefix ? `${classPrefix}title` : 'title';
1637
- const titleClasses = classNames(mainClass, className, bulmaHelperClasses, {
1840
+ const bulmaClasses = usePrefixedClassNames('title', {
1638
1841
  [`is-${validSize}`]: validSize,
1639
1842
  'is-spaced': isSpaced,
1640
1843
  'has-skeleton': hasSkeleton,
1641
1844
  });
1845
+ const titleClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
1642
1846
  const Tag = element === 'p' ? 'p' : validSize ? `h${validSize}` : element;
1643
1847
  return (jsxRuntimeExports.jsx(Tag, { className: titleClasses, ...rest, children: children }));
1644
1848
  };
1645
1849
 
1646
1850
  const Tr = ({ className, isSelected, color, children, ...props }) => {
1647
- const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1648
- const trClasses = classNames(className, bulmaHelperClasses, {
1851
+ const bulmaClasses = usePrefixedClassNames('', {
1649
1852
  'is-selected': isSelected,
1650
1853
  [`is-${color}`]: color && validTableColors.includes(color),
1651
1854
  });
1855
+ const { bulmaHelperClasses, rest } = useBulmaClasses({ ...props });
1856
+ const trClasses = classNames(bulmaClasses, className, bulmaHelperClasses);
1652
1857
  return (jsxRuntimeExports.jsx("tr", { className: trClasses, ...rest, children: children }));
1653
1858
  };
1654
1859
 
1655
1860
  const Checkbox = React.forwardRef(({ disabled, className, children, ...props }, ref) => {
1656
- const { classPrefix } = useConfig();
1657
1861
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1658
1862
  ...props,
1659
1863
  });
1660
- const mainClass = classPrefix ? `${classPrefix}checkbox` : 'checkbox';
1864
+ const mainClass = usePrefixedClassNames('checkbox');
1661
1865
  const checkboxClass = classNames(mainClass, bulmaHelperClasses, className);
1662
1866
  return (jsxRuntimeExports.jsxs("label", { className: checkboxClass, children: [jsxRuntimeExports.jsx("input", { ref: ref, type: "checkbox", disabled: disabled, ...rest }), children] }));
1663
1867
  });
1664
1868
  Checkbox.displayName = 'Checkbox';
1665
1869
 
1666
1870
  const Checkboxes = ({ children, className, ...props }) => {
1667
- const { classPrefix } = useConfig();
1668
1871
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1669
1872
  ...props,
1670
1873
  });
1671
- const mainClass = classPrefix ? `${classPrefix}checkboxes` : 'checkboxes';
1874
+ const mainClass = usePrefixedClassNames('checkboxes');
1672
1875
  const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);
1673
1876
  return (jsxRuntimeExports.jsx("div", { className: wrapperClass, ...rest, children: children }));
1674
1877
  };
@@ -1676,7 +1879,6 @@ const Checkboxes = ({ children, className, ...props }) => {
1676
1879
  const allowedColors = [...validColors, 'inherit', 'current'];
1677
1880
  const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isLoading, isExpanded, size, textColor, bgColor, iconLeft, iconRight, iconLeftName, iconLeftSize, iconRightName, iconRightSize, className, children, ...props }, ref) => {
1678
1881
  const Component = (as === 'p' ? 'p' : 'div');
1679
- const { classPrefix } = useConfig();
1680
1882
  const { textColor: _ignoredTextColor, bgColor: _ignoredBgColor, ...restProps } = props;
1681
1883
  const safeTextColor = allowedColors.includes(textColor)
1682
1884
  ? textColor
@@ -1703,49 +1905,47 @@ const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isL
1703
1905
  size: iconRightSize,
1704
1906
  }
1705
1907
  : undefined);
1706
- const mainClass = classPrefix ? `${classPrefix}control` : 'control';
1707
- const controlClass = classNames(mainClass, bulmaHelperClasses, {
1908
+ const mainClass = usePrefixedClassNames('control', {
1708
1909
  'has-icons-left': hasIconsLeft || !!leftIconProps,
1709
1910
  'has-icons-right': hasIconsRight || !!rightIconProps,
1710
1911
  'is-loading': isLoading,
1711
1912
  'is-expanded': isExpanded,
1712
1913
  [`is-${size}`]: !!size,
1713
- }, className);
1914
+ });
1915
+ const controlClass = classNames(mainClass, bulmaHelperClasses, className);
1714
1916
  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
1917
  });
1716
1918
  Control.displayName = 'Control';
1717
1919
 
1718
1920
  const FieldLabel = ({ size, textColor, bgColor, className, children, ...props }) => {
1719
- const { classPrefix } = useConfig();
1720
1921
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1721
1922
  color: textColor,
1722
1923
  backgroundColor: bgColor,
1723
1924
  ...props,
1724
1925
  });
1725
- const mainClass = classPrefix ? `${classPrefix}field-label` : 'field-label';
1726
- const fieldLabelClass = classNames(mainClass, bulmaHelperClasses, { [`is-${size}`]: size }, className);
1926
+ const mainClass = usePrefixedClassNames('field-label', {
1927
+ [`is-${size}`]: !!size,
1928
+ });
1929
+ const fieldLabelClass = classNames(mainClass, bulmaHelperClasses, className);
1727
1930
  return (jsxRuntimeExports.jsx("div", { className: fieldLabelClass, ...props, ...rest, children: children }));
1728
1931
  };
1729
1932
  const FieldBody = ({ textColor, bgColor, className, children, ...props }) => {
1730
- const { classPrefix } = useConfig();
1731
1933
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1732
1934
  color: textColor,
1733
1935
  backgroundColor: bgColor,
1734
1936
  ...props,
1735
1937
  });
1736
- const mainClass = classPrefix ? `${classPrefix}field-body` : 'field-body';
1938
+ const mainClass = usePrefixedClassNames('field-body');
1737
1939
  const fieldBodyClass = classNames(mainClass, bulmaHelperClasses, className);
1738
1940
  return (jsxRuntimeExports.jsx("div", { className: fieldBodyClass, ...props, ...rest, children: children }));
1739
1941
  };
1740
- const Field = ({ horizontal, grouped, hasAddons, label, labelSize, labelProps, textColor, bgColor, className, children, ...props }) => {
1741
- const { classPrefix } = useConfig();
1942
+ const Field = ({ horizontal, grouped, hasAddons, label, labelSize, labelProps, textColor, color: _fieldColor, bgColor, className, children, ...props }) => {
1742
1943
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1743
1944
  color: textColor,
1744
1945
  backgroundColor: bgColor,
1745
1946
  ...props,
1746
1947
  });
1747
- const mainClass = classPrefix ? `${classPrefix}field` : 'field';
1748
- const fieldClass = classNames(mainClass, bulmaHelperClasses, {
1948
+ const mainClass = usePrefixedClassNames('field', {
1749
1949
  'is-horizontal': horizontal,
1750
1950
  'has-addons': !!hasAddons,
1751
1951
  'is-grouped': grouped === true ||
@@ -1755,11 +1955,12 @@ const Field = ({ horizontal, grouped, hasAddons, label, labelSize, labelProps, t
1755
1955
  'is-grouped-centered': grouped === 'centered',
1756
1956
  'is-grouped-right': grouped === 'right',
1757
1957
  'is-grouped-multiline': grouped === 'multiline',
1758
- }, className);
1958
+ });
1959
+ const fieldClass = classNames(mainClass, bulmaHelperClasses, className);
1759
1960
  const mappedLabelSize = labelSize === 'normal' ? undefined : labelSize;
1961
+ const labelClass = usePrefixedClassNames('label');
1760
1962
  let renderedLabel = null;
1761
1963
  if (label) {
1762
- const labelClass = classPrefix ? `${classPrefix}label` : 'label';
1763
1964
  if (horizontal) {
1764
1965
  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
1966
  }
@@ -1785,7 +1986,6 @@ Field.Label = FieldLabel;
1785
1986
  Field.Body = FieldBody;
1786
1987
 
1787
1988
  const File = React.forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isCentered, hasName, label, iconLeft, iconRight, className, inputClassName, fileName, ...props }, ref) => {
1788
- const { classPrefix } = useConfig();
1789
1989
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1790
1990
  color,
1791
1991
  ...props,
@@ -1800,73 +2000,69 @@ const File = React.forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isC
1800
2000
  else if (isCentered) {
1801
2001
  alignmentClass = 'is-centered';
1802
2002
  }
1803
- const mainClass = classPrefix ? `${classPrefix}file` : 'file';
1804
- const fileClass = classNames(mainClass, bulmaHelperClasses, {
1805
- [`is-${color}`]: color,
1806
- [`is-${size}`]: size,
2003
+ const mainClass = usePrefixedClassNames('file', {
2004
+ [`is-${color}`]: !!color,
2005
+ [`is-${size}`]: !!size,
1807
2006
  'is-boxed': isBoxed,
1808
2007
  'is-fullwidth': isFullwidth,
1809
2008
  'has-name': hasName,
1810
- }, alignmentClass, className);
2009
+ });
2010
+ const fileClass = classNames(mainClass, bulmaHelperClasses, alignmentClass, className);
1811
2011
  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
2012
  });
1813
2013
  File.displayName = 'File';
1814
2014
 
1815
2015
  const Input = React.forwardRef(({ color, size, isRounded, isStatic, isHovered, isFocused, isLoading, className, disabled, readOnly, ...props }, ref) => {
1816
- const { classPrefix } = useConfig();
1817
2016
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1818
2017
  color,
1819
2018
  ...props,
1820
2019
  });
1821
- const mainClass = classPrefix ? `${classPrefix}input` : 'input';
1822
- const inputClass = classNames(mainClass, bulmaHelperClasses, {
1823
- [`is-${color}`]: color,
1824
- [`is-${size}`]: size,
2020
+ const mainClass = usePrefixedClassNames('input', {
2021
+ [`is-${color}`]: !!color,
2022
+ [`is-${size}`]: !!size,
1825
2023
  'is-rounded': isRounded,
1826
2024
  'is-static': isStatic,
1827
2025
  'is-hovered': isHovered,
1828
2026
  'is-focused': isFocused,
1829
2027
  'is-loading': isLoading,
1830
- }, className);
2028
+ });
2029
+ const inputClass = classNames(mainClass, bulmaHelperClasses, className);
1831
2030
  return (jsxRuntimeExports.jsx("input", { ref: ref, className: inputClass, disabled: disabled, readOnly: readOnly, ...rest }));
1832
2031
  });
1833
2032
  Input.displayName = 'Input';
1834
2033
 
1835
2034
  const Radio = React.forwardRef(({ disabled, className, children, ...props }, ref) => {
1836
- const { classPrefix } = useConfig();
1837
2035
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1838
2036
  ...props,
1839
2037
  });
1840
- const mainClass = classPrefix ? `${classPrefix}radio` : 'radio';
2038
+ const mainClass = usePrefixedClassNames('radio');
1841
2039
  const radioClass = classNames(mainClass, bulmaHelperClasses, className);
1842
2040
  return (jsxRuntimeExports.jsxs("label", { className: radioClass, children: [jsxRuntimeExports.jsx("input", { ref: ref, type: "radio", disabled: disabled, ...rest }), children] }));
1843
2041
  });
1844
2042
  Radio.displayName = 'Radio';
1845
2043
 
1846
2044
  const Radios = ({ children, className, ...props }) => {
1847
- const { classPrefix } = useConfig();
1848
2045
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1849
2046
  ...props,
1850
2047
  });
1851
- const mainClass = classPrefix ? `${classPrefix}radios` : 'radios';
2048
+ const mainClass = usePrefixedClassNames('radios');
1852
2049
  const wrapperClass = classNames(mainClass, bulmaHelperClasses, className);
1853
2050
  return (jsxRuntimeExports.jsx("div", { className: wrapperClass, ...rest, children: children }));
1854
2051
  };
1855
2052
 
1856
2053
  const Select = React.forwardRef(({ color, size, isRounded, isLoading, isActive, className, disabled, children, multiple, multipleSize, ...props }, ref) => {
1857
- const { classPrefix } = useConfig();
1858
2054
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1859
2055
  color,
1860
2056
  ...props,
1861
2057
  });
1862
- const mainClass = classPrefix ? `${classPrefix}select` : 'select';
1863
- const selectClass = classNames(mainClass, bulmaHelperClasses, {
1864
- [`is-${color}`]: color,
1865
- [`is-${size}`]: size,
2058
+ const mainClass = usePrefixedClassNames('select', {
2059
+ [`is-${color}`]: !!color,
2060
+ [`is-${size}`]: !!size,
1866
2061
  'is-rounded': isRounded,
1867
2062
  'is-loading': isLoading,
1868
2063
  'is-active': isActive,
1869
- }, className);
2064
+ });
2065
+ const selectClass = classNames(mainClass, bulmaHelperClasses, className);
1870
2066
  const selectProps = {
1871
2067
  disabled,
1872
2068
  multiple,
@@ -1880,15 +2076,13 @@ const Select = React.forwardRef(({ color, size, isRounded, isLoading, isActive,
1880
2076
  Select.displayName = 'Select';
1881
2077
 
1882
2078
  const TextArea = React.forwardRef(({ color, size, isRounded, isStatic, isHovered, isFocused, isLoading, isActive, hasFixedSize, className, disabled, readOnly, rows, ...props }, ref) => {
1883
- const { classPrefix } = useConfig();
1884
2079
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1885
2080
  color,
1886
2081
  ...props,
1887
2082
  });
1888
- const mainClass = classPrefix ? `${classPrefix}textarea` : 'textarea';
1889
- const textareaClass = classNames(mainClass, bulmaHelperClasses, {
1890
- [`is-${color}`]: color,
1891
- [`is-${size}`]: size,
2083
+ const mainClass = usePrefixedClassNames('textarea', {
2084
+ [`is-${color}`]: !!color,
2085
+ [`is-${size}`]: !!size,
1892
2086
  'is-rounded': isRounded,
1893
2087
  'is-static': isStatic,
1894
2088
  'is-hovered': isHovered,
@@ -1896,96 +2090,55 @@ const TextArea = React.forwardRef(({ color, size, isRounded, isStatic, isHovered
1896
2090
  'is-loading': isLoading,
1897
2091
  'is-active': isActive,
1898
2092
  'has-fixed-size': hasFixedSize,
1899
- }, className);
2093
+ });
2094
+ const textareaClass = classNames(mainClass, bulmaHelperClasses, className);
1900
2095
  return (jsxRuntimeExports.jsx("textarea", { ref: ref, className: textareaClass, disabled: disabled, readOnly: readOnly, rows: rows, ...rest }));
1901
2096
  });
1902
2097
  TextArea.displayName = 'TextArea';
1903
2098
 
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 }) => {
2099
+ const Cell = ({ colStart, colFromEnd, colSpan, rowStart, rowFromEnd, rowSpan, className, textColor, color: _fieldColor, bgColor, children, ...props }) => {
1921
2100
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1922
2101
  color: textColor,
1923
2102
  backgroundColor: bgColor,
1924
2103
  ...props,
1925
2104
  });
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);
2105
+ const mainClass = usePrefixedClassNames('cell');
2106
+ const cellGridClasses = usePrefixedClassNames('', {
2107
+ [`is-col-start-${colStart}`]: colStart !== undefined && colStart !== null,
2108
+ [`is-col-from-end-${colFromEnd}`]: colFromEnd !== undefined && colFromEnd !== null,
2109
+ [`is-col-span-${colSpan}`]: colSpan !== undefined && colSpan !== null,
2110
+ [`is-row-start-${rowStart}`]: rowStart !== undefined && rowStart !== null,
2111
+ [`is-row-from-end-${rowFromEnd}`]: rowFromEnd !== undefined && rowFromEnd !== null,
2112
+ [`is-row-span-${rowSpan}`]: rowSpan !== undefined && rowSpan !== null,
2113
+ });
2114
+ const cellClasses = classNames(mainClass, cellGridClasses, className, bulmaHelperClasses);
1936
2115
  return (jsxRuntimeExports.jsx("div", { className: cellClasses, ...rest, children: children }));
1937
2116
  };
1938
2117
 
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 }) => {
2118
+ const Grid = ({ isFixed = false, gap, columnGap, rowGap, minCol, fixedCols, fixedColsMobile, fixedColsTablet, fixedColsDesktop, fixedColsWidescreen, fixedColsFullhd, className, textColor, color: _fieldColor, bgColor, children, ...props }) => {
1972
2119
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1973
2120
  color: textColor,
1974
2121
  backgroundColor: bgColor,
1975
2122
  ...props,
1976
2123
  });
1977
- const { classPrefix } = useConfig();
1978
- const mainClass = classPrefix ? `${classPrefix}grid` : 'grid';
1979
- const gridClasses = classNames(mainClass, ...getGridInnerClasses({ gap, columnGap, rowGap, minCol }), bulmaHelperClasses, className);
2124
+ const mainClass = usePrefixedClassNames('grid');
2125
+ const gridInnerClasses = usePrefixedClassNames('', {
2126
+ [`is-gap-${gap}`]: gap !== undefined && gap !== null,
2127
+ [`is-column-gap-${columnGap}`]: columnGap !== undefined && columnGap !== null,
2128
+ [`is-row-gap-${rowGap}`]: rowGap !== undefined && rowGap !== null,
2129
+ [`is-col-min-${minCol}`]: minCol !== undefined && minCol !== null,
2130
+ });
2131
+ const fixedGridClasses = usePrefixedClassNames('fixed-grid', {
2132
+ 'has-auto-count': fixedCols === 'auto',
2133
+ [`has-${fixedCols}-cols`]: fixedCols !== undefined && fixedCols !== 'auto',
2134
+ [`has-${fixedColsMobile}-cols-mobile`]: fixedColsMobile !== undefined && fixedColsMobile !== null,
2135
+ [`has-${fixedColsTablet}-cols-tablet`]: fixedColsTablet !== undefined && fixedColsTablet !== null,
2136
+ [`has-${fixedColsDesktop}-cols-desktop`]: fixedColsDesktop !== undefined && fixedColsDesktop !== null,
2137
+ [`has-${fixedColsWidescreen}-cols-widescreen`]: fixedColsWidescreen !== undefined && fixedColsWidescreen !== null,
2138
+ [`has-${fixedColsFullhd}-cols-fullhd`]: fixedColsFullhd !== undefined && fixedColsFullhd !== null,
2139
+ });
2140
+ const gridClasses = classNames(mainClass, gridInnerClasses, bulmaHelperClasses, className);
1980
2141
  if (isFixed) {
1981
- const fixedGridClasses = classNames('fixed-grid', ...getFixedGridClasses({
1982
- fixedCols,
1983
- fixedColsMobile,
1984
- fixedColsTablet,
1985
- fixedColsDesktop,
1986
- fixedColsWidescreen,
1987
- fixedColsFullhd,
1988
- }));
1989
2142
  return (jsxRuntimeExports.jsx("div", { className: fixedGridClasses, children: jsxRuntimeExports.jsx("div", { className: gridClasses, ...rest, children: children }) }));
1990
2143
  }
1991
2144
  return (jsxRuntimeExports.jsx("div", { className: gridClasses, ...rest, children: children }));
@@ -2582,7 +2735,6 @@ const Theme = ({ bulmaVars = {}, children, className, isRoot = false, ...restPro
2582
2735
  };
2583
2736
 
2584
2737
  const Container = ({ className, textColor, bgColor, fluid, widescreen, fullhd, breakpoint, isMax, children, ...props }) => {
2585
- const { classPrefix } = useConfig();
2586
2738
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2587
2739
  color: textColor,
2588
2740
  backgroundColor: bgColor,
@@ -2602,139 +2754,186 @@ const Container = ({ className, textColor, bgColor, fluid, widescreen, fullhd, b
2602
2754
  breakpointClass = `is-${breakpoint}`;
2603
2755
  }
2604
2756
  }
2605
- const mainClass = classPrefix ? `${classPrefix}container` : 'container';
2606
- const containerClasses = classNames(mainClass, {
2757
+ const mainClass = usePrefixedClassNames('container');
2758
+ const containerModifiers = usePrefixedClassNames('', {
2607
2759
  'is-fluid': fluid,
2608
2760
  'is-widescreen': widescreen,
2609
2761
  'is-fullhd': fullhd,
2610
- }, breakpointClass, className, bulmaHelperClasses);
2762
+ });
2763
+ const prefixedBreakpointClass = usePrefixedClassNames(breakpointClass || '');
2764
+ const containerClasses = classNames(mainClass, containerModifiers, prefixedBreakpointClass, className, bulmaHelperClasses);
2611
2765
  return (jsxRuntimeExports.jsx("div", { className: containerClasses, ...rest, children: children }));
2612
2766
  };
2613
2767
 
2614
- const Footer = ({ as = 'footer', className, children, ...props }) => {
2615
- const { classPrefix } = useConfig();
2616
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2768
+ const Footer = ({ as = 'footer', className, children, color, bgColor, textColor, ...props }) => {
2769
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2770
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2771
+ backgroundColor: bgColor,
2772
+ ...props,
2773
+ });
2617
2774
  const Tag = as;
2618
- const mainClass = classPrefix ? `${classPrefix}footer` : 'footer';
2619
- return (jsxRuntimeExports.jsx(Tag, { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2775
+ const mainClass = usePrefixedClassNames('footer');
2776
+ const footerClasses = classNames(mainClass, bulmaHelperClasses, className);
2777
+ return (jsxRuntimeExports.jsx(Tag, { className: footerClasses, ...rest, children: children }));
2620
2778
  };
2621
2779
 
2622
2780
  const Hero = ({ className, color, size, bgColor, fullheightWithNavbar, children, ...props }) => {
2623
- const { classPrefix } = useConfig();
2624
2781
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2625
- color,
2626
2782
  backgroundColor: bgColor,
2627
2783
  ...props,
2628
2784
  });
2629
- const mainClass = classPrefix ? `${classPrefix}hero` : 'hero';
2630
- const heroClasses = classNames(mainClass, bulmaHelperClasses, className, color && `is-${color}`, size && size !== 'fullheight-with-navbar' && `is-${size}`, {
2785
+ const mainClass = usePrefixedClassNames('hero', {
2786
+ [`is-${color}`]: color,
2787
+ [`is-${size}`]: size && size !== 'fullheight-with-navbar',
2631
2788
  'is-fullheight-with-navbar': fullheightWithNavbar || size === 'fullheight-with-navbar',
2632
2789
  });
2790
+ const heroClasses = classNames(mainClass, bulmaHelperClasses, className);
2633
2791
  return (jsxRuntimeExports.jsx("section", { className: heroClasses, ...rest, children: children }));
2634
2792
  };
2635
2793
  const HeroHead = ({ className, children, color, bgColor, textColor, ...props }) => {
2636
- const { classPrefix } = useConfig();
2637
2794
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2638
2795
  color: textColor !== null && textColor !== void 0 ? textColor : color,
2639
2796
  backgroundColor: bgColor,
2640
2797
  ...props,
2641
2798
  });
2642
- const mainClass = classPrefix ? `${classPrefix}hero-head` : 'hero-head';
2643
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2799
+ const mainClass = usePrefixedClassNames('hero-head');
2800
+ const heroHeadClasses = classNames(mainClass, bulmaHelperClasses, className);
2801
+ return (jsxRuntimeExports.jsx("div", { className: heroHeadClasses, ...rest, children: children }));
2644
2802
  };
2645
2803
  const HeroBody = ({ className, children, color, bgColor, textColor, ...props }) => {
2646
- const { classPrefix } = useConfig();
2647
2804
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2648
2805
  color: textColor !== null && textColor !== void 0 ? textColor : color,
2649
2806
  backgroundColor: bgColor,
2650
2807
  ...props,
2651
2808
  });
2652
- const mainClass = classPrefix ? `${classPrefix}hero-body` : 'hero-body';
2653
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2809
+ const mainClass = usePrefixedClassNames('hero-body');
2810
+ const heroBodyClasses = classNames(mainClass, bulmaHelperClasses, className);
2811
+ return (jsxRuntimeExports.jsx("div", { className: heroBodyClasses, ...rest, children: children }));
2654
2812
  };
2655
2813
  const HeroFoot = ({ className, children, color, bgColor, textColor, ...props }) => {
2656
- const { classPrefix } = useConfig();
2657
2814
  const { bulmaHelperClasses, rest } = useBulmaClasses({
2658
2815
  color: textColor !== null && textColor !== void 0 ? textColor : color,
2659
2816
  backgroundColor: bgColor,
2660
2817
  ...props,
2661
2818
  });
2662
- const mainClass = classPrefix ? `${classPrefix}hero-foot` : 'hero-foot';
2663
- return (jsxRuntimeExports.jsx("div", { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2819
+ const mainClass = usePrefixedClassNames('hero-foot');
2820
+ const heroFootClasses = classNames(mainClass, bulmaHelperClasses, className);
2821
+ return (jsxRuntimeExports.jsx("div", { className: heroFootClasses, ...rest, children: children }));
2664
2822
  };
2665
2823
  Hero.Head = HeroHead;
2666
2824
  Hero.Body = HeroBody;
2667
2825
  Hero.Foot = HeroFoot;
2668
2826
 
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 }));
2827
+ const Level = ({ isMobile, className, children, color, bgColor, textColor, ...props }) => {
2828
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2829
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2830
+ backgroundColor: bgColor,
2831
+ ...props,
2832
+ });
2833
+ const mainClass = usePrefixedClassNames('level', {
2834
+ 'is-mobile': isMobile,
2835
+ });
2836
+ const levelClasses = classNames(mainClass, bulmaHelperClasses, className);
2837
+ return (jsxRuntimeExports.jsx("nav", { className: levelClasses, ...rest, children: children }));
2676
2838
  };
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 }));
2839
+ const LevelLeft = ({ className, children, color, bgColor, textColor, ...props }) => {
2840
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2841
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2842
+ backgroundColor: bgColor,
2843
+ ...props,
2844
+ });
2845
+ const mainClass = usePrefixedClassNames('level-left');
2846
+ const levelLeftClasses = classNames(mainClass, bulmaHelperClasses, className);
2847
+ return (jsxRuntimeExports.jsx("div", { className: levelLeftClasses, ...rest, children: children }));
2682
2848
  };
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 }));
2849
+ const LevelRight = ({ className, children, color, bgColor, textColor, ...props }) => {
2850
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2851
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2852
+ backgroundColor: bgColor,
2853
+ ...props,
2854
+ });
2855
+ const mainClass = usePrefixedClassNames('level-right');
2856
+ const levelRightClasses = classNames(mainClass, bulmaHelperClasses, className);
2857
+ return (jsxRuntimeExports.jsx("div", { className: levelRightClasses, ...rest, children: children }));
2688
2858
  };
2689
- const LevelItem = ({ as = 'div', hasTextCentered, className, children, href, target, rel, ...props }) => {
2690
- const { classPrefix } = useConfig();
2691
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2859
+ const LevelItem = ({ as = 'div', hasTextCentered, className, children, href, target, rel, color, bgColor, textColor, ...props }) => {
2860
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2861
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2862
+ backgroundColor: bgColor,
2863
+ ...props,
2864
+ });
2692
2865
  const Tag = as;
2693
- const mainClass = classPrefix ? `${classPrefix}level-item` : 'level-item';
2866
+ const mainClass = usePrefixedClassNames('level-item', {
2867
+ 'has-text-centered': hasTextCentered,
2868
+ });
2869
+ const levelItemClasses = classNames(mainClass, bulmaHelperClasses, className);
2694
2870
  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 }));
2871
+ return (jsxRuntimeExports.jsx("a", { className: levelItemClasses, href: href, target: target, rel: rel, ...rest, children: children }));
2698
2872
  }
2699
- return (jsxRuntimeExports.jsx(Tag, { className: classNames(mainClass, bulmaHelperClasses, className, {
2700
- 'has-text-centered': hasTextCentered,
2701
- }), ...rest, children: children }));
2873
+ return (jsxRuntimeExports.jsx(Tag, { className: levelItemClasses, ...rest, children: children }));
2702
2874
  };
2703
2875
  Level.Left = LevelLeft;
2704
2876
  Level.Right = LevelRight;
2705
2877
  Level.Item = LevelItem;
2706
2878
 
2707
- const Media = ({ as = 'article', className, children, ...props }) => {
2708
- const { classPrefix } = useConfig();
2709
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2879
+ const Media = ({ as = 'article', className, children, color, bgColor, textColor, ...props }) => {
2880
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2881
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2882
+ backgroundColor: bgColor,
2883
+ ...props,
2884
+ });
2710
2885
  const Tag = as;
2711
- const mainClass = classPrefix ? `${classPrefix}media` : 'media';
2712
- return (jsxRuntimeExports.jsx(Tag, { className: classNames(mainClass, bulmaHelperClasses, className), ...rest, children: children }));
2886
+ const mainClass = usePrefixedClassNames('media');
2887
+ const mediaClasses = classNames(mainClass, bulmaHelperClasses, className);
2888
+ return (jsxRuntimeExports.jsx(Tag, { className: mediaClasses, ...rest, children: children }));
2713
2889
  };
2714
- const MediaLeft = ({ as = 'figure', className, children, ...props }) => {
2715
- const { bulmaHelperClasses, rest } = useBulmaClasses(props);
2890
+ const MediaLeft = ({ as = 'figure', className, children, color, bgColor, textColor, ...props }) => {
2891
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2892
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2893
+ backgroundColor: bgColor,
2894
+ ...props,
2895
+ });
2716
2896
  const Tag = as;
2717
- return (jsxRuntimeExports.jsx(Tag, { className: classNames('media-left', bulmaHelperClasses, className), ...rest, children: children }));
2897
+ const mainClass = usePrefixedClassNames('media-left');
2898
+ const mediaLeftClasses = classNames(mainClass, bulmaHelperClasses, className);
2899
+ return (jsxRuntimeExports.jsx(Tag, { className: mediaLeftClasses, ...rest, children: children }));
2718
2900
  };
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 }));
2901
+ const MediaContent = ({ className, children, color, bgColor, textColor, ...props }) => {
2902
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2903
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2904
+ backgroundColor: bgColor,
2905
+ ...props,
2906
+ });
2907
+ const mainClass = usePrefixedClassNames('media-content');
2908
+ const mediaContentClasses = classNames(mainClass, bulmaHelperClasses, className);
2909
+ return (jsxRuntimeExports.jsx("div", { className: mediaContentClasses, ...rest, children: children }));
2722
2910
  };
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 }));
2911
+ const MediaRight = ({ className, children, color, bgColor, textColor, ...props }) => {
2912
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2913
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2914
+ backgroundColor: bgColor,
2915
+ ...props,
2916
+ });
2917
+ const mainClass = usePrefixedClassNames('media-right');
2918
+ const mediaRightClasses = classNames(mainClass, bulmaHelperClasses, className);
2919
+ return (jsxRuntimeExports.jsx("div", { className: mediaRightClasses, ...rest, children: children }));
2726
2920
  };
2727
- Media.Left = MediaLeft;
2728
- Media.Content = MediaContent;
2729
- Media.Right = MediaRight;
2921
+ const MediaWithSubcomponents = Media;
2922
+ MediaWithSubcomponents.Left = MediaLeft;
2923
+ MediaWithSubcomponents.Content = MediaContent;
2924
+ MediaWithSubcomponents.Right = MediaRight;
2730
2925
 
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, {
2926
+ const Section = ({ size, className, children, color, bgColor, textColor, ...props }) => {
2927
+ const { bulmaHelperClasses, rest } = useBulmaClasses({
2928
+ color: textColor !== null && textColor !== void 0 ? textColor : color,
2929
+ backgroundColor: bgColor,
2930
+ ...props,
2931
+ });
2932
+ const mainClass = usePrefixedClassNames('section');
2933
+ const sectionModifiers = usePrefixedClassNames('', {
2736
2934
  [`is-${size}`]: size,
2737
2935
  });
2936
+ const sectionClasses = classNames(mainClass, sectionModifiers, className, bulmaHelperClasses);
2738
2937
  return (jsxRuntimeExports.jsx("section", { className: sectionClasses, ...rest, children: children }));
2739
2938
  };
2740
2939
 
@@ -2743,7 +2942,7 @@ exports.Box = Box;
2743
2942
  exports.Breadcrumb = Breadcrumb;
2744
2943
  exports.Button = Button;
2745
2944
  exports.Buttons = Buttons;
2746
- exports.Card = Card;
2945
+ exports.Card = CardWithSubComponents;
2747
2946
  exports.Cell = Cell;
2748
2947
  exports.Checkbox = Checkbox;
2749
2948
  exports.Checkboxes = Checkboxes;
@@ -2783,7 +2982,7 @@ exports.Menu = Menu;
2783
2982
  exports.MenuItem = MenuItem;
2784
2983
  exports.MenuLabel = MenuLabel;
2785
2984
  exports.MenuList = MenuList;
2786
- exports.Message = Message;
2985
+ exports.Message = MessageWithSubComponents;
2787
2986
  exports.Modal = Modal;
2788
2987
  exports.Navbar = Navbar;
2789
2988
  exports.NavbarBrand = NavbarBrand;
@@ -2834,10 +3033,14 @@ exports.Title = Title;
2834
3033
  exports.Tr = Tr;
2835
3034
  exports.__test_exports__ = __test_exports__;
2836
3035
  exports.classNames = classNames;
3036
+ exports.createPrefixedClassNames = createPrefixedClassNames;
2837
3037
  exports.isBrowser = isBrowser;
3038
+ exports.prefixedClassNames = prefixedClassNames;
2838
3039
  exports.useBulmaClasses = useBulmaClasses;
2839
3040
  exports.useClassPrefix = useClassPrefix;
2840
3041
  exports.useConfig = useConfig;
3042
+ exports.usePrefixedClass = usePrefixedClass;
3043
+ exports.usePrefixedClassNames = usePrefixedClassNames;
2841
3044
  exports.validAlignContents = validAlignContents;
2842
3045
  exports.validAlignItems = validAlignItems;
2843
3046
  exports.validAlignSelfs = validAlignSelfs;