Skip to content

Commit

Permalink
Merge branch 'main' into feat/change-default-selection-styles
Browse files Browse the repository at this point in the history
  • Loading branch information
whiteformed authored Dec 13, 2024
2 parents 70f1fcf + dac5314 commit 3bef1d3
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 8 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## [14.6.0](https://github.com/gravity-ui/markdown-editor/compare/v14.5.1...v14.6.0) (2024-12-10)


### Features

* **bundle:** update view of text color action item in toolbar ([#514](https://github.com/gravity-ui/markdown-editor/issues/514)) ([54ac0d3](https://github.com/gravity-ui/markdown-editor/commit/54ac0d36499e572844e42cfff8f7781387731b00))


### Bug Fixes

* **Cursor:** input-rules does not work when cursor in virtual selection (GapCursorSelection) ([#515](https://github.com/gravity-ui/markdown-editor/issues/515)) ([9126756](https://github.com/gravity-ui/markdown-editor/commit/9126756fe5e241c6ab2badec4689b1df8f0009c3))
* **deps:** bumped @lezer/markdown to fix large text hang ([#512](https://github.com/gravity-ui/markdown-editor/issues/512)) ([8a8fce8](https://github.com/gravity-ui/markdown-editor/commit/8a8fce8ff5f9603f6e755264fc474c03a36d6bb7))
* Gpt extension render ([#519](https://github.com/gravity-ui/markdown-editor/issues/519)) ([89c9881](https://github.com/gravity-ui/markdown-editor/commit/89c9881331df2b0fae5968258a29b9c9eed179ef))

## [14.5.1](https://github.com/gravity-ui/markdown-editor/compare/v14.5.0...v14.5.1) (2024-12-02)


Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@gravity-ui/markdown-editor",
"version": "14.5.1",
"version": "14.6.0",
"description": "Markdown wysiwyg and markup editor",
"license": "MIT",
"repository": {
Expand Down
25 changes: 20 additions & 5 deletions src/bundle/toolbar/ToolbarButtonWithPopupMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,12 @@ export type MenuItem = {
export type ToolbarButtonWithPopupMenuProps = Omit<
ToolbarBaseProps<ActionStorage> & {
icon: ToolbarIconData;
iconClassName?: string;
chevronIconClassName?: string;
title: string | (() => string);
menuItems: MenuItem[];
/** @default 'classic' */
_selectionType?: 'classic' | 'light';
},
'editor'
>;
Expand All @@ -37,8 +41,11 @@ export const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProp
focus,
onClick,
icon,
iconClassName,
chevronIconClassName,
title,
menuItems,
_selectionType,
}) => {
const buttonRef = React.useRef<HTMLButtonElement>(null);
const [open, , hide, toggleOpen] = useBooleanState(false);
Expand All @@ -48,7 +55,7 @@ export const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProp
menuItems.map((i) => ({...i, group: i.group || ''})),
'group',
),
[menuItems, groupBy],
[menuItems],
);

const someActive = menuItems.some(
Expand All @@ -64,6 +71,14 @@ export const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProp
}
}, [hide, shouldForceHide]);

const [btnView, btnSelected] =
_selectionType === 'light'
? ([
popupOpen ? 'normal' : someActive ? 'flat-action' : 'flat',
popupOpen && someActive,
] as const)
: ([someActive || popupOpen ? 'normal' : 'flat', someActive] as const);

return (
<>
<ActionTooltip
Expand All @@ -75,15 +90,15 @@ export const ToolbarButtonWithPopupMenu: React.FC<ToolbarButtonWithPopupMenuProp
<Button
size="m"
ref={buttonRef}
view={someActive || popupOpen ? 'normal' : 'flat'}
selected={someActive}
view={btnView}
selected={btnSelected}
disabled={everyDisabled}
className={b(null, [className])}
onClick={toggleOpen}
>
<Icon data={icon.data} size={icon.size} />
<Icon data={icon.data} size={icon.size} className={iconClassName} />
{''}
<Icon data={ChevronDown} />
<Icon data={ChevronDown} className={chevronIconClassName} />
</Button>
</ActionTooltip>
<Popup anchorRef={buttonRef} open={popupOpen} onClose={hide}>
Expand Down
9 changes: 9 additions & 0 deletions src/bundle/toolbar/custom/ToolbarColors.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,19 @@ $colors: ('gray', 'yellow', 'orange', 'red', 'green', 'blue', 'violet');

.g-md-toolbar-colors {
@each $name in $colors {
&__menu-icon_color_#{$name} {
color: var(--yfm-colorify-#{$name});
}

&__chevron-icon_color_#{$name} {
color: var(--yfm-colorify-#{$name});
}

&__item-icon_color_#{$name} {
color: var(--yfm-colorify-#{$name});
}
}

&__item-icon_color_default {
color: var(--g-color-text-primary);
}
Expand Down
3 changes: 3 additions & 0 deletions src/bundle/toolbar/custom/ToolbarColors.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ export const ToolbarColors: React.FC<ToolbarColorsProps> = (props) => {
title={i18n('colorify')}
menuItems={items}
icon={textColorIcon}
_selectionType="light"
iconClassName={b('menu-icon', {color: currentColor})}
chevronIconClassName={b('chevron-icon', {color: currentColor})}
/>
);
};

0 comments on commit 3bef1d3

Please sign in to comment.