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