# MessageBox ## Description BitMessageBox is a pre-implemented box for showing messages with title and body. ## Parameters | Name | Type | Default Value | Description | | :--- | :--- | :------------ | :---------- | | Body | `string?` | null | The body of the message box. | | Classes | `BitMessageBoxClassStyles?` | null | Custom CSS classes for different parts of the message box. | | OkText | `string?` | null | The text of the Ok button. | | OnClose | `EventCallback` | | The event callback for closing the message box. | | Styles | `BitMessageBoxClassStyles?` | null | Custom CSS styles for different parts of the message box. | | Title | `string?` | null | The title of the message box. | | AriaLabel | `string?` | null | Gets or sets the accessible label for the component, used by assistive technologies. | | Class | `string?` | null | Gets or sets the CSS class name(s) to apply to the rendered element. | | Dir | `BitDir?` | null | Gets or sets the text directionality for the component's content. | | ForceAnimation | `bool` | false | Gets or sets a value indicating whether the component's animations play at their full duration even when reduced motion is requested. | | HtmlAttributes | `Dictionary<string, object>` | new Dictionary<string, object>() | Captures additional HTML attributes to be applied to the rendered element, in addition to the component's parameters. | | Id | `string?` | null | Gets or sets the unique identifier for the component's root element. | | IsEnabled | `bool` | true | Gets or sets a value indicating whether the component is enabled and can respond to user interaction. | | Style | `string?` | null | Gets or sets the CSS style string to apply to the rendered element. | | TabIndex | `string?` | null | Gets or sets the tab order index for the component when navigating with the keyboard. | | Visibility | `BitVisibility` | BitVisibility.Visible | Gets or sets the visibility state (visible, hidden, or collapsed) of the component. | ## Public Members | Name | Type | Default Value | Description | | :--- | :--- | :------------ | :---------- | | UniqueId | `Guid` | Guid.NewGuid() | Gets the readonly unique identifier for the component's root element, assigned when the component instance is constructed. | | RootElement | `ElementReference` | | Gets the reference to the root HTML element associated with this component. | ## Enums ### BitVisibility Enum | Name | Value | Description | | :--- | :--- | :---------- | | Visible | 0 | The content of the component is visible. | | Hidden | 1 | The content of the component is hidden, but the space it takes on the page remains (visibility:hidden). | | Collapsed | 2 | The component is hidden (display:none). | ### BitDir Enum | Name | Value | Description | | :--- | :--- | :---------- | | Ltr | 0 | Ltr (left to right) is to be used for languages that are written from the left to the right (like English). | | Rtl | 1 | Rtl (right to left) is to be used for languages that are written from the right to the left (like Arabic). | | Auto | 2 | Auto lets the user agent decide. It uses a basic algorithm as it parses the characters inside the element until it finds a character with a strong directionality, then applies that directionality to the whole element. | ## Sub Classes ### BitMessageBoxClassStyles Properties | Name | Type | Default Value | Description | | :--- | :--- | :------------ | :---------- | | Root | `string?` | null | Custom CSS classes/styles for the root element of the BitMessageBox. | | Container | `string?` | null | Custom CSS classes/styles for the container of the BitMessageBox. | | Header | `string?` | null | Custom CSS classes/styles for the header of the BitMessageBox. | | Title | `string?` | null | Custom CSS classes/styles for the title of the BitMessageBox. | | Spacer | `string?` | null | Custom CSS classes/styles for the BitSpacer of the BitMessageBox. | | CloseButton | `BitButtonClassStyles?` | null | Custom CSS classes/styles for the CloseButton of the BitMessageBox. | | Body | `string?` | null | Custom CSS classes/styles for the body of the BitMessageBox. | | Footer | `string?` | null | Custom CSS classes/styles for the footer of the BitMessageBox. | | OkButton | `BitButtonClassStyles?` | null | Custom CSS classes/styles for the OkButton of the BitMessageBox. | ## Examples \n**Basic**: ```razor ``` \n**BitModal**: ```razor Show ``` ```csharp private bool isModalOpen; ``` \n**BitProModal**: ```razor Show ``` ```csharp private bool isProModalOpen; ``` \n**BitModalService**: ```razor Show MessageBox ``` ```csharp [AutoInject] private BitModalService modalService { get; set; } = default!; private async Task ShowMessageBox() { await modalService.Show(modalRef => new() { { nameof(BitMessageBox.Title), "This is a title" }, { nameof(BitMessageBox.Body), "This is a body." }, { nameof(BitMessageBox.OnClose), EventCallback.Factory.Create(this, modalRef.Close) } }); } ``` \n**BitProModalService**: ```razor Show MessageBox ``` ```csharp [AutoInject] private BitProModalService proModalService { get; set; } = default!; private async Task ShowProMessageBox() { await proModalService.Show(modalRef => new() { { nameof(BitMessageBox.Title), "This is a title" }, { nameof(BitMessageBox.Body), "This is a body." }, { nameof(BitMessageBox.OnClose), EventCallback.Factory.Create(this, modalRef.Close) } }); } ``` \n**BitMessageBoxService**: ```razor Show MessageBox @* The service uses the BitProModalService when available, otherwise the BitModalService. *@ @* Mount the matching container: BitProModalContainer for the pro modal, BitModalContainer otherwise. *@ ``` ```csharp [AutoInject] private BitMessageBoxService messageBoxService { get; set; } = default!; private async Task ShowMessageBoxService() { await messageBoxService.Show("TITLE", "BODY"); } ``` \n**Style & Class**: ```razor ``` \n**RTL**: ```razor ```