You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/pluggableWidgets/rich-text-web/CHANGELOG.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,16 +14,28 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
14
14
15
15
- We added new configuration to allow users to use class names instead of inline styling in generated HTML to support strict CSP.
16
16
17
+
- We added a help button to the toolbar that opens a dialog listing the editor's keyboard shortcuts. The button is shown when the full toolbar is enabled and can be turned off with the new "Keyboard shortcuts" setting.
18
+
19
+
- We added translations for the toolbar, dialogs, and help texts. The editor UI now follows the page language automatically, with bundled translations for English, Dutch, German, French, and Spanish (falling back to English).
20
+
21
+
- We added a clear button to every color picker (font color, font background, and the table and cell background and border color pickers) so a color can be reset to none.
22
+
17
23
### Fixed
18
24
25
+
- We fixed the image dialog to only show the image source tabs that are available: the Media Library tab now appears only when an image data source is configured, and the Upload tab is hidden when default upload is disabled.
26
+
19
27
- We fixed Tiptap duplicate extension warnings for `link`, `textStyle`, `underline`, and `textDirection` by properly configuring StarterKit, removing redundant extension registrations in TextColorClass, memoizing the extensions array to prevent re-registration on component re-renders, and disabling the core TextDirection extension that conflicts with our custom implementation.
20
28
21
29
- We fixed an issue where empty editor content was saving as `<p></p>` instead of an empty string, which incorrectly passed required field validation. Empty content now correctly saves as `""`, ensuring proper validation behavior. Note: This is a breaking change for forms that were relying on the incorrect behavior - required RichText fields will now correctly reject empty content.
22
30
23
31
- We fixed an issue where the editor pasting back the whole sentence instead of the single copied word
24
32
33
+
- We fixed an issue where table header cells did not honor background color and border (color, style, width) configuration. Header cells can now be styled the same way as regular cells.
34
+
25
35
### Changed
26
36
37
+
- We aligned the image dialog's "Upload" tab dropzone with the File Uploader widget's dropzone so both share the same look, states, and messages.
38
+
27
39
- We removed codemirror from code dialog viewer due to unsupported strict CSP policy. A simple internally built code editor using highlightjs is now replacing it.
The just-completed `add-table-size-resize` change added `cellWidth` — a CSS-size string attribute on `TableCellBackgroundColor`, rendered as `width` on the cell and routed through `<colgroup>` (authoritative under `table-layout: fixed`). Cell height is the natural mirror.
4
+
5
+
## Goals / Non-Goals
6
+
7
+
**Goals:**
8
+
9
+
- Add a cell height control that accepts any CSS size string (`100px`, `50%`, bare number → px).
10
+
- Mirror `cellWidth`: same attribute shape, same `normalizeCssSize` validation, same commit-on-blur input.
11
+
12
+
**Non-Goals:**
13
+
14
+
- A dedicated table-row extension / true `<tr>` row-height attribute (no row extension exists; cell height achieves the visible result).
15
+
- Fixed/clipping height — table cell height is a minimum; content still grows the cell.
16
+
17
+
## Decisions
18
+
19
+
### Decision 1: Cell attribute `cellHeight`, rendered on `<td>` style
20
+
21
+
**Rationale:** Mirrors `cellWidth` exactly. Unlike width, height needs **no**`<colgroup>` routing — `table-layout: fixed` only governs column widths, so `height` on the `<td>` works directly. Simpler than width.
**Rationale:** The width control is labeled "Column Width"; the paired control reads "Column Height" for UI symmetry, even though height technically applies to the cell/row. Terminology consistency beats pedantic accuracy here.
26
+
27
+
### Decision 3: Height is a minimum; whole row follows
28
+
29
+
**Rationale / behavior notes:**
30
+
31
+
- Browsers treat table-cell `height` as a minimum — the cell grows if content is taller (no clipping). Consistent with the table `min-height` decision.
32
+
- A `<td>` height stretches its entire row (sibling cells share the row height). So setting "cell height" visually behaves as row height — which is what a user asking for "column/row height" expects.
33
+
34
+
## Migration Plan
35
+
36
+
Additive. Existing tables (no `cellHeight`) unaffected. No data model or breaking changes.
Users can set column (cell) width via a CSS-size text input, but there is no equivalent control for cell height. Completing the pair lets users size table cells in both dimensions. (Requested as "column height"; height in a table applies to cells/rows, not columns — see design.md.)
4
+
5
+
## What Changes
6
+
7
+
- Add a `cellHeight` string attribute to the table cell (`TableCellBackgroundColor`), mirroring `cellWidth`.
8
+
- Render it as `height: <value>` in the cell's inline style (and `data-cell-height` in class format).
9
+
- Add a "Column Height" text input to the cell configuration dropdown, reusing the `textInput` type + `normalizeCssSize` validation + commit-on-blur behavior.
10
+
11
+
## Capabilities
12
+
13
+
### Modified Capabilities
14
+
15
+
-`table-size-control`: add a cell height control alongside the existing column width control.
-`src/components/toolbars/helpers/configurationHelpers.ts` — add "Column Height" text input section.
23
+
24
+
**User Impact:** additive; existing tables unaffected. No colgroup/NodeView changes — height lives directly on the cell (unlike width, which routes through `<colgroup>`).
The cell configuration dropdown SHALL include a "Column Height" text input that stores the height as a CSS size string (e.g. `100px`, `50%`) on the cell's inline style, applying a minimum height to the cell's row.
6
+
7
+
#### Scenario: Setting a cell height
8
+
9
+
-**WHEN** user enters a valid CSS size in the "Column Height" input for a cell
10
+
-**THEN** the cell (and its row) renders at least that tall
11
+
12
+
#### Scenario: Row grows beyond the set height
13
+
14
+
-**WHEN** a cell has a height set and its content requires more vertical space
15
+
-**THEN** the cell grows to fit the content, exceeding the set height
16
+
17
+
#### Scenario: Bare number treated as pixels
18
+
19
+
-**WHEN** user enters a bare number such as `80` for the cell height
20
+
-**THEN** the value is normalized to `80px` and applied
21
+
22
+
#### Scenario: Invalid or unsafe height is rejected
23
+
24
+
-**WHEN** user enters a value that is not a valid CSS size
25
+
-**THEN** the value is not applied
26
+
27
+
#### Scenario: Clearing cell height
28
+
29
+
-**WHEN** user clears the "Column Height" input
30
+
-**THEN** the cell height is reset to auto (null)
31
+
32
+
#### Scenario: Height serializes in the active style-data format
33
+
34
+
-**WHEN** a cell height is set
35
+
-**THEN** it is rendered as inline `height` in `inline` mode and as `data-cell-height` in `class` mode, consistent with the column width control
0 commit comments