@allxsmith/bestax-bulma 2.3.2 → 2.4.0

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
@@ -568,11 +568,11 @@ const Breadcrumb = ({ className, alignment, separator, size, children, ...props
568
568
  return (jsx("nav", { className: breadcrumbClasses, "aria-label": "breadcrumbs", ...rest, children: jsx("ul", { children: children }) }));
569
569
  };
570
570
 
571
- const renderFooter = (footer) => {
571
+ const renderFooter = (footer, classPrefix) => {
572
572
  if (!footer)
573
573
  return null;
574
574
  const items = Array.isArray(footer) ? footer : [footer];
575
- return items.map((item, idx) => (jsx("span", { className: "card-footer-item", children: item }, idx)));
575
+ return items.map((item, idx) => (jsx("span", { className: prefixedClassNames(classPrefix, 'card-footer-item'), children: item }, idx)));
576
576
  };
577
577
  const hasCompoundComponents = (children) => {
578
578
  return React.Children.toArray(children).some(child => {
@@ -587,6 +587,7 @@ const hasCompoundComponents = (children) => {
587
587
  });
588
588
  };
589
589
  const CardComponent = ({ className, children, textColor, bgColor, hasShadow = true, header, headerCentered, headerIcon, footer, image, imageAlt, ...props }) => {
590
+ const { classPrefix } = useConfig();
590
591
  const { bulmaHelperClasses, rest } = useBulmaClasses({
591
592
  color: textColor,
592
593
  backgroundColor: bgColor,
@@ -596,36 +597,42 @@ const CardComponent = ({ className, children, textColor, bgColor, hasShadow = tr
596
597
  'is-shadowless': !hasShadow,
597
598
  });
598
599
  const cardClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
599
- const renderHeader = (header, headerIcon, headerCentered) => {
600
+ const renderHeader = (header, headerIcon, headerCentered, classPrefix) => {
600
601
  if (!header && !headerIcon)
601
602
  return null;
602
- return (jsxs("header", { className: "card-header", children: [header && (jsx("div", { className: classNames('card-header-title', {
603
+ return (jsxs("header", { className: prefixedClassNames(classPrefix, 'card-header'), children: [header && (jsx("div", { className: prefixedClassNames(classPrefix, 'card-header-title', {
603
604
  'is-centered': headerCentered,
604
605
  }), children: header })), headerIcon] }));
605
606
  };
606
- return (jsxs("div", { className: cardClasses, ...rest, children: [renderHeader(header, headerIcon, headerCentered), image && (jsx("div", { className: "card-image", children: typeof image === 'string' ? (jsx("figure", { className: "image", children: jsx("img", { src: image, alt: imageAlt !== null && imageAlt !== void 0 ? imageAlt : 'Card image' }) })) : (image) })), typeof children !== 'undefined' &&
607
+ return (jsxs("div", { className: cardClasses, ...rest, children: [renderHeader(header, headerIcon, headerCentered, classPrefix), image && (jsx("div", { className: prefixedClassNames(classPrefix, 'card-image'), children: typeof image === 'string' ? (jsx("figure", { className: prefixedClassNames(classPrefix, 'image'), children: jsx("img", { src: image, alt: imageAlt !== null && imageAlt !== void 0 ? imageAlt : 'Card image' }) })) : (image) })), typeof children !== 'undefined' &&
607
608
  children !== null &&
608
609
  children !== '' &&
609
- !hasCompoundComponents(children) && (jsx("div", { className: "card-content", children: children })), typeof children !== 'undefined' &&
610
+ !hasCompoundComponents(children) && (jsx("div", { className: prefixedClassNames(classPrefix, 'card-content'), children: children })), typeof children !== 'undefined' &&
610
611
  children !== null &&
611
612
  children !== '' &&
612
613
  hasCompoundComponents(children) &&
613
- children, footer && (jsx("footer", { className: "card-footer", children: renderFooter(footer) }))] }));
614
+ children, footer && (jsx("footer", { className: prefixedClassNames(classPrefix, 'card-footer'), children: Array.isArray(footer)
615
+ ? footer.map((item, idx) => (jsx("span", { className: prefixedClassNames(classPrefix, 'card-footer-item'), children: item }, idx)))
616
+ : footer && (jsx("span", { className: prefixedClassNames(classPrefix, 'card-footer-item'), children: footer })) }))] }));
614
617
  };
615
618
  const CardHeader = ({ className, children, centered, ...props }) => {
619
+ const { classPrefix } = useConfig();
616
620
  const hasHeaderTitle = React.Children.toArray(children).some(child => React.isValidElement(child) &&
617
621
  typeof child.type === 'function' &&
618
622
  child.type === CardHeaderTitle);
619
- return (jsx("header", { className: classNames('card-header', className), ...props, children: hasHeaderTitle ? (children) : (jsx("div", { className: classNames('card-header-title', {
623
+ const headerClasses = usePrefixedClassNames('card-header');
624
+ return (jsx("header", { className: classNames(headerClasses, className), ...props, children: hasHeaderTitle ? (children) : (jsx("div", { className: classNames(prefixedClassNames(classPrefix, 'card-header-title', {
620
625
  'is-centered': centered,
621
- }), children: children })) }));
622
- };
623
- const CardHeaderTitle = ({ className, children, centered, ...props }) => (jsx("div", { className: classNames('card-header-title', { 'is-centered': centered }, className), ...props, children: children }));
624
- const CardHeaderIcon = ({ className, children, ...props }) => (jsx("button", { className: classNames('card-header-icon', className), "aria-label": props['aria-label'] || 'more options', ...props, children: children }));
625
- const CardImage = ({ className, children, ...props }) => (jsx("div", { className: classNames('card-image', className), ...props, children: children }));
626
- const CardContent = ({ className, children, ...props }) => (jsx("div", { className: classNames('card-content', className), ...props, children: children }));
627
- const CardFooter = ({ className, children, ...props }) => (jsx("footer", { className: classNames('card-footer', className), ...props, children: children }));
628
- const CardFooterItem = ({ className, children, ...props }) => (jsx("span", { className: classNames('card-footer-item', className), ...props, children: children }));
626
+ }), className), children: children })) }));
627
+ };
628
+ const CardHeaderTitle = ({ className, children, centered, ...props }) => (jsx("div", { className: classNames(usePrefixedClassNames('card-header-title', {
629
+ 'is-centered': centered,
630
+ }), className), ...props, children: children }));
631
+ const CardHeaderIcon = ({ className, children, ...props }) => (jsx("button", { className: classNames(usePrefixedClassNames('card-header-icon'), className), "aria-label": props['aria-label'] || 'more options', ...props, children: children }));
632
+ const CardImage = ({ className, children, ...props }) => (jsx("div", { className: classNames(usePrefixedClassNames('card-image'), className), ...props, children: children }));
633
+ const CardContent = ({ className, children, ...props }) => (jsx("div", { className: classNames(usePrefixedClassNames('card-content'), className), ...props, children: children }));
634
+ const CardFooter = ({ className, children, ...props }) => (jsx("footer", { className: classNames(usePrefixedClassNames('card-footer'), className), ...props, children: children }));
635
+ const CardFooterItem = ({ className, children, ...props }) => (jsx("span", { className: classNames(usePrefixedClassNames('card-footer-item'), className), ...props, children: children }));
629
636
  const CardWithSubComponents = CardComponent;
630
637
  const CardHeaderWithTitle = CardHeader;
631
638
  CardHeaderWithTitle.Title = CardHeaderTitle;
@@ -683,13 +690,15 @@ const DropdownComponent = ({ label, children, className, menuClassName, active:
683
690
  }
684
691
  };
685
692
  const dropdownClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
686
- return (jsxs("div", { className: dropdownClasses, ref: dropdownRef, id: id, "data-testid": "dropdown-root", ...rest, children: [jsx("div", { className: "dropdown-trigger", children: jsxs("button", { className: buttonClass, "aria-haspopup": "true", "aria-controls": id ? `${id}-menu` : undefined, "aria-expanded": active, onClick: handleToggle, disabled: disabled, type: "button", children: [jsx("span", { children: label }), jsx("span", { className: "icon is-small", "aria-hidden": "true", children: jsx("i", { className: "fas fa-angle-down" }) })] }) }), jsx("div", { className: classNames('dropdown-menu', menuClassName), id: id ? `${id}-menu` : undefined, role: "menu", "data-testid": "dropdown-menu", children: jsx("div", { className: "dropdown-content", onClick: handleMenuClick, tabIndex: -1, children: children }) })] }));
693
+ return (jsxs("div", { className: dropdownClasses, ref: dropdownRef, id: id, "data-testid": "dropdown-root", ...rest, children: [jsx("div", { className: usePrefixedClassNames('dropdown-trigger'), children: jsxs("button", { className: buttonClass, "aria-haspopup": "true", "aria-controls": id ? `${id}-menu` : undefined, "aria-expanded": active, onClick: handleToggle, disabled: disabled, type: "button", children: [jsx("span", { children: label }), jsx("span", { className: usePrefixedClassNames('icon', 'is-small'), "aria-hidden": "true", children: jsx("i", { className: "fas fa-angle-down" }) })] }) }), jsx("div", { className: classNames(usePrefixedClassNames('dropdown-menu'), menuClassName), id: id ? `${id}-menu` : undefined, role: "menu", "data-testid": "dropdown-menu", children: jsx("div", { className: usePrefixedClassNames('dropdown-content'), onClick: handleMenuClick, tabIndex: -1, children: children }) })] }));
687
694
  };
688
695
  const DropdownItem = ({ children, active, className, as: Component = 'a', ...props }) => {
689
696
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
690
- return (jsx(Component, { className: classNames('dropdown-item', bulmaHelperClasses, { 'is-active': active }, className), tabIndex: 0, role: "menuitem", "data-testid": "dropdown-item", ...rest, children: children }));
697
+ return (jsx(Component, { className: classNames(usePrefixedClassNames('dropdown-item', {
698
+ 'is-active': active,
699
+ }), bulmaHelperClasses, className), tabIndex: 0, role: "menuitem", "data-testid": "dropdown-item", ...rest, children: children }));
691
700
  };
692
- const DropdownDivider = () => (jsx("hr", { className: "dropdown-divider" }));
701
+ const DropdownDivider = () => (jsx("hr", { className: usePrefixedClassNames('dropdown-divider') }));
693
702
  const Dropdown = Object.assign(DropdownComponent, {
694
703
  Item: DropdownItem,
695
704
  Divider: DropdownDivider,
@@ -703,19 +712,19 @@ const MenuComponent = ({ className, children, ...props }) => {
703
712
  };
704
713
  const MenuLabel = ({ className, children, ...props }) => {
705
714
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
706
- return (jsx("p", { className: classNames('menu-label', className, bulmaHelperClasses), ...rest, children: children }));
715
+ return (jsx("p", { className: classNames(usePrefixedClassNames('menu-label'), className, bulmaHelperClasses), ...rest, children: children }));
707
716
  };
708
717
  const MenuList = ({ className, children, ...props }) => {
709
718
  const level = useContext(MenuListLevelContext);
710
719
  const { bulmaHelperClasses, rest } = useBulmaClasses(props);
711
720
  const ulClass = classNames(className, bulmaHelperClasses, {
712
- 'menu-list': level === 0,
721
+ [usePrefixedClassNames('menu-list')]: level === 0,
713
722
  });
714
723
  return (jsx(MenuListLevelContext.Provider, { value: level + 1, children: jsx("ul", { className: ulClass, ...rest, children: children }) }));
715
724
  };
716
725
  const MenuItem = ({ className, children, active, href, as: Component = 'a', 'data-testid': testId, ...rest }) => {
717
726
  const { bulmaHelperClasses, rest: bulmaRest } = useBulmaClasses(rest);
718
- const itemClass = classNames({ 'is-active': active }, bulmaHelperClasses);
727
+ const itemClass = classNames({ [usePrefixedClassNames('is-active')]: active }, bulmaHelperClasses);
719
728
  const { style, id, title, role, tabIndex, ...linkProps } = bulmaRest;
720
729
  const labelChildren = [];
721
730
  const nestedMenuLists = [];
@@ -742,6 +751,7 @@ const Menu = Object.assign(MenuComponent, {
742
751
  });
743
752
 
744
753
  const MessageComponent = ({ className, title, textColor, color, bgColor, onClose, children, ...props }) => {
754
+ const { classPrefix } = useConfig();
745
755
  const { bulmaHelperClasses, rest } = useBulmaClasses({
746
756
  color: textColor,
747
757
  backgroundColor: bgColor,
@@ -752,20 +762,72 @@ const MessageComponent = ({ className, title, textColor, color, bgColor, onClose
752
762
  });
753
763
  const deleteClass = usePrefixedClassNames('delete');
754
764
  const messageClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
755
- return (jsxs("article", { className: messageClasses, ...rest, "data-testid": "message", children: [(title || onClose) && (jsxs("div", { className: "message-header", children: [title && jsx("span", { children: title }), onClose && (jsx("button", { className: deleteClass, "aria-label": "delete", onClick: onClose, type: "button", "data-testid": "message-close" }))] })), children && (jsx("div", { className: "message-body", "data-testid": "message-body", children: children }))] }));
765
+ return (jsxs("article", { className: messageClasses, ...rest, "data-testid": "message", children: [(title || onClose) && (jsxs("div", { className: prefixedClassNames(classPrefix, 'message-header'), children: [title && jsx("span", { children: title }), onClose && (jsx("button", { className: deleteClass, "aria-label": "delete", onClick: onClose, type: "button", "data-testid": "message-close" }))] })), children && (jsx("div", { className: prefixedClassNames(classPrefix, 'message-body'), "data-testid": "message-body", children: children }))] }));
756
766
  };
757
- const MessageHeader = ({ className, children, ...props }) => (jsx("div", { className: classNames('message-header', className), ...props, children: children }));
758
- const MessageBody = ({ className, children, ...props }) => (jsx("div", { className: classNames('message-body', className), ...props, children: children }));
767
+ const MessageHeader = ({ className, children, ...props }) => (jsx("div", { className: classNames(usePrefixedClassNames('message-header'), className), ...props, children: children }));
768
+ const MessageBody = ({ className, children, ...props }) => (jsx("div", { className: classNames(usePrefixedClassNames('message-body'), className), ...props, children: children }));
759
769
  const MessageWithSubComponents = MessageComponent;
760
770
  MessageWithSubComponents.Header = MessageHeader;
761
771
  MessageWithSubComponents.Body = MessageBody;
762
772
 
763
- const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCardTitle, modalCardFoot, type, children, ...props }) => {
773
+ const ModalBackground = ({ className, ...props }) => {
774
+ const classes = classNames(usePrefixedClassNames('modal-background'), className);
775
+ return jsx("div", { className: classes, ...props });
776
+ };
777
+ const ModalContent = ({ className, ...props }) => {
778
+ const classes = classNames(usePrefixedClassNames('modal-content'), className);
779
+ return jsx("div", { className: classes, ...props });
780
+ };
781
+ const ModalCardHead = ({ className, ...props }) => {
782
+ const classes = classNames(usePrefixedClassNames('modal-card-head'), className);
783
+ return jsx("header", { className: classes, ...props });
784
+ };
785
+ const ModalCardTitle = ({ className, ...props }) => {
786
+ const classes = classNames(usePrefixedClassNames('modal-card-title'), className);
787
+ return jsx("p", { className: classes, ...props });
788
+ };
789
+ const ModalCardBody = ({ className, ...props }) => {
790
+ const classes = classNames(usePrefixedClassNames('modal-card-body'), className);
791
+ return jsx("section", { className: classes, ...props });
792
+ };
793
+ const ModalCardFoot = ({ className, ...props }) => {
794
+ const classes = classNames(usePrefixedClassNames('modal-card-foot'), className);
795
+ return jsx("footer", { className: classes, ...props });
796
+ };
797
+ const ModalCard = ({ className, ...props }) => {
798
+ const classes = classNames(usePrefixedClassNames('modal-card'), className);
799
+ return jsx("div", { className: classes, ...props });
800
+ };
801
+ ModalCard.Head = ModalCardHead;
802
+ ModalCard.Title = ModalCardTitle;
803
+ ModalCard.Body = ModalCardBody;
804
+ ModalCard.Foot = ModalCardFoot;
805
+ const ModalClose = ({ className, size = 'large', variant = 'delete', ...props }) => {
806
+ const classes = classNames(usePrefixedClassNames(variant === 'delete' ? 'delete' : 'modal-close', variant === 'floating' && size && { [`is-${size}`]: true }), className);
807
+ return (jsx("button", { className: classes, "aria-label": "close", type: "button", ...props }));
808
+ };
809
+ const ModalRoot = ({ active, isActive, onClose, className, textColor, bgColor, modalCardTitle, modalCardFoot, type, children, ...props }) => {
810
+ var _a;
811
+ const { classPrefix } = useConfig();
764
812
  const { bulmaHelperClasses, rest } = useBulmaClasses({
765
813
  color: textColor,
766
814
  backgroundColor: bgColor,
767
815
  ...props,
768
816
  });
817
+ const isModalActive = (_a = active !== null && active !== void 0 ? active : isActive) !== null && _a !== void 0 ? _a : false;
818
+ const hasCompoundComponents = React.Children.toArray(children).some(child => React.isValidElement(child) &&
819
+ (child.type === ModalBackground ||
820
+ child.type === ModalContent ||
821
+ child.type === ModalCard ||
822
+ child.type === ModalClose));
823
+ const bulmaClasses = usePrefixedClassNames('modal', {
824
+ 'is-active': isModalActive,
825
+ });
826
+ const deleteClass = usePrefixedClassNames('delete');
827
+ const modalClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
828
+ if (hasCompoundComponents) {
829
+ return (jsx("div", { className: modalClasses, ...rest, "data-testid": "modal", children: children }));
830
+ }
769
831
  let isModalCard;
770
832
  if (type === 'card')
771
833
  isModalCard = true;
@@ -773,13 +835,13 @@ const Modal = ({ active = false, onClose, className, textColor, bgColor, modalCa
773
835
  isModalCard = false;
774
836
  else
775
837
  isModalCard = !!modalCardTitle || !!modalCardFoot;
776
- const bulmaClasses = usePrefixedClassNames('modal', {
777
- 'is-active': active,
778
- });
779
- const deleteClass = usePrefixedClassNames('delete');
780
- const modalClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
781
- return (jsxs("div", { className: modalClasses, ...rest, "data-testid": "modal", children: [jsx("div", { className: "modal-background", onClick: onClose, "data-testid": "modal-background" }), isModalCard ? (jsxs("div", { className: "modal-card", children: [modalCardTitle && (jsxs("header", { className: "modal-card-head", children: [jsx("p", { className: "modal-card-title", children: modalCardTitle }), onClose && (jsx("button", { className: deleteClass, "aria-label": "close", onClick: onClose, type: "button", "data-testid": "modal-close" }))] })), jsx("section", { className: "modal-card-body", "data-testid": "modal-body", children: children }), modalCardFoot && (jsx("footer", { className: "modal-card-foot", children: modalCardFoot }))] })) : (jsx("div", { className: "modal-content", "data-testid": "modal-content", children: children })), (!isModalCard || (!modalCardTitle && onClose)) && onClose && (jsx("button", { className: "modal-close is-large", "aria-label": "close", onClick: onClose, type: "button", "data-testid": "modal-close-float" }))] }));
838
+ return (jsxs("div", { className: modalClasses, ...rest, "data-testid": "modal", children: [jsx("div", { className: prefixedClassNames(classPrefix, 'modal-background'), onClick: onClose, "data-testid": "modal-background" }), isModalCard ? (jsxs("div", { className: prefixedClassNames(classPrefix, 'modal-card'), children: [modalCardTitle && (jsxs("header", { className: prefixedClassNames(classPrefix, 'modal-card-head'), children: [jsx("p", { className: prefixedClassNames(classPrefix, 'modal-card-title'), children: modalCardTitle }), onClose && (jsx("button", { className: deleteClass, "aria-label": "close", onClick: onClose, type: "button", "data-testid": "modal-close" }))] })), jsx("section", { className: prefixedClassNames(classPrefix, 'modal-card-body'), "data-testid": "modal-body", children: children }), modalCardFoot && (jsx("footer", { className: prefixedClassNames(classPrefix, 'modal-card-foot'), children: modalCardFoot }))] })) : (jsx("div", { className: prefixedClassNames(classPrefix, 'modal-content'), "data-testid": "modal-content", children: children })), (!isModalCard || (!modalCardTitle && onClose)) && onClose && (jsx("button", { className: prefixedClassNames(classPrefix, 'modal-close', 'is-large'), "aria-label": "close", onClick: onClose, type: "button", "data-testid": "modal-close-float" }))] }));
782
839
  };
840
+ ModalRoot.Background = ModalBackground;
841
+ ModalRoot.Content = ModalContent;
842
+ ModalRoot.Card = ModalCard;
843
+ ModalRoot.Close = ModalClose;
844
+ const Modal = ModalRoot;
783
845
 
784
846
  const Navbar = ({ className, textColor, bgColor, color, transparent, fixed, children, ...props }) => {
785
847
  const { bulmaHelperClasses, rest } = useBulmaClasses({
@@ -800,7 +862,7 @@ const NavbarBrand = ({ className, children, textColor, ...props }) => {
800
862
  color: textColor,
801
863
  ...props,
802
864
  });
803
- return (jsx("div", { className: classNames('navbar-brand', bulmaHelperClasses, className), ...rest, children: children }));
865
+ return (jsx("div", { className: classNames(usePrefixedClassNames('navbar-brand'), bulmaHelperClasses, className), ...rest, children: children }));
804
866
  };
805
867
  const NavbarItem = ({ className, as: Component = 'a', active, textColor, bgColor, children, ...props }) => {
806
868
  const { bulmaHelperClasses, rest } = useBulmaClasses({
@@ -808,50 +870,50 @@ const NavbarItem = ({ className, as: Component = 'a', active, textColor, bgColor
808
870
  backgroundColor: bgColor,
809
871
  ...props,
810
872
  });
811
- return (jsx(Component, { className: classNames('navbar-item', bulmaHelperClasses, className, {
873
+ return (jsx(Component, { className: classNames(usePrefixedClassNames('navbar-item', {
812
874
  'is-active': active,
813
- }), ...rest, children: children }));
875
+ }), bulmaHelperClasses, className), ...rest, children: children }));
814
876
  };
815
877
  const NavbarBurger = ({ className, active, children, ...props }) => {
816
878
  var _a;
817
879
  const { bulmaHelperClasses, rest } = useBulmaClasses({
818
880
  ...props,
819
881
  });
820
- return (jsxs("button", { type: "button", className: classNames('navbar-burger', bulmaHelperClasses, className, {
882
+ return (jsxs("button", { type: "button", className: classNames(usePrefixedClassNames('navbar-burger', {
821
883
  'is-active': active,
822
- }), "aria-label": props['aria-label'] || 'menu', "aria-expanded": (_a = props['aria-expanded']) !== null && _a !== void 0 ? _a : !!active, ...rest, children: [jsx("span", { "aria-hidden": "true" }), jsx("span", { "aria-hidden": "true" }), jsx("span", { "aria-hidden": "true" }), children] }));
884
+ }), bulmaHelperClasses, className), "aria-label": props['aria-label'] || 'menu', "aria-expanded": (_a = props['aria-expanded']) !== null && _a !== void 0 ? _a : !!active, ...rest, children: [jsx("span", { "aria-hidden": "true" }), jsx("span", { "aria-hidden": "true" }), jsx("span", { "aria-hidden": "true" }), children] }));
823
885
  };
824
886
  const NavbarMenu = ({ className, active, children, ...props }) => {
825
887
  const { bulmaHelperClasses, rest } = useBulmaClasses({
826
888
  ...props,
827
889
  });
828
- return (jsx("div", { className: classNames('navbar-menu', bulmaHelperClasses, className, {
890
+ return (jsx("div", { className: classNames(usePrefixedClassNames('navbar-menu', {
829
891
  'is-active': active,
830
- }), ...rest, children: children }));
892
+ }), bulmaHelperClasses, className), ...rest, children: children }));
831
893
  };
832
894
  const NavbarStart = ({ className, children, ...props }) => {
833
895
  const { bulmaHelperClasses, rest } = useBulmaClasses({
834
896
  ...props,
835
897
  });
836
- return (jsx("div", { className: classNames('navbar-start', bulmaHelperClasses, className), ...rest, children: children }));
898
+ return (jsx("div", { className: classNames(usePrefixedClassNames('navbar-start'), bulmaHelperClasses, className), ...rest, children: children }));
837
899
  };
838
900
  const NavbarEnd = ({ className, children, ...props }) => {
839
901
  const { bulmaHelperClasses, rest } = useBulmaClasses({
840
902
  ...props,
841
903
  });
842
- return (jsx("div", { className: classNames('navbar-end', bulmaHelperClasses, className), ...rest, children: children }));
904
+ return (jsx("div", { className: classNames(usePrefixedClassNames('navbar-end'), bulmaHelperClasses, className), ...rest, children: children }));
843
905
  };
844
- const NavbarDropdown = ({ className, right, up, hoverable, active, children, ...props }) => (jsx("div", { className: classNames('navbar-item', 'has-dropdown', {
906
+ const NavbarDropdown = ({ className, right, up, hoverable, active, children, ...props }) => (jsx("div", { className: classNames(usePrefixedClassNames('navbar-item', 'has-dropdown', {
845
907
  'is-right': right,
846
908
  'is-up': up,
847
909
  'is-hoverable': hoverable,
848
910
  'is-active': active,
849
- }, className), ...props, children: children }));
850
- const NavbarDropdownMenu = ({ className, right, up, children, ...props }) => (jsx("div", { className: classNames('navbar-dropdown', {
911
+ }), className), ...props, children: children }));
912
+ const NavbarDropdownMenu = ({ className, right, up, children, ...props }) => (jsx("div", { className: classNames(usePrefixedClassNames('navbar-dropdown', {
851
913
  'is-right': right,
852
914
  'is-up': up,
853
- }, className), ...props, children: children }));
854
- const NavbarDivider = props => jsx("hr", { className: "navbar-divider", ...props });
915
+ }), className), ...props, children: children }));
916
+ const NavbarDivider = props => (jsx("hr", { className: usePrefixedClassNames('navbar-divider'), ...props }));
855
917
  Navbar.Brand = NavbarBrand;
856
918
  Navbar.Item = NavbarItem;
857
919
  Navbar.Burger = NavbarBurger;
@@ -862,7 +924,7 @@ Navbar.Dropdown = NavbarDropdown;
862
924
  Navbar.DropdownMenu = NavbarDropdownMenu;
863
925
  Navbar.Divider = NavbarDivider;
864
926
 
865
- const PaginationPrevious = ({ className, disabled, children, ...props }) => (jsx("a", { className: classNames('pagination-previous', className, {
927
+ const PaginationPrevious = ({ className, disabled, children, ...props }) => (jsx("a", { className: classNames(usePrefixedClassNames('pagination-previous'), className, {
866
928
  'is-disabled': disabled,
867
929
  }), "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, ...props, onClick: disabled
868
930
  ? e => {
@@ -870,7 +932,7 @@ const PaginationPrevious = ({ className, disabled, children, ...props }) => (jsx
870
932
  e.stopPropagation();
871
933
  }
872
934
  : props.onClick, children: children }));
873
- const PaginationNext = ({ className, disabled, children, ...props }) => (jsx("a", { className: classNames('pagination-next', className, {
935
+ const PaginationNext = ({ className, disabled, children, ...props }) => (jsx("a", { className: classNames(usePrefixedClassNames('pagination-next'), className, {
874
936
  'is-disabled': disabled,
875
937
  }), "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, ...props, onClick: disabled
876
938
  ? e => {
@@ -899,7 +961,7 @@ const PaginationList = ({ className, textColor, bgColor, children, ...props }) =
899
961
  backgroundColor: bgColor,
900
962
  ...props,
901
963
  });
902
- return (jsx("ul", { className: classNames('pagination-list', bulmaHelperClasses, className), ...rest, children: children }));
964
+ return (jsx("ul", { className: classNames(usePrefixedClassNames('pagination-list'), bulmaHelperClasses, className), ...rest, children: children }));
903
965
  };
904
966
  const PaginationLink = ({ className, textColor, bgColor, active, disabled, onClick, children, ...props }) => {
905
967
  const { bulmaHelperClasses, rest } = useBulmaClasses({
@@ -917,12 +979,12 @@ const PaginationLink = ({ className, textColor, bgColor, active, disabled, onCli
917
979
  onClick(e);
918
980
  }
919
981
  };
920
- return (jsx("li", { children: jsx("a", { className: classNames('pagination-link', bulmaHelperClasses, className, {
982
+ return (jsx("li", { children: jsx("a", { className: classNames(usePrefixedClassNames('pagination-link'), bulmaHelperClasses, className, {
921
983
  'is-current': active,
922
984
  'is-disabled': disabled,
923
985
  }), "aria-current": active ? 'page' : undefined, "aria-disabled": disabled, tabIndex: disabled ? -1 : 0, onClick: handleClick, ...rest, children: children }) }));
924
986
  };
925
- const PaginationEllipsis = props => (jsx("li", { children: jsx("span", { className: "pagination-ellipsis", ...props, children: "\u2026" }) }));
987
+ const PaginationEllipsis = props => (jsx("li", { children: jsx("span", { className: usePrefixedClassNames('pagination-ellipsis'), ...props, children: "\u2026" }) }));
926
988
  Pagination.Link = PaginationLink;
927
989
  Pagination.List = PaginationList;
928
990
  Pagination.Ellipsis = PaginationEllipsis;
@@ -940,16 +1002,16 @@ const Panel = ({ color, className, children, ...props }) => {
940
1002
  const panelClasses = classNames(bulmaClasses, bulmaHelperClasses, className);
941
1003
  return (jsx("nav", { className: panelClasses, ...rest, children: children }));
942
1004
  };
943
- const PanelHeading = ({ className, children, ...props }) => (jsx("p", { className: classNames('panel-heading', className), ...props, children: children }));
944
- const PanelTabs = ({ className, children, ...props }) => (jsx("p", { className: classNames('panel-tabs', className), ...props, children: children }));
945
- const PanelBlock = ({ className, active, children, ...props }) => (jsx("a", { className: classNames('panel-block', className, { 'is-active': active }), ...props, children: children }));
946
- const PanelIcon = ({ className, children, ...props }) => (jsx("span", { className: classNames('panel-icon', className), ...props, children: children }));
1005
+ const PanelHeading = ({ className, children, ...props }) => (jsx("p", { className: classNames(usePrefixedClassNames('panel-heading'), className), ...props, children: children }));
1006
+ const PanelTabs = ({ className, children, ...props }) => (jsx("p", { className: classNames(usePrefixedClassNames('panel-tabs'), className), ...props, children: children }));
1007
+ const PanelBlock = ({ className, active, children, ...props }) => (jsx("a", { className: classNames(usePrefixedClassNames('panel-block', { 'is-active': active }), className), ...props, children: children }));
1008
+ const PanelIcon = ({ className, children, ...props }) => (jsx("span", { className: classNames(usePrefixedClassNames('panel-icon'), className), ...props, children: children }));
947
1009
  const PanelInputBlock = ({ value, onChange, placeholder, iconClassName = 'fas fa-search', ...props }) => {
948
1010
  const inputClass = usePrefixedClassNames('input');
949
- return (jsx("div", { className: "panel-block", ...props, children: jsxs("p", { className: "control has-icons-left", children: [jsx("input", { className: inputClass, type: "text", placeholder: placeholder, value: value, onChange: onChange }), jsx("span", { className: "icon is-left", children: jsx("i", { className: iconClassName, "aria-hidden": "true" }) })] }) }));
1011
+ return (jsx("div", { className: usePrefixedClassNames('panel-block'), ...props, children: jsxs("p", { className: usePrefixedClassNames('control', 'has-icons-left'), children: [jsx("input", { className: inputClass, type: "text", placeholder: placeholder, value: value, onChange: onChange }), jsx("span", { className: usePrefixedClassNames('icon', 'is-left'), children: jsx("i", { className: iconClassName, "aria-hidden": "true" }) })] }) }));
950
1012
  };
951
- const PanelCheckboxBlock = ({ checked, onChange, children, ...props }) => (jsxs("label", { className: "panel-block", ...props, children: [jsx("input", { type: "checkbox", checked: checked, onChange: onChange }), children] }));
952
- const PanelButtonBlock = ({ children, className, ...props }) => (jsx("div", { className: "panel-block", children: jsx("button", { className: classNames('button is-link is-outlined is-fullwidth', className), ...props, children: children }) }));
1013
+ const PanelCheckboxBlock = ({ checked, onChange, children, ...props }) => (jsxs("label", { className: usePrefixedClassNames('panel-block'), ...props, children: [jsx("input", { type: "checkbox", checked: checked, onChange: onChange }), children] }));
1014
+ const PanelButtonBlock = ({ children, className, ...props }) => (jsx("div", { className: usePrefixedClassNames('panel-block'), children: jsx("button", { className: classNames(usePrefixedClassNames('button', 'is-link', 'is-outlined', 'is-fullwidth'), className), ...props, children: children }) }));
953
1015
  Panel.Heading = PanelHeading;
954
1016
  Panel.Tabs = PanelTabs;
955
1017
  Panel.Block = PanelBlock;
@@ -975,7 +1037,7 @@ const Tabs = ({ align, size, fullwidth, boxed, toggle, rounded, color, className
975
1037
  return (jsx("div", { className: tabsClass, ...rest, children: children }));
976
1038
  };
977
1039
  const TabList = ({ className, children, ...props }) => (jsx("ul", { className: classNames(className), ...props, children: children }));
978
- const TabItem = ({ active, className, children, onClick, ...props }) => (jsx("li", { className: classNames({ 'is-active': active }, className), onClick: onClick, ...props, children: children }));
1040
+ const TabItem = ({ active, className, children, onClick, ...props }) => (jsx("li", { className: classNames({ [usePrefixedClassNames('is-active')]: active }, className), onClick: onClick, ...props, children: children }));
979
1041
  Tabs.List = TabList;
980
1042
  Tabs.Item = TabItem;
981
1043
 
@@ -1483,6 +1545,7 @@ const Checkboxes = ({ children, className, ...props }) => {
1483
1545
  const allowedColors = [...validColors, 'inherit', 'current'];
1484
1546
  const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isLoading, isExpanded, size, textColor, bgColor, iconLeft, iconRight, iconLeftName, iconLeftSize, iconRightName, iconRightSize, className, children, ...props }, ref) => {
1485
1547
  const Component = (as === 'p' ? 'p' : 'div');
1548
+ const { classPrefix } = useConfig();
1486
1549
  const { textColor: _ignoredTextColor, bgColor: _ignoredBgColor, ...restProps } = props;
1487
1550
  const safeTextColor = allowedColors.includes(textColor)
1488
1551
  ? textColor
@@ -1517,7 +1580,7 @@ const Control = React.forwardRef(({ as = 'div', hasIconsLeft, hasIconsRight, isL
1517
1580
  [`is-${size}`]: !!size,
1518
1581
  });
1519
1582
  const controlClass = classNames(mainClass, bulmaHelperClasses, className);
1520
- return (jsxs(Component, { className: controlClass, ref: ref, ...restProps, ...rest, children: [children, leftIconProps && leftIconProps.name && (jsx(Icon, { ...leftIconProps, className: "is-left" })), rightIconProps && rightIconProps.name && (jsx(Icon, { ...rightIconProps, className: "is-right" }))] }));
1583
+ return (jsxs(Component, { className: controlClass, ref: ref, ...restProps, ...rest, children: [children, leftIconProps && leftIconProps.name && (jsx(Icon, { ...leftIconProps, className: prefixedClassNames(classPrefix, 'is-left') })), rightIconProps && rightIconProps.name && (jsx(Icon, { ...rightIconProps, className: prefixedClassNames(classPrefix, 'is-right') }))] }));
1521
1584
  });
1522
1585
  Control.displayName = 'Control';
1523
1586
 
@@ -1590,19 +1653,20 @@ Field.Label = FieldLabel;
1590
1653
  Field.Body = FieldBody;
1591
1654
 
1592
1655
  const File = forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isCentered, hasName, label, iconLeft, iconRight, className, inputClassName, fileName, ...props }, ref) => {
1656
+ const { classPrefix } = useConfig();
1593
1657
  const { bulmaHelperClasses, rest } = useBulmaClasses({
1594
1658
  color,
1595
1659
  ...props,
1596
1660
  });
1597
1661
  let alignmentClass;
1598
1662
  if (isRight && isCentered) {
1599
- alignmentClass = 'is-right';
1663
+ alignmentClass = prefixedClassNames(classPrefix, 'is-right');
1600
1664
  }
1601
1665
  else if (isRight) {
1602
- alignmentClass = 'is-right';
1666
+ alignmentClass = prefixedClassNames(classPrefix, 'is-right');
1603
1667
  }
1604
1668
  else if (isCentered) {
1605
- alignmentClass = 'is-centered';
1669
+ alignmentClass = prefixedClassNames(classPrefix, 'is-centered');
1606
1670
  }
1607
1671
  const mainClass = usePrefixedClassNames('file', {
1608
1672
  [`is-${color}`]: !!color,
@@ -1612,7 +1676,7 @@ const File = forwardRef(({ color, size, isBoxed, isFullwidth, isRight, isCentere
1612
1676
  'has-name': hasName,
1613
1677
  });
1614
1678
  const fileClass = classNames(mainClass, bulmaHelperClasses, alignmentClass, className);
1615
- return (jsx("div", { className: fileClass, children: jsxs("label", { className: "file-label", children: [jsx("input", { ref: ref, className: classNames('file-input', inputClassName), type: "file", ...rest }), jsxs("span", { className: "file-cta", children: [iconLeft && jsx("span", { className: "file-icon", children: iconLeft }), jsx("span", { className: "file-label", children: label || 'Choose a file…' }), iconRight && jsx("span", { className: "file-icon", children: iconRight })] }), hasName && fileName && jsx("span", { className: "file-name", children: fileName })] }) }));
1679
+ return (jsx("div", { className: fileClass, children: jsxs("label", { className: usePrefixedClassNames('file-label'), children: [jsx("input", { ref: ref, className: classNames(usePrefixedClassNames('file-input'), inputClassName), type: "file", ...rest }), jsxs("span", { className: usePrefixedClassNames('file-cta'), children: [iconLeft && (jsx("span", { className: prefixedClassNames(classPrefix, 'file-icon'), children: iconLeft })), jsx("span", { className: usePrefixedClassNames('file-label'), children: label || 'Choose a file…' }), iconRight && (jsx("span", { className: prefixedClassNames(classPrefix, 'file-icon'), children: iconRight }))] }), hasName && fileName && (jsx("span", { className: prefixedClassNames(classPrefix, 'file-name'), children: fileName }))] }) }));
1616
1680
  });
1617
1681
  File.displayName = 'File';
1618
1682