A fully featured button component that can act as a `<button>` or `<a>` tag. ### Example ```jsx <Widget src="near/widget/DIG.Button" props={{ label: "Click Me" }} /> ``` ### Props `disabled` - type: bool `fill` - type: string - values: "solid", "outline", "ghost" - default: "solid" `href` - type: string - If a value is passed, the component will render an `<a>` tag instead of a `<button>` - All valid HTML props for `<a>` tags will be forwarded along to the element. `icon` - type: string (CSS Class) - example: `"ph-bold ph-anchor-simple"` - https://phosphoricons.com/ - If a value is passed, the button will convert into an `IconButton` with an equal width and height. - If used in combination with the `label` prop, the `label` value will be converted into an `aria-label` attribute. `iconLeft` - type: string (CSS Class) - example: `"ph-bold ph-anchor-simple"` - https://phosphoricons.com/ - Adds an icon to the left of the `label` `iconRight` - type: string (CSS Class) - example: `"ph-bold ph-anchor-simple"` - https://phosphoricons.com/ - Adds an icon to the right of the `label` `label` - type: string - Adds visible text to button. - If used in combination with the `icon` prop, this value will be converted into an `aria-label` attribute. `loading` - type: bool - Disables the button, hides button text, and displays a loading spinner. `onClick` - type: function - Other DOM events like `onMouseDown` are also supported. `size` - type: string - values: "small", "default", "large" - default: "default" `type` - type: string - values: native HTML button type values ("button", "submit") - Ignored if `href` prop is passed `variant` - type: string - values: "primary", "secondary", "affirmative", "destructive" - default: "primary" ### HTML Attributes All other props will be forwarded through to the `<a>` or `<button>` element. EG: `id`, `target`, `aria-*`.