Bin
2025-12-17 2b99d77d73ba568beff0a549534017caaad8a6de
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { forwardRef, createElement } from "react";
import { cn } from "../../../../../utils/bem";
import "./Label.scss";
/** @deprecated - needs to be replaced with @humansignal/ui Label - visualizes differently currently */
const Label = forwardRef(
  ({ text, children, required, placement, description, size, large, style, simple, flat }, ref) => {
    const tagName = simple ? "div" : "label";
    const mods = {
      size,
      large,
      flat,
      placement,
      withDescription: !!description,
      empty: !children,
    };
 
    return createElement(
      tagName,
      {
        ref,
        className: cn("label-dm").mod(mods).toClassName(),
        style,
        "data-required": required,
      },
      <div className={cn("label-dm").elem("text").toClassName()}>
        <div className={cn("label-dm").elem("content").toClassName()}>
          {text}
          {description && <div className={cn("label-dm").elem("description").toClassName()}>{description}</div>}
        </div>
      </div>,
      <div className={cn("label-dm").elem("field").toClassName()}>{children}</div>,
    );
  },
);
 
export default Label;