From e004035ed5625a5c696c5efc1ed619f553f375e1 Mon Sep 17 00:00:00 2001 From: Waleed Latif Date: Fri, 28 Aug 2026 13:17:43 -0700 Subject: [PATCH] improvement(ui): consolidate fade-only overflow --- .claude/rules/emcn-components.md | 2 +- .claude/rules/sim-styling.md | 8 +-- .cursor/rules/sim-styling.mdc | 8 +-- .../resource-header/resource-header.tsx | 16 +++--- .../workspace/[workspaceId]/files/files.tsx | 24 ++------- .../add-resource-dropdown.tsx | 9 ++-- .../knowledge/[id]/[documentId]/document.tsx | 17 +------ .../app/workspace/[workspaceId]/logs/logs.tsx | 36 ++----------- .../components/columns-menu/columns-menu.tsx | 10 ++-- .../components/views-menu/views-menu.tsx | 6 ++- .../workspace/[workspaceId]/tables/tables.tsx | 18 ++----- .../output-select/output-select.tsx | 10 +--- .../preview-editor/preview-editor.tsx | 51 ++++++++----------- .../components/block/block.tsx | 28 ++++------ .../w/components/preview/preview.tsx | 9 ++-- .../sidebar-footer/sidebar-footer.tsx | 11 +++- .../workspace-header/workspace-header.tsx | 12 ++++- .../ee/audit-logs/components/audit-logs.tsx | 8 +-- .../components/usage-monitoring.tsx | 14 +---- .../chip-date-picker/chip-date-picker.tsx | 9 ++-- .../chip-dropdown/chip-dropdown.test.tsx | 8 +++ .../chip-dropdown/chip-dropdown.tsx | 37 ++++++++++---- .../src/components/chip-modal/chip-modal.tsx | 7 ++- .../chip-select/chip-select.dom.test.tsx | 8 +++ .../components/chip-select/chip-select.tsx | 19 +++++-- .../emcn/src/components/chip/chip-chrome.ts | 5 +- packages/emcn/src/components/chip/chip.tsx | 9 +++- .../collapsible-card/collapsible-card.tsx | 19 +++++-- .../components/combobox/combobox.dom.test.tsx | 9 +++- .../emcn/src/components/combobox/combobox.tsx | 12 ++--- .../dropdown-menu/dropdown-menu.test.tsx | 20 +++++++- .../dropdown-menu/dropdown-menu.tsx | 29 ++++++++--- packages/emcn/src/components/index.ts | 3 ++ .../overflow-text/overflow-text.test.tsx | 31 ++++++++++- .../overflow-text/overflow-text.tsx | 15 +++--- .../src/components/tab-strip/tab-strip.tsx | 8 +-- .../emcn/src/components/toast/toast.test.tsx | 1 + .../src/lib/overflow-span.tsx | 5 +- .../src/note/note-block-view.tsx | 4 +- .../src/subflow/subflow-node-view.tsx | 2 +- .../workflow-block/canvas-sentence-view.tsx | 2 +- .../src/workflow-block/sub-block-row-view.tsx | 12 ++--- .../workflow-block/workflow-block-view.tsx | 2 +- 43 files changed, 316 insertions(+), 257 deletions(-) diff --git a/.claude/rules/emcn-components.md b/.claude/rules/emcn-components.md index 2d5babc15df..f4a88a40314 100644 --- a/.claude/rules/emcn-components.md +++ b/.claude/rules/emcn-components.md @@ -32,7 +32,7 @@ The menu surface intentionally diverges from the pill: `dropdown-menu.tsx` items - **`ChipDatePicker`** — chip-styled date field. - **`ChipTimePicker`** — minute-granular time sibling of `ChipDatePicker`, a `ChipInput` that leniently parses typed input (`9:47`, `947`, `2:05pm`, `14:30`), commits on Enter/blur, and re-renders the canonical `9:47 AM` label. - **`DropdownMenu`** — the canonical context/action menu (Radix-backed). Not a chip, but the standard menu for command/action lists; reach for it instead of a hand-rolled popover. Its surface intentionally diverges from the chip pill (`text-small`, `gap-2`) — keep them distinct. For a pill that opens a value picker, use `ChipDropdown`/`ChipSelect` instead. -- **`OverflowText`** — the canonical single-line overflow treatment for read-only human labels and titles. It owns `min-w-0`, single-line clipping, the conditional 18px edge fade, and the full-value floating tooltip; consumers pass only layout/typography through `className`. Never combine the fade with `truncate`, which paints an ellipsis beneath the mask. Keep ordinary `truncate` for editable or mirrored input values, code/log/path content, dense or virtualized grids, and composite rows where masking the container would also fade icons or actions. Multiline copy uses an intentional `line-clamp-*` treatment instead. A non-editable `Combobox` visual overlay passes its plain value through `overlayLabel`; render its visible `OverflowText` as a constrained block with `tooltipEnabled={false}` so the interactive trigger owns the single accessible tooltip. +- **`OverflowText`** — the canonical single-line overflow treatment for read-only human labels and titles. It owns `min-w-0`, fade-only clipping (never an ellipsis), the conditional 18px edge mask, and the full-value floating tooltip; consumers pass only layout/typography through `className`. `overflowTextClipClass` and `overflowTextFadeClass` are the complete base/faded treatments for the rare component that must own measurement itself; never pair either with `truncate`, `text-ellipsis`, or hover-time mask removal. Use `DropdownMenuItemLabel` for a menu label beside icons, checks, or actions. A non-editable `Combobox` passes the full visual value through `overlayLabel`; the combobox owns the visual overlay's fade and keeps its one accessible tooltip on the interactive layer. Keep ordinary `truncate` only for editable values, code/log/path content, dense or virtualized grids, and rich composite content that cannot supply a plain tooltip label. Multiline copy uses an intentional `line-clamp-*` treatment instead. ## Modal keyboard defaults diff --git a/.claude/rules/sim-styling.md b/.claude/rules/sim-styling.md index 188fc2b1810..3fd18753f46 100644 --- a/.claude/rules/sim-styling.md +++ b/.claude/rules/sim-styling.md @@ -52,9 +52,11 @@ Icons default `size-[14px]`. Equal h/w → `size-*` (`size-[14px]`, `size-4`), n ## Text Overflow -Use `OverflowText` from `@sim/emcn` for a constrained, single-line, read-only human label or title. It owns `min-w-0`, single-line clipping, the conditional edge fade, and the full-value floating tooltip; pass only layout and typography through `className`. Never combine a fade or hand-written `mask-image` with `truncate`, which leaves an ellipsis beneath the mask. Pass the full label to this component instead of shortening it in JavaScript first. +Use `OverflowText` from `@sim/emcn` for a constrained, single-line, read-only human label or title. It owns `min-w-0`, fade-only clipping, the conditional edge mask, and the full-value floating tooltip; pass only layout and typography through `className`. Never combine a fade or hand-written `mask-image` with `truncate`/`text-ellipsis`, and never remove the mask on hover to reveal an ellipsis. Pass the full label instead of shortening it in JavaScript first. Components that must measure a label externally use the complete `overflowTextClipClass` + conditional `overflowTextFadeClass` pair. -For a non-editable `Combobox` visual overlay, pass the same plain value as `overlayLabel` and render the visible `OverflowText` with `block w-full` (or `block flex-1` beside an icon) plus `tooltipEnabled={false}`. The transparent interactive layer then owns the one reachable full-value tooltip while the visual layer owns the measured fade. +For a non-editable `Combobox` visual overlay, pass the same full plain value as `overlayLabel`. The combobox owns the visible overlay's fade and keeps the one reachable full-value tooltip on its interactive layer; consumers provide only the overlay's decorated content. + +Use `DropdownMenuItemLabel` for a human label beside menu icons, checks, shortcuts, or actions. Bare string children are wrapped automatically; a direct rich `` is only a hard-clipped escape hatch and must not be used for an ordinary text label. Do not apply the fade universally to editable or mirrored input values, code, logs, paths, filenames that use intentional middle truncation, dense or virtualized grids, or a composite container that also holds icons/actions. Those keep their purpose-built overflow behavior. Multiline copy uses an intentional `line-clamp-*` treatment. @@ -92,7 +94,7 @@ Draw a line with a real `border-*` utility. Never hand-roll one as `shadow-[inse ### What className MAY carry -Layout/sizing ONLY: `flex-1`, `w-full`, `w-[Npx]`, `min-w-0`, `max-w-*`, margins, `truncate`. Example: `` (`app/workspace/[workspaceId]/integrations/integrations.tsx:257`). NEVER re-specify canonical chrome — the component already applies it. +Layout/sizing ONLY: `flex-1`, `w-full`, `w-[Npx]`, `min-w-0`, `max-w-*`, margins. `truncate` is allowed only for the explicit overflow exceptions above, never as a general layout class. Example: `` (`app/workspace/[workspaceId]/integrations/integrations.tsx:257`). NEVER re-specify canonical chrome — the component already applies it. ### Form / chip-modal layout rhythm diff --git a/.cursor/rules/sim-styling.mdc b/.cursor/rules/sim-styling.mdc index d79cc9fd04e..8b407a204b7 100644 --- a/.cursor/rules/sim-styling.mdc +++ b/.cursor/rules/sim-styling.mdc @@ -46,9 +46,11 @@ Icons default `size-[14px]`. Equal h/w → `size-*` (`size-[14px]`, `size-4`), n ## Text Overflow -Use `OverflowText` from `@sim/emcn` for a constrained, single-line, read-only human label or title. It owns `min-w-0`, single-line clipping, the conditional edge fade, and the full-value floating tooltip; pass only layout and typography through `className`. Never combine a fade or hand-written `mask-image` with `truncate`, which leaves an ellipsis beneath the mask. Pass the full label to this component instead of shortening it in JavaScript first. +Use `OverflowText` from `@sim/emcn` for a constrained, single-line, read-only human label or title. It owns `min-w-0`, fade-only clipping, the conditional edge mask, and the full-value floating tooltip; pass only layout and typography through `className`. Never combine a fade or hand-written `mask-image` with `truncate`/`text-ellipsis`, and never remove the mask on hover to reveal an ellipsis. Pass the full label instead of shortening it in JavaScript first. Components that must measure a label externally use the complete `overflowTextClipClass` + conditional `overflowTextFadeClass` pair. -For a non-editable `Combobox` visual overlay, pass the same plain value as `overlayLabel` and render the visible `OverflowText` with `block w-full` (or `block flex-1` beside an icon) plus `tooltipEnabled={false}`. The transparent interactive layer then owns the one reachable full-value tooltip while the visual layer owns the measured fade. +For a non-editable `Combobox` visual overlay, pass the same full plain value as `overlayLabel`. The combobox owns the visible overlay's fade and keeps the one reachable full-value tooltip on its interactive layer; consumers provide only the overlay's decorated content. + +Use `DropdownMenuItemLabel` for a human label beside menu icons, checks, shortcuts, or actions. Bare string children are wrapped automatically; a direct rich `` is only a hard-clipped escape hatch and must not be used for an ordinary text label. Do not apply the fade universally to editable or mirrored input values, code, logs, paths, filenames that use intentional middle truncation, dense or virtualized grids, or a composite container that also holds icons/actions. Those keep their purpose-built overflow behavior. Multiline copy uses an intentional `line-clamp-*` treatment. @@ -70,7 +72,7 @@ Value text `--text-body`; muted/placeholder/labels `--text-muted`; icons `--text ### What className MAY carry -Layout/sizing ONLY: `flex-1`, `w-full`, `w-[Npx]`, `min-w-0`, `max-w-*`, margins, `truncate`. Example: `` (`app/workspace/[workspaceId]/integrations/integrations.tsx:257`). NEVER re-specify canonical chrome — the component already applies it. +Layout/sizing ONLY: `flex-1`, `w-full`, `w-[Npx]`, `min-w-0`, `max-w-*`, margins. `truncate` is allowed only for the explicit overflow exceptions above, never as a general layout class. Example: `` (`app/workspace/[workspaceId]/integrations/integrations.tsx:257`). NEVER re-specify canonical chrome — the component already applies it. ### Form / chip-modal layout rhythm diff --git a/apps/sim/app/workspace/[workspaceId]/components/resource/components/resource-header/resource-header.tsx b/apps/sim/app/workspace/[workspaceId]/components/resource/components/resource-header/resource-header.tsx index 5c94470b581..6424128e163 100644 --- a/apps/sim/app/workspace/[workspaceId]/components/resource/components/resource-header/resource-header.tsx +++ b/apps/sim/app/workspace/[workspaceId]/components/resource/components/resource-header/resource-header.tsx @@ -25,6 +25,7 @@ import { DropdownMenuTrigger, FloatingTooltip, OverflowText, + overflowTextClipClass, overflowTextFadeClass, POPOVER_ANIMATION_CLASSES, Popover, @@ -543,9 +544,11 @@ function BreadcrumbLocationPopover({ {rootBreadcrumb?.label && ( - - {rootBreadcrumb.label} - + )} @@ -703,10 +706,9 @@ const BreadcrumbLabel = memo( {label} diff --git a/apps/sim/app/workspace/[workspaceId]/files/files.tsx b/apps/sim/app/workspace/[workspaceId]/files/files.tsx index dc7d32ec991..73e9dd4710f 100644 --- a/apps/sim/app/workspace/[workspaceId]/files/files.tsx +++ b/apps/sim/app/workspace/[workspaceId]/files/files.tsx @@ -11,7 +11,6 @@ import { Folder, FolderPlus, Loader, - OverflowText, Pencil, Plus, Trash, @@ -1960,13 +1959,7 @@ export function Files() { multiSelectValues={typeFilter} onMultiSelectChange={setTypeFilter} overlayLabel={typeDisplayLabel} - overlayContent={ - - } + overlayContent={typeDisplayLabel} showAllOption allOptionLabel='All' className='w-full' @@ -1984,13 +1977,7 @@ export function Files() { multiSelectValues={sizeFilter} onMultiSelectChange={setSizeFilter} overlayLabel={sizeDisplayLabel} - overlayContent={ - - } + overlayContent={sizeDisplayLabel} showAllOption allOptionLabel='All' className='w-full' @@ -2004,11 +1991,8 @@ export function Files() { multiSelect multiSelectValues={uploadedByFilter} onMultiSelectChange={setUploadedByFilter} - overlayContent={ - - {uploadedByDisplayLabel} - - } + overlayLabel={uploadedByDisplayLabel} + overlayContent={uploadedByDisplayLabel} searchable searchPlaceholder='Search members...' showAllOption diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/add-resource-dropdown/add-resource-dropdown.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/add-resource-dropdown/add-resource-dropdown.tsx index cf418d5818c..38bf0ac757a 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/add-resource-dropdown/add-resource-dropdown.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/mothership-view/components/add-resource-dropdown/add-resource-dropdown.tsx @@ -7,6 +7,7 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, + DropdownMenuItemLabel, DropdownMenuSearchInput, DropdownMenuSub, DropdownMenuSubContent, @@ -387,7 +388,7 @@ export function ResourceFolderTreeItems({ - {node.name} + {folderType && ( @@ -395,7 +396,7 @@ export function ResourceFolderTreeItems({ onClick={() => onSelect({ type: folderType, id: node.id, title: node.name })} > - {node.name} + )} onSelect(resourceFromItem(type, item))}> - {config.label} + ) } @@ -544,7 +545,7 @@ export function ResourceMenuSections({ - {config.label} + {section ? ( diff --git a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx index e253143adf0..6978ecf4f94 100644 --- a/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx +++ b/apps/sim/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx @@ -1,14 +1,7 @@ 'use client' import { useCallback, useEffect, useEffectEvent, useMemo, useRef, useState } from 'react' -import { - Badge, - ChipCombobox, - ChipConfirmModal, - chipContentLabelClass, - cn, - OverflowText, -} from '@sim/emcn' +import { Badge, ChipCombobox, ChipConfirmModal, chipContentLabelClass, cn } from '@sim/emcn' import { ChevronDown, ChevronUp, @@ -754,13 +747,7 @@ export function Document({ setSelectedChunks(new Set()) }} overlayLabel={enabledDisplayLabel} - overlayContent={ - - } + overlayContent={enabledDisplayLabel} showAllOption allOptionLabel='All' className='w-full' diff --git a/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx b/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx index 8be63a40c5c..5d1813df532 100644 --- a/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx +++ b/apps/sim/app/workspace/[workspaceId]/logs/logs.tsx @@ -1473,11 +1473,7 @@ function LogsFilterPanel({ searchQuery, onSearchQueryChange }: LogsFilterPanelPr style={{ backgroundColor: selectedStatusColor, width: 8, height: 8 }} /> )} - + {statusDisplayLabel} } showAllOption @@ -1500,11 +1496,7 @@ function LogsFilterPanel({ searchQuery, onSearchQueryChange }: LogsFilterPanelPr {selectedWorkflow && ( )} - + {workflowDisplayLabel} } searchable @@ -1524,13 +1516,7 @@ function LogsFilterPanel({ searchQuery, onSearchQueryChange }: LogsFilterPanelPr onMultiSelectChange={setFolderIds} placeholder='All folders' overlayLabel={folderDisplayLabel} - overlayContent={ - - } + overlayContent={folderDisplayLabel} searchable searchPlaceholder='Search folders...' showAllOption @@ -1548,13 +1534,7 @@ function LogsFilterPanel({ searchQuery, onSearchQueryChange }: LogsFilterPanelPr onMultiSelectChange={setTriggers} placeholder='All triggers' overlayLabel={triggerDisplayLabel} - overlayContent={ - - } + overlayContent={triggerDisplayLabel} searchable searchPlaceholder='Search triggers...' showAllOption @@ -1572,13 +1552,7 @@ function LogsFilterPanel({ searchQuery, onSearchQueryChange }: LogsFilterPanelPr onChange={handleTimeRangeChange} placeholder='All time' overlayLabel={timeDisplayLabel} - overlayContent={ - - } + overlayContent={timeDisplayLabel} className='w-full' maxHeight={320} /> diff --git a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/columns-menu/columns-menu.tsx b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/columns-menu/columns-menu.tsx index a7bbb0f9f95..d157ea04665 100644 --- a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/columns-menu/columns-menu.tsx +++ b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/columns-menu/columns-menu.tsx @@ -7,6 +7,7 @@ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, + DropdownMenuItemLabel, DropdownMenuTrigger, } from '@sim/emcn' import { Columns3, Eye, EyeOff } from '@sim/emcn/icons' @@ -166,11 +167,10 @@ function ColumnToggleRow({ label, visible, partial, indented, onToggle }: Column )} /> - - {label} - + ) } diff --git a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/views-menu/views-menu.tsx b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/views-menu/views-menu.tsx index 8bb600b66d4..a0527fd593e 100644 --- a/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/views-menu/views-menu.tsx +++ b/apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/views-menu/views-menu.tsx @@ -119,7 +119,11 @@ export const ViewsMenu = memo(function ViewsMenu({ onMouseLeave={scheduleClose} className={cn(chipVariants(), 'max-w-[220px]')} > - {label} + diff --git a/apps/sim/app/workspace/[workspaceId]/tables/tables.tsx b/apps/sim/app/workspace/[workspaceId]/tables/tables.tsx index 3c30e8850d6..ec59b45f973 100644 --- a/apps/sim/app/workspace/[workspaceId]/tables/tables.tsx +++ b/apps/sim/app/workspace/[workspaceId]/tables/tables.tsx @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from 'react' import type { ComboboxOption } from '@sim/emcn' -import { ChipCombobox, ChipConfirmModal, OverflowText, Plus, toast, Upload } from '@sim/emcn' +import { ChipCombobox, ChipConfirmModal, Plus, toast, Upload } from '@sim/emcn' import { Columns3, FolderPlus, Pencil, Rows3, Table as TableIcon, Trash } from '@sim/emcn/icons' import { createLogger } from '@sim/logger' import { getErrorMessage } from '@sim/utils/errors' @@ -693,13 +693,7 @@ export function Tables() { multiSelectValues={rowCountFilter} onMultiSelectChange={setRowCountFilter} overlayLabel={rowCountDisplayLabel} - overlayContent={ - - } + overlayContent={rowCountDisplayLabel} showAllOption allOptionLabel='All' className='w-full' @@ -714,13 +708,7 @@ export function Tables() { multiSelectValues={ownerFilter} onMultiSelectChange={setOwnerFilter} overlayLabel={ownerDisplayLabel} - overlayContent={ - - } + overlayContent={ownerDisplayLabel} searchable searchPlaceholder='Search members...' showAllOption diff --git a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx index ab8d0f9f7d1..27ff29ba633 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/chat/components/output-select/output-select.tsx @@ -1,7 +1,7 @@ 'use client' import { useMemo } from 'react' -import { ChipCombobox, Combobox, type ComboboxOptionGroup, cn, OverflowText } from '@sim/emcn' +import { ChipCombobox, Combobox, type ComboboxOptionGroup, cn } from '@sim/emcn' import { useShallow } from 'zustand/react/shallow' import { type FlattenOutputsBlockInput, @@ -270,13 +270,7 @@ export function OutputSelect({ onMultiSelectChange={onOutputSelect} placeholder={selectedDisplayText} overlayLabel={selectedDisplayText} - overlayContent={ - - } + overlayContent={selectedDisplayText} disabled={disabled || workflowOutputs.length === 0} align={align} maxHeight={maxHeight} diff --git a/apps/sim/app/workspace/[workspaceId]/w/components/preview/components/preview-editor/preview-editor.tsx b/apps/sim/app/workspace/[workspaceId]/w/components/preview/components/preview-editor/preview-editor.tsx index a16ea864787..57cfcebffce 100644 --- a/apps/sim/app/workspace/[workspaceId]/w/components/preview/components/preview-editor/preview-editor.tsx +++ b/apps/sim/app/workspace/[workspaceId]/w/components/preview/components/preview-editor/preview-editor.tsx @@ -11,6 +11,7 @@ import { handleKeyboardActivation, Input, Label, + OverflowText, Tooltip, } from '@sim/emcn' import { @@ -375,14 +376,11 @@ function ConnectionsSection({ }} > - - {connection.blockName} - + {hasFields && ( V - - Variables - + E - - Secrets - + - - {subflowName} - + {onClose && ( ) : ( {renderMarkedName(name ?? '', nameSearchRange)} diff --git a/packages/workflow-renderer/src/subflow/subflow-node-view.tsx b/packages/workflow-renderer/src/subflow/subflow-node-view.tsx index 2b407055cf4..1635c9da746 100644 --- a/packages/workflow-renderer/src/subflow/subflow-node-view.tsx +++ b/packages/workflow-renderer/src/subflow/subflow-node-view.tsx @@ -618,7 +618,7 @@ export function SubflowNodeView({ >
diff --git a/packages/workflow-renderer/src/workflow-block/canvas-sentence-view.tsx b/packages/workflow-renderer/src/workflow-block/canvas-sentence-view.tsx index c1ee95881d1..3d00d41211d 100644 --- a/packages/workflow-renderer/src/workflow-block/canvas-sentence-view.tsx +++ b/packages/workflow-renderer/src/workflow-block/canvas-sentence-view.tsx @@ -55,7 +55,7 @@ export function CanvasSentenceView({ segments, renderChip }: CanvasSentenceViewP const value = renderChip(segment.subBlockId) const placeholder = segment.noun ? ( - + ) : null const chip = value || placeholder diff --git a/packages/workflow-renderer/src/workflow-block/sub-block-row-view.tsx b/packages/workflow-renderer/src/workflow-block/sub-block-row-view.tsx index 112fd8eccae..a1b901b6aa1 100644 --- a/packages/workflow-renderer/src/workflow-block/sub-block-row-view.tsx +++ b/packages/workflow-renderer/src/workflow-block/sub-block-row-view.tsx @@ -58,7 +58,7 @@ export function SubBlockRowView({ @@ -70,7 +70,7 @@ export function SubBlockRowView({ @@ -99,7 +99,7 @@ export function SubBlockRowView({
) @@ -109,13 +109,13 @@ export function SubBlockRowView({
{displayValue !== undefined && ( diff --git a/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx b/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx index 87e53e5964b..ea54bae5346 100644 --- a/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx +++ b/packages/workflow-renderer/src/workflow-block/workflow-block-view.tsx @@ -950,7 +950,7 @@ export function WorkflowBlockView({