diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-chartannotations.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-chartannotations.png new file mode 100644 index 0000000000..99d07a1ad7 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-chartannotations.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-cssgrid.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-cssgrid.png new file mode 100644 index 0000000000..ba48f6b926 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-cssgrid.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-datagrid-fildermode.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-datagrid-fildermode.png new file mode 100644 index 0000000000..97769009b7 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-datagrid-fildermode.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-dropdown-check.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-dropdown-check.png new file mode 100644 index 0000000000..34801029b8 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-dropdown-check.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-dropdownlist-selection.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-dropdownlist-selection.png new file mode 100644 index 0000000000..0752979722 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-dropdownlist-selection.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-liststyle.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-liststyle.png new file mode 100644 index 0000000000..e5f2c6d6f7 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-liststyle.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-signaturepad.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-signaturepad.png new file mode 100644 index 0000000000..bebd52607f Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-signaturepad.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-splitter.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-splitter.png new file mode 100644 index 0000000000..9326014aa2 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-splitter.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-textsize.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-textsize.png new file mode 100644 index 0000000000..6904dac710 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-textsize.png differ diff --git a/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-video.png b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-video.png new file mode 100644 index 0000000000..38c708ccf0 Binary files /dev/null and b/Documentation/Blazorise.Docs.Server/wwwroot/img/news/130/feature-video.png differ diff --git a/Documentation/Blazorise.Docs/Pages/News/2023-08-16-release-notes-130.razor b/Documentation/Blazorise.Docs/Pages/News/2023-08-16-release-notes-130.razor index 6a1d6f59da..9ccae24f7d 100644 --- a/Documentation/Blazorise.Docs/Pages/News/2023-08-16-release-notes-130.razor +++ b/Documentation/Blazorise.Docs/Pages/News/2023-08-16-release-notes-130.razor @@ -9,25 +9,87 @@ - TODO + Greetings to our amazing developer community! We're thrilled to announce the latest and greatest version of Blazorise – version 1.3. Dive in to explore the new components, enhancements, and features we've added to help you craft even better web applications! Blazorise 1.3 Highlights 💡 + + Here's a summary of what’s new in this release: + + - TODO + + Offcanvas Component: Now offers dynamic appearance from top, bottom, left, or right of the screen. Comprising three main elements (Offcanvas, OffcanvasHeader, OffcanvasBody), it enhances the responsive design for both desktop and mobile. + + + + + Splitter Component: Craft resizable panels with new functionalities including GutterSize, MinSize, MaxSize, and more. + + + + + Signature Pad: Collect digital signatures effortlessly. + + + + Charts.Annotation: Draw Lines and Boxes over the Charts + + + + DataGrid Enhancements: + + + + + New FilterMode for dynamic column-based filtering. + + + Improved parameters for DataGridSelectColumn. + + + CancellableRowChange and SavedRowItem improvements. + + + New ApplySorting method for programmatic column sorting. + + + Predefined column filtering with FilterMethod. + + + Expandable row groups with ExpandGroups and CollapseGroups. + + + New ClearFilter overload. + + + New HeaderGroupCaption to group multiple column headers. + + + + + + + TreeView: Observable collections. + + + + + Utilities: CSS Grid, Text Size, List Styles, ... + - Upgrade an existing Blazorise project 👨‍🔧 + Get Started 👨‍🔧 - To upgrade an existing Blazorise applications from 1.1.x to 1.3: + To upgrade an existing Blazorise applications from 1.2.x to 1.3: @@ -37,13 +99,17 @@ - You should now be able to use Blazorise without any breaking changes. + You should now be able to use Blazorise without any breaking changes to the API. - Breaking Behaviour + Good to Know + + Before we continue we need to make sure that you're familiar with some behaviour changes in this release. + + @@ -67,311 +133,415 @@ - New Features 🚀 + New Features & Enhancements 🚀 - Message Provider + Offcanvas Component - We have added localization support to the MessageProvider. This update will allow developers to create applications that can support multiple languages and locales. + The new Offcanvas component offers the flexibility to appear, or slide from the top, bottom, left, or right of your screen, making it highly adaptable to a variety of design contexts. This makes it a perfect fit for both desktop and mobile layouts, allowing you to create responsive designs with ease. - The MessageProvider is a vital component in Blazorise that enables the display of notifications, alerts, and other messages to users. With the added localization support, developers can now customize the messages displayed to users based on their preferred language and locale. - - - - This update will make it easier for developers to create applications that can cater to a global audience. We hope this update will be beneficial to our users and help them create more accessible and user-friendly applications. + We believe the Offcanvas component will offer our developers a new level of versatility when crafting unique user interfaces, making it easier to manage additional content or navigation in a user-friendly and accessible way. - DataGrid + Splitter Component - - There is now a new FilterMode option that allows you to specify a new Filter Mode. By setting the FilterMode to the new DataGridFilterMode.Menu, the DataGrid will now show a filter icon by each column allowing your users to dinamically customize the filter to apply on per column basis. - + - Please visit, datagrid filtering docs to find a new example showcasing this feature. + We're thrilled to announce the introduction of a new Splitter component in the latest update of Blazorise. This interactive and flexible layout component provides a way to create resizable panels in your application. - The DataGridSelectColumn will now enable you to provide new parameters so you can quickly render a select structure. + + + + GutterSize: Controls the width of the draggable area between sections, allowing users to adjust the relative sizes of the sections. + + + + + MinSize: Specifies the minimum size to which a section can be resized, ensuring the usability and readability of content in each section. + + + + + MaxSize: Specifies the maximum size to which a section can be resized, ensuring the usability and readability of content in each section. + + + + + and more + + + - We've changed the CancellableRowChange argument that's provided in the RowInserting, RowUpdating and RowRemoving callbacks and the SavedRowItem that's provided in the RowInserted, RowUpdated callbacks to now provide both an OldItem and NewItem. + 🏆 We would like to express our sincere thanks to smfields, a dedicated member of our community, who initially developed this feature. He has generously granted us the rights to include it in Blazorise, enabling all users of our library to benefit from this versatile component. - OldItem will replace the regular existing Item as it's easier to understand what it represents. - Item is now marked as obsolete and will be removed in a future release. + We look forward to seeing the creative ways in which you'll incorporate this new feature into your projects! - NewItem is a deep clone of the item that's being inserted or updated with the updated edit values. + The usage of new Splitter component can be see on Splitter page. - - The existing Values Dictionary will still exist, but this allows you to promptly get a mapped TItem without having to write your own mapping code from the Dictionary. - + + SignaturePad + + + - Introduced a new ApplySorting method that allows you to programatically define the columns that you'd like the grid to be sorted on. + The SignaturePad is a crucial component in Blazorise that enables users to sign and submit documents electronically. With this update, developers can now capture and store signatures in a secure and reliable manner, ensuring the authenticity and integrity of the documents. - Please visit, datagrid sorting docs for more information. + This component will make it easier for developers to create applications that require the collection of digital signatures, saving time and effort for both the users and the developers. We hope this update will be beneficial to our users and help them create more efficient and effective applications. - You are now able to use pre defined filtering on a per-column basis by specifying FilterMethod on DataGridColumn. + The usage of new SignaturePad component can be see on SignaturePad page. - - Expandable row groups + + Message Provider - Introduced ExpandGroups and CollapseGroups methods that allows you to programatically expand or collapse specific groups. + We have added localization support to the MessageProvider. This update will allow developers to create applications that can support multiple languages and locales. - These new methods provide you with more control over how the data is presented and viewed, allowing you to tailor the user experience to specific usage scenarios and user preferences. + The MessageProvider is a vital component in Blazorise that enables the display of notifications, alerts, and other messages to users. With the added localization support, developers can now customize the messages displayed to users based on their preferred language and locale. - - Filtering + + Draw Lines and Boxes over the Charts - - The DataGridNumericColumn now renders a numeric filter input & applies the corresponding specific numeric configuration you've assigned it. - + - Added a new ClearFilter overload. You are now able to clear the filter on specific columns. + This innovative extension is based on the powerful chartjs-plugin-annotation and offers a new level of flexibility and functionality for your chart visualizations. - - HeaderGroupCaption - - - We are excited to introduce the new HeaderGroupCaption feature for the DataGrid component. This feature allows you to group together multiple DataGrid column headers under a single, overarching caption. + The Charts Annotation extension lets you draw lines, boxes, points, labels, polygons, and ellipses directly on the chart area, adding context and enhancing data visualization. This feature is versatile and can be used in conjunction with line, bar, scatter, and bubble charts, providing meaningful insights for your data sets. - This is especially useful when you have related columns that need to be grouped under a common heading for better understanding and organization. For instance, if you have a DataGrid displaying product details, you can group columns like 'Price', 'Discount', and 'Total Cost' under a header group captioned 'Financial Details'. + Whether you're using linear, logarithmic, time, or category scales, you'll find the annotations provide a new dimension to your charts. However, please note that annotations will not work on charts that do not have two or more axes, including pie, radar, and polar area charts. - With this enhancement, you can now structure your data more effectively and provide more clarity to users. Grouping column headers using HeaderGroupCaption significantly improves the readability of complex grids and enhances user experience by enabling more intuitive navigation through the DataGrid. + This new extension is a significant step towards making Blazorise's charting features more comprehensive and versatile. We encourage you to experiment with these new capabilities to see how they can add depth to your data visualizations. As always, we look forward to hearing your feedback! - Contributions + DataGrid - DataGrid : ApplySorting was contributed by danm-de - - - Introduced a new RowOverlayTemplate that allows you to render an overlay with adittional information on top of the row. - - - - Please visit, row overlay docs for more information. + There are so many new features, APIs, and other improvements on the DataGrid component that is hard to keep track of all of them. Explaining them is not as easy task so we're going to be as short as possible. - - FieldLabel + + Filtering Improvements - - A new RequiredIndicator parameter was introduced. By enabling this parameter. The label will display a a required indicator by appending a relevant class which by default will render an asterix by the label with the theme's danger color. Which you can of course override the css class to your liking. - + + + + New FilterMode + - - Dropdown - + - - We have added a new Checkbox parameter to the DropdownItem so you may now render dropdown items with checkboxes. You can also track the state of each one by binding to the new Checked and CheckedChanged parameters. - + + There is now a new FilterMode option that allows you to specify a new Filter Mode. By setting the FilterMode to the new DataGridFilterMode.Menu, the DataGrid will now show a filter icon by each column allowing your users to dinamically customize the filter to apply on per column basis. + - - DropdownList + + Please visit, datagrid filtering docs to find a new example showcasing this feature. + + + + + New FilterMethod + + + + You are now able to use pre defined filtering on a per-column basis by specifying FilterMethod on DataGridColumn. + + + + + New ClearFilter + + + + Added a new ClearFilter overload. You are now able to clear the filter on specific columns. + + + + + Numeric Filtering + + + + The DataGridNumericColumn now renders a numeric filter input & applies the corresponding specific numeric configuration you've assigned it. + + + + + + Grouping Header Captions - Introduced a new SelectionMode parameter, which allows the selection of a new Checkbox mode, that will set the DropdownList into a multiple selection mode. You can track the state of the selection by binding to the new SelectedValues and SelectedValuesChanged parameters. + The new HeaderGroupCaption feature for the DataGrid component is something we are eager to share. With the help of this feature, you can combine several DataGrid column headers under a single, comprehensive caption. - - TreeView - - - Introduced RemoveNode method that allows you to remove a node from the tree if it's found. + This is particularly helpful when you need to group related columns under a single heading for easier understanding and organization. For instance, you could put columns like "Price," "Discount," and "Total Cost" under a header group titled "Financial Details" in a DataGrid that displays product details. - You are now able to make node children collections observable (retrieved by GetChildNodes / GetChildNodesAsync ) and any changes to them should be reflected on the UI. + With this improvement, you can better structure your data and give users more information. By enabling more intuitive navigation through the DataGrid, grouping column headers using HeaderGroupCaption greatly improves the readability of complicated grids. - With the contribution by JTtheGeek, it is now possible to disable TreeView node. On top of that you can also define custom styles for disabled nodes. + Please visit, DataGrid Header Group docs to find a new example showcasing this feature. - - Autocomplete + + DataGrid Select Column Data Binding - 1. We have added a new FreeTypingNotFoundTemplate parameter so you may provide a custom template when the user types in a value that is not found in the data source and FreeTyping is enabled. + The DataGridSelectColumn will now enable you to provide new parameters so you can quickly render a select structure. Similarly to how a regular SelectList works, you can define new parameters, Data, ValueField, and TextField that will help to danamically bind the underline select element. - This is useful when you want to provide a message for the user related to an item that's not in the data source. For example, presenting the following message for the Singapore text that's not in the data source: Add "Singapore"? + Please visit, DataGridSelectColumn docs to find a new example showcasing this feature. + + Providing saved Item clone while saving + + - 2. We have added a new AutocompleteTagContext parameter so you may customize tags to your liking when using Autocomplete multiple selection mode. + We've modified the callback CancellableRowChange argument in the RowInserting, RowUpdating, and RowRemoving callbacks to now provide both an OldItem and NewItem properties. + + + + OldItem will replace the regular existing Item as it's easier to understand what it represents. + + + + + Item is now marked as obsolete and will be removed in a future release. + + + + + NewItem is a deep clone of the item that's being inserted or updated with the updated edit values. + + + + - 3. We've added EventCallbacks for the events that we currently listen to in the Autocomplete, these are called when the Autocomplete finishes handling the corresponding event. - - SearchTextChanged - SearchKeyDown - SearchFocus - SearchBlur - + The existing .Values; dictionary will still exist, but this allows you to promptly get a mapped TItem without having to write your own mapping code from the Dictionary. - - Signature Pad + + Apply Sorting Programatically - We are pleased to announce that Signature Pad now supports the capture and storage of digital signatures. This update will allow developers to create applications that require the collection of signatures from users, such as contracts, agreements, and other legal documents. + Introduced a new ApplySorting() method that allows you to programatically define the columns that you'd like the grid to be sorted on. - The Signature Pad is a crucial component in Blazorise that enables users to sign and submit documents electronically. With this update, developers can now capture and store signatures in a secure and reliable manner, ensuring the authenticity and integrity of the documents. + 🏆 This features was contributed by danm-de. - This update will make it easier for developers to create applications that require the collection of digital signatures, saving time and effort for both the users and the developers. We hope this update will be beneficial to our users and help them create more efficient and effective applications. + Please visit, datagrid sorting docs for more information. - - Splitter + + Expandable Row Groups - We're thrilled to announce the introduction of a new Splitter component in the latest update of Blazorise. This interactive and flexible layout component provides a way to create resizable panels in your application. + Introduced ExpandGroups() and CollapseGroups() methods that allows you to programatically expand or collapse specific groups. - - - - GutterSize: Controls the width of the draggable area between sections, allowing users to adjust the relative sizes of the sections. - - - - - MinSize: Specifies the minimum size to which a section can be resized, ensuring the usability and readability of content in each section. - - - - - MaxSize: Specifies the maximum size to which a section can be resized, ensuring the usability and readability of content in each section. - - - - - and more - - - + These new methods provide you with more control over how the data is presented and viewed, allowing you to tailor the user experience to specific usage scenarios and user preferences. + + Display an overlay element while hovering over the row + + - We would like to express our sincere thanks to smfields, a dedicated member of our community, who initially developed this feature. smfields generously granted us the rights to include it in Blazorise, enabling all users of our library to benefit from this versatile component. + Introduced a new RowOverlayTemplate that allows you to render an overlay with adittional information on top of the row. This feature is partically useful when you wish to provide more context about the data being presented to the user. - We look forward to seeing the creative ways in which you'll incorporate this new feature into your projects! + Please visit, Row Overlay docs for more information. - Video + Show Required Indicator on a Field Label - In this release, we've added a significant enhancement to the Blazorise Video player. Users now have the ability to define multiple sources for a single video, each with different qualities. This includes options for 576p, 720p, and 1080p. The chosen video file, hosted at a unique URL for each quality, will load based on the user's preference or network conditions. By default, the player is set to display the video in 720p. This new feature offers users a more tailored and efficient video viewing experience by adapting to their specific needs and conditions. + A new RequiredIndicator parameter was introduced. By enabling this parameter. The label will display a a required indicator by appending a relevant class which by default will render an asterix by the label with the theme's danger color. Which you can of course override the css class to your liking. - Dropdown + Dropdown with Checkboxes + + - We've migrated the underlying library that takes care of dynamically "anchor position" the dropdown menu according to the UI constraints. It has been migrated from Popper to the newer Floating UI library. - Behaviour should remain unchanged and your dropdown menus should still be cleverly positioned! + We have added a new Checkbox parameter to the DropdownItem so you may now render dropdown items with checkboxes. You can also track the state of each one by binding to the new Checked and CheckedChanged parameters. + + + + DropdownList selection with checkboxes + + + + + + Introduced a new SelectionMode parameter, which allows the selection of a new Checkbox mode, that will set the DropdownList into a multiple selection mode. You can track the state of the selection by binding to the new SelectedValues and SelectedValuesChanged parameters. + + Remove Nodes from TreeView + + - Added a new PositionStrategy parameter, that allows you to set the positioning strategy for your dropdown. Please read Floating UI Strategy for more details on how it can affect the positioning of your dropdown. + 🏆 With the contribution by our community member JTtheGeek, we now have a RemoveNode() method that allows you to remove a node from the TreeView if it's found. - Added a new DropdownMenuTargetId parameter, that allows you to set a custom anchor element id for the dropdown menu. This is useful when you want the dropdown menu to be anchored from a different element than the toggle. + It is also possible to make node children collections observable (retrieved by GetChildNodes() / GetChildNodesAsync() ) and any changes to them should be reflected on the UI. - Fixed an issue where in some certain cases, if buttons existed inside the Dropdown the menu positioning would not be handled correctly. + On top of it, you can also make use of IsDisabled() callback method to disable each node dynamically. - Validation + New APIs added to Autocomplete + + + + We have added a new FreeTypingNotFoundTemplate parameter so you may provide a custom template when the user types in a value that is not found in the data source and FreeTyping is enabled. + + + This is useful when you want to provide a message for the user related to an item that's not in the data source. For example, presenting the following message for the Singapore text that's not in the data source: Add "Singapore"? + + + + + We have added a new AutocompleteTagContext parameter so you may customize tags to your liking when using Autocomplete multiple selection mode. + + + + + We've added EventCallbacks for the events that we currently listen to in the Autocomplete, these are called when the Autocomplete finishes handling the corresponding event. + + SearchTextChanged + SearchKeyDown + SearchFocus + SearchBlur + + + + + + + Play Videos from multiple sources with diferent qualities + + + + - We've added support for IValidatableObject. This new feature enhances the flexibility and robustness of your form validation processes. By implementing the IValidatableObject interface in your models, you can now provide custom validation logic that is more complex and situation-specific than what can be achieved with simple data annotation validation. This interface includes the Validate method, which you can override to define your custom validation rules. This method is automatically invoked when performing model validation, ensuring that your custom rules are adhered to. This feature is useful when the validity of a property's value is dependent on another property's value, or when an intricate validation process is required. + In this release, we've added a significant enhancement to the Blazorise Video player. Users now have the ability to define multiple sources for a single video, each with different qualities. This includes options for 576p, 720p, and 1080p. The chosen video file, hosted at a unique URL for each quality, will load based on the user's preference or network conditions. By default, the player is set to display the video in 720p. This new feature offers users a more tailored and efficient video viewing experience by adapting to their specific needs and conditions. - Offcanvas + Improved Dropdown Positioning - The Offcanvas component offers the flexibility to appear from the top, bottom, left, or right of your screen, making it highly adaptable to a variety of design contexts. This makes it a perfect fit for both desktop and mobile layouts, allowing you to create responsive designs with ease. + We've migrated the underlying library that takes care of dynamically "anchor position" the dropdown menu according to the UI constraints. It has been migrated from Popper to the newer Floating UI library. + Behaviour should remain unchanged and your dropdown menus should still be cleverly positioned! + + + + Added a new PositionStrategy parameter, that allows you to set the positioning strategy for your dropdown. Please read Floating UI Strategy for more details on how it can affect the positioning of your dropdown. + + + + + Added a new DropdownMenuTargetId parameter, that allows you to set a custom anchor element id for the dropdown menu. This is useful when you want the dropdown menu to be anchored from a different element than the toggle button. + + + + + Fixed an issue where in some certain cases, if buttons existed inside the Dropdown the menu positioning would not be handled correctly. + + + + + + Validation with IValidatableObject + + - The Offcanvas component consists of three main elements: Offcanvas, OffcanvasHeader, and OffcanvasBody. The Offcanvas element is the main container, the OffcanvasHeader is designed to hold the title or heading, and the OffcanvasBody is where you put the main content or items for your offcanvas. This structured approach ensures a clear and intuitive setup process for developers. + We've added support for IValidatableObject. This new feature enhances the flexibility and robustness of your form validation processes. By implementing the IValidatableObject interface in your models, you can now provide custom validation logic that is more complex and situation-specific than what can be achieved with simple data annotation validation. - We believe the Offcanvas component will offer our developers a new level of versatility when crafting unique user interfaces, making it easier to manage additional content or navigation in a user-friendly and accessible way. + This interface includes the Validate method, which you can override to define your custom validation rules. This method is automatically invoked when performing model validation, ensuring that your custom rules are adhered to. This feature is useful when the validity of a property's value is dependent on another property's value, or when an intricate validation process is required. - Utilities + New Utilities 🧰 CSS Grid + + - The grid is a two-dimensional layout model, comprised of 12 columns and up to 6 rows, providing a robust structure for building complex layouts. This structure allows developers to craft visually appealing and responsive designs that will adapt seamlessly across various devices and screen sizes. + The CSS Grid is a two-dimensional layout model, comprised of 12 columns and up to 6 rows, providing a robust structure for building complex layouts. This structure allows developers to craft visually appealing and responsive designs that will adapt seamlessly across various devices and screen sizes. @@ -386,36 +556,36 @@ Lists Style Image + + - The ListStyleImage parameter allows you to define the marker images for list items. This gives you more flexibility and creativity in styling your lists, enhancing your user interface by going beyond the traditional bullet points or numerical markers. You can now use custom images to highlight or differentiate individual list items. It takes a string as its value, which should be Base64 encoded string that represents an image, or a URL of the image you wish to use as your list marker. Please note that the image URL must be enclosed in url() and the image should ideally be a small, suitable size for use as a list marker. + The ListStyleImage parameter allows you to define the marker images for list items. This gives you more flexibility and creativity in styling your lists, enhancing your user interface by going beyond the traditional bullet points or numerical markers. You can now use custom images to highlight or differentiate individual list items. It takes a string as its value, which should be Base64 encoded string that represents an image, or a URL of the image you wish to use as your list marker. Please note that the image URL must be enclosed in url() and the image should ideally be a small, suitable size for use as a list marker. The example can be found on Typography pages. Text Size + + The TextSize enum provides predefined sizes from extra small to extra large, as well as supporting various heading sizes from Heading1 (largest) to Heading6 (smallest). The example can be found on Typography pages. - - Charts Annotations - - - - This innovative extension is based on the powerful chartjs-plugin-annotation and offers a new level of flexibility and functionality for your chart visualizations. - + + Wrap Up + - The Charts.Annotation extension lets you draw lines, boxes, points, labels, polygons, and ellipses directly on the chart area, adding context and enhancing data visualization. This feature is versatile and can be used in conjunction with line, bar, scatter, and bubble charts, providing meaningful insights for your data sets. + This release is packed with features, enhancements, and improvements, all aimed at making your Blazorise experience richer and more efficient. We're always striving to make Blazorise the best it can be, and we couldn't do it without your feedback and support. - Whether you're using linear, logarithmic, time, or category scales, you'll find the annotations provide a new dimension to your charts. However, please note that annotations will not work on charts that do not have two or more axes, including pie, radar, and polar area charts. + Thank you for being a part of our journey. We eagerly await to see the fantastic applications you craft using these new features! - This new extension is a significant step towards making Blazorise's charting features more comprehensive and versatile. We encourage you to experiment with these new capabilities to see how they can add depth to your data visualizations. As always, we look forward to hearing your feedback! + Happy coding! 🎉🚀 - \ No newline at end of file + \ No newline at end of file diff --git a/Documentation/Blazorise.Docs/Pages/News/Index.razor b/Documentation/Blazorise.Docs/Pages/News/Index.razor index 97f5edb1fc..6dc61a1128 100644 --- a/Documentation/Blazorise.Docs/Pages/News/Index.razor +++ b/Documentation/Blazorise.Docs/Pages/News/Index.razor @@ -68,7 +68,7 @@ List NewsEntries = new List { - new BlogEntry { Category = "Major releases", Url = "news/release-notes/130", Text = "Announcing Blazorise 1.3", Description = "We have some exciting news to share with you today! As part of our ongoing efforts to improve and enhance...", Image = "img/news/empty.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "August 16th", ReadTime = "7 min", Pinned = true }, + new BlogEntry { Category = "Major releases", Url = "news/release-notes/130", Text = "Announcing Blazorise 1.3", Description = "Greetings to our amazing developer community! We're thrilled to announce the latest and greatest version of Blazorise...", Image = "img/news/empty.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "August 16th", ReadTime = "11 min", Pinned = true }, new BlogEntry { Category = "Maintenance", Url = "news/release-notes/125", Text = "Maintenance release: Blazorise 1.2.5", Description = "Welcome to the maintenance release of Blazorise v1.2.5! This release includes a number...", Image = "img/news/120/v125.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" }, new BlogEntry { Category = "Maintenance", Url = "news/release-notes/124", Text = "Maintenance release: Blazorise 1.2.4", Description = "Welcome to the maintenance release of Blazorise v1.2.4! This release includes a number...", Image = "img/news/120/v124.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "", ReadTime = "" }, new BlogEntry { Category = "Changes", Url = "news/2023-changes-to-blazorise-plans-and-licensing", Text = "Changes to Blazorise Plans and Licensing", Description = "We are writing this post to provide an important update on...", Image = "img/news/2023-blazorise-plans-change.png", AuthorName = "Mladen Macanović", AuthorImage = "mladen", PostedOn = "June 6th", ReadTime = "4 min" },