Repository navigation
feat(markdown): add lu-markdown component to display markdown content - #5326
Merged
Merged
Conversation
JeSuisCharlie1
temporarily deployed
to
staging
September 10, 2026 12:37 — with
GitHub Actions
Inactive
|
🚀 Storybook preview deployed: https://pub-dc6d99acd6874e2aaff6219dd8a13ae2.r2.dev/PR-5326/index.html |
Supamiu
approved these changes
Sep 10, 2026
jeremie-lucca
approved these changes
Sep 14, 2026
Merged
jeremie-lucca
added a commit
that referenced
this pull request
Oct 16, 2026
### 🎉 Features - [Markdown] New component, renders a markdown string with the Text flow styles, with a `headingLevel` input to fit the page heading outline [#5326](#5326) - [PriorityLevels] New component, displays the priority level of an item [#5407](#5407) - [Kbd] New component, displays keyboard shortcuts, translates named keys and adapts them to the platform [#5468](#5468) - [SimpleSelect/MultiSelect] Open the panel as a bottom sheet dialog on smaller screens [#5313](#5313) [#5517](#5517) - [FilterBar] Group the optional filter pills and make them searchable [#5377](#5377) - [FilterBar] Display segmented control tabs at the end of the bar with the `segmentedControlTabs` input, and add `icon` and `hiddenLabel` inputs to `lu-segmented-control-tabs-panel` [#5448](#5448) - [FilterBar] Display the results count with the `resultsCount` input [#5487](#5487) - [DateRangeInput] Allow a range with only a start or an end date, for "from" and "until" filters [#5379](#5379) [#5460](#5460) - [Form] Focus the first invalid field on submit with the opt-in `focusInvalidOnSubmit` input [#5264](#5264) - [FancyBox] Color the bubbles from the palette, add a bottom-left foreground illustration, type the illustrations and allow overriding them with a URL [#5288](#5288) - Draw random visual variations (skeletons, `lu-bubble-icon` direction) from the `LU_RANDOM` token, to get a stable rendering in UI diffs [#5515](#5515) - [Tag] Allow icon-only tags, decorative or with a hidden label [#5261](#5261) [#5335](#5335) - [DateInput] Add the `humanized` input to display dates in natural language ("Today", "March 2026") [#5316](#5316) - [Impersonation] Add the optional `operationIds`, `uniqueOperationIds` and `appInstanceId` user scoping inputs [#5352](#5352) - [ActivityFeed] Add the `icon` input on `lu-activity-feed-step` [#5381](#5381) - [TextInput/SimpleSelect/MultiSelect] Add the `width` input, and a new `10` width value [#5384](#5384) - [NumberInput/NumberFormatInput] Add the `width` input [#5470](#5470) - [DataTable] Make group rows sticky along with the `stickyColumn` mod [#5385](#5385) - [UserPopover/Link] Open the user name as an external link, and add the `neutral` input to `luLink` [#5426](#5426) - [HighlightData] Color the bubbles from the `palette` and `theme` inputs [#5439](#5439) - [Loading] Add a default accessible label, visually hidden unless `hiddenLabel` is `false` [#5467](#5467) - [BubbleIcon] Override the default `bubbleDirection` with the `LU_BUBBLE_ICON_DEFAULT_DIRECTION` token [#5514](#5514) ### 🎨 UI update - [ActivityFeed] Reduce the icons size [#5397](#5397) ### 🩹 Fixes - [DataTable/IndexTable] Never emit `null` from the `sortChange` output of header cells [#5489](#5489) - [DateInput/DateRangeInput] Type `calendarMode` as non-nullable, defaulting to `mode` [#5490](#5490) [#5492](#5492) - [TextInput] Type `inputElementRef()` as non-nullable [#5491](#5491) ### 📖 Documentation - [FilterBar] Extend the QA stories and clean up the documentation [#5449](#5449) ### 🔨 Technical - 💥 [UserPopover] Remove the deprecated `USER_POPOVER_IS_ACTIVATED` token [#5412](#5412) - Clear the npm audit advisories and drop unused devDependencies [#5290](#5290) ### 💀 Deprecated - [FancyBox] `foreground` is deprecated, use `foregroundStartEnd` instead [#5288](#5288) - [FancyBox] `backgroundLeft` is deprecated, use `backgroundEndStart` instead [#5288](#5288) - [FancyBox] `backgroundRight` is deprecated, use `backgroundStartEnd` instead [#5288](#5288) --------- Co-authored-by: Charlie JEANNEAU <35218368+JeSuisCharlie1@users.noreply.github.com> Co-authored-by: Vincent Valentin <64789527+vvalentin-lucca@users.noreply.github.com> Co-authored-by: Corentin <2089620+shajz@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Adèle Guillerot <aguillerot@luccasoftware.com> Co-authored-by: Yoan Malié <128475140+ymalie-lucca@users.noreply.github.com> Co-authored-by: Flavien Normand <contact@flavien-normand.fr> Co-authored-by: Flavien Normand <11519203+Supamiu@users.noreply.github.com> Co-authored-by: alex-delaunay-lucca <117659925+alex-delaunay-lucca@users.noreply.github.com> Co-authored-by: Guillaume Nury <GuillaumeNury@users.noreply.github.com>
This branch was previously deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Displaying markdown in an app meant parsing it by hand and wiring the styles yourself.
The new
lu-markdowncomponent takes a markdown string and renders it with the Textflow styles: headings, paragraphs, lists, links, bold, italic and code.
Its
headingLevelinput sets the semantic level of the top-level#heading. Markdownusually comes from somewhere else (an API field, a CMS, user input) and lands in a page
that already has its own
<h1>, which breaks the heading outline for screen readerusers. With
headingLevel="2",# Titlerenders an<h2>styled like an<h1>: thetag follows the page, the style follows the markdown.
@lucca-front/ng/markdownwith component and method.LuSafeHtmlPipe.