@quadrats/react 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/card/components/Card.js +83 -75
- package/card/index.cjs.js +82 -74
- package/carousel/components/Carousel.js +32 -28
- package/carousel/index.cjs.js +32 -28
- package/components/Tooltip/index.js +5 -2
- package/components/index.cjs.js +5 -2
- package/core/components/Quadrats.js +5 -2
- package/core/contexts/modal/CarouselModal/CarouselModal.js +14 -17
- package/embed/renderers/base/components/BaseEmbedElement.js +51 -43
- package/embed/renderers/base/index.cjs.js +50 -42
- package/image/components/Image.js +34 -26
- package/image/createReactImage.js +1 -1
- package/image/index.cjs.js +34 -26
- package/index.cjs.js +19 -19
- package/package.json +4 -4
- package/table/components/ColumnDragButton.d.ts +10 -0
- package/table/components/ColumnDragButton.js +41 -0
- package/table/components/RowDragButton.d.ts +10 -0
- package/table/components/RowDragButton.js +42 -0
- package/table/components/Table.d.ts +9 -0
- package/table/components/Table.js +236 -0
- package/table/components/TableBody.d.ts +5 -0
- package/table/components/TableBody.js +8 -0
- package/table/components/TableCell.d.ts +5 -0
- package/table/components/TableCell.js +297 -0
- package/table/components/TableDragLayer.d.ts +6 -0
- package/table/components/TableDragLayer.js +89 -0
- package/table/components/TableHeader.d.ts +5 -0
- package/table/components/TableHeader.js +13 -0
- package/table/components/TableMain.d.ts +5 -0
- package/table/components/TableMain.js +233 -0
- package/table/components/TableRow.d.ts +5 -0
- package/table/components/TableRow.js +8 -0
- package/table/components/TableTitle.d.ts +5 -0
- package/table/components/TableTitle.js +18 -0
- package/table/contexts/TableActionsContext.d.ts +3 -0
- package/table/contexts/TableActionsContext.js +5 -0
- package/table/contexts/TableDragContext.d.ts +26 -0
- package/table/contexts/TableDragContext.js +26 -0
- package/table/contexts/TableHeaderContext.d.ts +2 -0
- package/table/contexts/TableHeaderContext.js +7 -0
- package/table/contexts/TableMetadataContext.d.ts +3 -0
- package/table/contexts/TableMetadataContext.js +5 -0
- package/table/contexts/TableScrollContext.d.ts +2 -0
- package/table/contexts/TableScrollContext.js +9 -0
- package/table/contexts/TableStateContext.d.ts +3 -0
- package/table/contexts/TableStateContext.js +5 -0
- package/table/createReactTable.d.ts +4 -0
- package/table/createReactTable.js +297 -0
- package/table/defaultRenderTableElements.d.ts +2 -0
- package/table/defaultRenderTableElements.js +20 -0
- package/table/hooks/useColumnResize.d.ts +12 -0
- package/table/hooks/useColumnResize.js +168 -0
- package/table/hooks/useTableActions.d.ts +27 -0
- package/table/hooks/useTableActions.js +1092 -0
- package/table/hooks/useTableActionsContext.d.ts +1 -0
- package/table/hooks/useTableActionsContext.js +12 -0
- package/table/hooks/useTableCell.d.ts +16 -0
- package/table/hooks/useTableCell.js +166 -0
- package/table/hooks/useTableCellToolbarActions.d.ts +34 -0
- package/table/hooks/useTableCellToolbarActions.js +526 -0
- package/table/hooks/useTableMetadata.d.ts +1 -0
- package/table/hooks/useTableMetadata.js +12 -0
- package/table/hooks/useTableStateContext.d.ts +1 -0
- package/table/hooks/useTableStateContext.js +12 -0
- package/table/hooks/useTableStates.d.ts +18 -0
- package/table/hooks/useTableStates.js +14 -0
- package/table/index.cjs.js +4002 -0
- package/table/index.d.ts +16 -0
- package/table/index.js +27 -0
- package/table/jsx-serializer/components/Table.d.ts +3 -0
- package/table/jsx-serializer/components/Table.js +7 -0
- package/table/jsx-serializer/components/TableBody.d.ts +3 -0
- package/table/jsx-serializer/components/TableBody.js +7 -0
- package/table/jsx-serializer/components/TableCell.d.ts +5 -0
- package/table/jsx-serializer/components/TableCell.js +33 -0
- package/table/jsx-serializer/components/TableHeader.d.ts +3 -0
- package/table/jsx-serializer/components/TableHeader.js +10 -0
- package/table/jsx-serializer/components/TableMain.d.ts +6 -0
- package/table/jsx-serializer/components/TableMain.js +18 -0
- package/table/jsx-serializer/components/TableRow.d.ts +3 -0
- package/table/jsx-serializer/components/TableRow.js +7 -0
- package/table/jsx-serializer/components/TableTitle.d.ts +3 -0
- package/table/jsx-serializer/components/TableTitle.js +7 -0
- package/table/jsx-serializer/contexts/TableHeaderContext.d.ts +1 -0
- package/table/jsx-serializer/contexts/TableHeaderContext.js +5 -0
- package/table/jsx-serializer/contexts/TableScrollContext.d.ts +2 -0
- package/table/jsx-serializer/contexts/TableScrollContext.js +7 -0
- package/table/jsx-serializer/createJsxSerializeTable.d.ts +5 -0
- package/table/jsx-serializer/createJsxSerializeTable.js +113 -0
- package/table/jsx-serializer/defaultRenderTableElements.d.ts +2 -0
- package/table/jsx-serializer/defaultRenderTableElements.js +20 -0
- package/table/jsx-serializer/index.cjs.js +195 -0
- package/table/jsx-serializer/index.d.ts +3 -0
- package/table/jsx-serializer/index.js +2 -0
- package/table/jsx-serializer/package.json +7 -0
- package/table/jsx-serializer/typings.d.ts +12 -0
- package/table/package.json +10 -0
- package/table/table.css +1 -0
- package/table/table.scss +428 -0
- package/table/toolbar/TableToolbarIcon.d.ts +8 -0
- package/table/toolbar/TableToolbarIcon.js +12 -0
- package/table/toolbar/index.cjs.js +24 -0
- package/table/toolbar/index.d.ts +2 -0
- package/table/toolbar/index.js +2 -0
- package/table/toolbar/package.json +7 -0
- package/table/toolbar/useTableTool.d.ts +4 -0
- package/table/toolbar/useTableTool.js +13 -0
- package/table/typings.d.ts +68 -0
- package/table/utils/helper.d.ts +186 -0
- package/table/utils/helper.js +799 -0
- package/toolbar/components/InlineToolbar.d.ts +12 -11
- package/toolbar/components/InlineToolbar.js +23 -19
- package/toolbar/components/Toolbar.js +2 -2
- package/toolbar/index.cjs.js +24 -21
- package/toolbar/toolbar.css +1 -1
- package/toolbar/toolbar.scss +4 -1
- package/utils/index.cjs.js +7 -1
- package/utils/removePreviousElement.js +7 -1
|
@@ -2,17 +2,18 @@ import React from 'react';
|
|
|
2
2
|
import { IconDefinition } from '@quadrats/icons';
|
|
3
3
|
export interface InlineToolbarProps {
|
|
4
4
|
className?: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
disabled?: boolean;
|
|
5
|
+
iconGroups: {
|
|
6
|
+
enabledBgColor?: boolean;
|
|
7
|
+
icons: ({
|
|
8
|
+
icon: IconDefinition;
|
|
9
|
+
onClick: VoidFunction;
|
|
10
|
+
active?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
className?: string;
|
|
13
|
+
} | React.JSX.Element)[];
|
|
15
14
|
}[];
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
onClickAway?: VoidFunction;
|
|
16
17
|
}
|
|
17
|
-
declare function InlineToolbar({ className,
|
|
18
|
+
declare function InlineToolbar({ className, iconGroups, style, onClickAway }: InlineToolbarProps): React.JSX.Element;
|
|
18
19
|
export default InlineToolbar;
|
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useRef, Fragment } from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import { Icon } from '@quadrats/react/components';
|
|
4
|
+
import { useClickAway } from '@quadrats/react/utils';
|
|
4
5
|
|
|
5
|
-
function InlineToolbar({ className,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
function InlineToolbar({ className, iconGroups, style, onClickAway }) {
|
|
7
|
+
const validIconsGroup = iconGroups.filter((group) => group.icons.length);
|
|
8
|
+
const ref = useRef(null);
|
|
9
|
+
useClickAway(() => {
|
|
10
|
+
return onClickAway
|
|
11
|
+
? () => {
|
|
12
|
+
onClickAway();
|
|
13
|
+
}
|
|
14
|
+
: undefined;
|
|
15
|
+
}, ref, [onClickAway]);
|
|
16
|
+
return (React.createElement("div", { ref: ref, contentEditable: false, className: clsx('qdr-inline-toolbar', className), style: style }, validIconsGroup.map((group, index) => (React.createElement(Fragment, { key: index },
|
|
17
|
+
React.createElement("div", { className: clsx('qdr-inline-toolbar__wrapper', {
|
|
18
|
+
'qdr-inline-toolbar__wrapper--enabledBgColor': group.enabledBgColor,
|
|
19
|
+
}) }, group.icons.map((child) => 'icon' in child ? (React.createElement(Icon, { key: child.icon.name, className: clsx('qdr-inline-toolbar__icon', child.className, {
|
|
20
|
+
'qdr-inline-toolbar__icon--active': child.active,
|
|
21
|
+
'qdr-inline-toolbar__icon--disabled': child.disabled,
|
|
22
|
+
}), icon: child.icon, width: 24, height: 24, onClick: (e) => {
|
|
23
|
+
if (!child.disabled) {
|
|
12
24
|
e.preventDefault();
|
|
13
|
-
|
|
25
|
+
child.onClick();
|
|
14
26
|
}
|
|
15
|
-
} }))))),
|
|
16
|
-
|
|
17
|
-
rightIcons.map((icon) => (React.createElement(Icon, { key: icon.icon.name, className: clsx('qdr-inline-toolbar__icon', {
|
|
18
|
-
'qdr-inline-toolbar__icon--disabled': icon.disabled,
|
|
19
|
-
}), icon: icon.icon, width: 24, height: 24, onClick: (e) => {
|
|
20
|
-
if (!icon.disabled) {
|
|
21
|
-
e.preventDefault();
|
|
22
|
-
icon.onClick();
|
|
23
|
-
}
|
|
24
|
-
} })))));
|
|
27
|
+
} })) : (child))),
|
|
28
|
+
index < validIconsGroup.length - 1 && React.createElement("div", { className: "qdr-inline-toolbar__divider" }))))));
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
export { InlineToolbar as default };
|
|
@@ -39,7 +39,7 @@ function Toolbar(props) {
|
|
|
39
39
|
const focused = ReactEditor.isFocused(editor);
|
|
40
40
|
const { selection } = editor;
|
|
41
41
|
const [toolInput, setToolInput] = useState();
|
|
42
|
-
const startToolInput = useCallback(inputConfig => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
|
|
42
|
+
const startToolInput = useCallback((inputConfig) => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
|
|
43
43
|
let renderExpandedStatus;
|
|
44
44
|
if (toolInput) {
|
|
45
45
|
const { currentSelection } = toolInput;
|
|
@@ -97,7 +97,7 @@ function Toolbar(props) {
|
|
|
97
97
|
const toolbarBody = (React.createElement(React.Fragment, null,
|
|
98
98
|
React.createElement(StartToolInputContext.Provider, { value: startToolInput }, takeCount > 0 ? (React.createElement(React.Fragment, null,
|
|
99
99
|
shownElements,
|
|
100
|
-
React.createElement(ToolbarGroupIcon, { icon: More, withArrow: false }, groupElements))) : tools),
|
|
100
|
+
React.createElement(ToolbarGroupIcon, { icon: More, withArrow: false }, groupElements))) : (tools)),
|
|
101
101
|
toolInput && (React.createElement(ToolbarInput, { exit: () => {
|
|
102
102
|
const { currentSelection } = toolInput;
|
|
103
103
|
if (currentSelection) {
|
package/toolbar/index.cjs.js
CHANGED
|
@@ -3,37 +3,40 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var clsx = require('clsx');
|
|
5
5
|
var components = require('@quadrats/react/components');
|
|
6
|
+
var utils = require('@quadrats/react/utils');
|
|
6
7
|
var core = require('@quadrats/core');
|
|
7
8
|
var icons = require('@quadrats/icons');
|
|
8
9
|
var react = require('@quadrats/react');
|
|
9
10
|
var tslib = require('tslib');
|
|
10
|
-
var utils = require('@quadrats/react/utils');
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* A react element constant of toolbar divider.
|
|
14
14
|
*/
|
|
15
15
|
const TOOLBAR_DIVIDER = React.createElement("span", { className: "qdr-toolbar__divider" });
|
|
16
16
|
|
|
17
|
-
function InlineToolbar({ className,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
function InlineToolbar({ className, iconGroups, style, onClickAway }) {
|
|
18
|
+
const validIconsGroup = iconGroups.filter((group) => group.icons.length);
|
|
19
|
+
const ref = React.useRef(null);
|
|
20
|
+
utils.useClickAway(() => {
|
|
21
|
+
return onClickAway
|
|
22
|
+
? () => {
|
|
23
|
+
onClickAway();
|
|
24
|
+
}
|
|
25
|
+
: undefined;
|
|
26
|
+
}, ref, [onClickAway]);
|
|
27
|
+
return (React.createElement("div", { ref: ref, contentEditable: false, className: clsx('qdr-inline-toolbar', className), style: style }, validIconsGroup.map((group, index) => (React.createElement(React.Fragment, { key: index },
|
|
28
|
+
React.createElement("div", { className: clsx('qdr-inline-toolbar__wrapper', {
|
|
29
|
+
'qdr-inline-toolbar__wrapper--enabledBgColor': group.enabledBgColor,
|
|
30
|
+
}) }, group.icons.map((child) => 'icon' in child ? (React.createElement(components.Icon, { key: child.icon.name, className: clsx('qdr-inline-toolbar__icon', child.className, {
|
|
31
|
+
'qdr-inline-toolbar__icon--active': child.active,
|
|
32
|
+
'qdr-inline-toolbar__icon--disabled': child.disabled,
|
|
33
|
+
}), icon: child.icon, width: 24, height: 24, onClick: (e) => {
|
|
34
|
+
if (!child.disabled) {
|
|
33
35
|
e.preventDefault();
|
|
34
|
-
|
|
36
|
+
child.onClick();
|
|
35
37
|
}
|
|
36
|
-
} })))))
|
|
38
|
+
} })) : (child))),
|
|
39
|
+
index < validIconsGroup.length - 1 && React.createElement("div", { className: "qdr-inline-toolbar__divider" }))))));
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
const ToolbarContext = React.createContext({
|
|
@@ -251,7 +254,7 @@ function Toolbar(props) {
|
|
|
251
254
|
const focused = react.ReactEditor.isFocused(editor);
|
|
252
255
|
const { selection } = editor;
|
|
253
256
|
const [toolInput, setToolInput] = React.useState();
|
|
254
|
-
const startToolInput = React.useCallback(inputConfig => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
|
|
257
|
+
const startToolInput = React.useCallback((inputConfig) => setToolInput(Object.assign(Object.assign({}, inputConfig), { currentSelection: selection })), [selection]);
|
|
255
258
|
let renderExpandedStatus;
|
|
256
259
|
if (toolInput) {
|
|
257
260
|
const { currentSelection } = toolInput;
|
|
@@ -309,7 +312,7 @@ function Toolbar(props) {
|
|
|
309
312
|
const toolbarBody = (React.createElement(React.Fragment, null,
|
|
310
313
|
React.createElement(StartToolInputContext.Provider, { value: startToolInput }, takeCount > 0 ? (React.createElement(React.Fragment, null,
|
|
311
314
|
shownElements,
|
|
312
|
-
React.createElement(ToolbarGroupIcon, { icon: icons.More, withArrow: false }, groupElements))) : tools),
|
|
315
|
+
React.createElement(ToolbarGroupIcon, { icon: icons.More, withArrow: false }, groupElements))) : (tools)),
|
|
313
316
|
toolInput && (React.createElement(ToolbarInput, { exit: () => {
|
|
314
317
|
const { currentSelection } = toolInput;
|
|
315
318
|
if (currentSelection) {
|
package/toolbar/toolbar.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.qdr-toolbar{display:flex;align-items:center;gap:var(--qdr-spacing-4);height:var(--qdr-spacing-14);padding:var(--qdr-spacing-4) var(--qdr-spacing-4);background-color:var(--qdr-surface);border:1px solid var(--qdr-border);box-sizing:border-box}.qdr-toolbar--radius{border-radius:var(--qdr-radius-3)}.qdr-toolbar--shadow{box-shadow:var(--qdr-shadow-s)}.qdr-toolbar__input{font-size:.8125rem;background:var(--qdr-block);color:var(--qdr-text-secondary);width:calc(100% - var(--qdr-spacing-7));height:100%;border:none;padding:0;outline:none}.qdr-toolbar__input__wrapper{display:flex;align-items:center;position:absolute;top:var(--qdr-spacing-4);left:var(--qdr-spacing-4);width:calc(100% - var(--qdr-spacing-4)*2);height:calc(100% - (var(--qdr-spacing-4)*2 + var(--qdr-spacing-4)));background:var(--qdr-block);box-sizing:border-box}.qdr-toolbar__input__cross{fill:var(--qdr-text-secondary);font-size:var(--qdr-spacing-7);width:var(--qdr-spacing-7);height:var(--qdr-spacing-7);cursor:pointer}.qdr-toolbar__wrapper{box-sizing:content-box;height:var(--qdr-spacing-14)}.qdr-toolbar__wrapper--fixed{position:sticky;top:0;z-index:1}.qdr-toolbar__wrapper--fixed .qdr-toolbar__input__wrapper{height:calc(100% - var(--qdr-spacing-4)*2)}.qdr-toolbar__wrapper--float{position:absolute;z-index:1;padding-bottom:var(--qdr-spacing-4)}.qdr-toolbar__wrapper--float .qdr-toolbar{background-color:var(--qdr-block)}.qdr-toolbar__wrapper--inputting{min-width:250px}.qdr-toolbar__arrow{position:absolute;top:calc(100% - var(--qdr-spacing-4));left:50%;content:"";width:var(--qdr-spacing-4);height:var(--qdr-spacing-4);background:var(--qdr-surface);border:1px solid var(--qdr-border);border-top:none;border-left:none;transform:translateX(-50%) translateY(-50%) rotate(45deg)}.qdr-toolbar__divider{width:1px;height:var(--qdr-spacing-8);background-color:var(--qdr-divider)}.qdr-toolbar__icon{position:relative;color:var(--qdr-action-inactive);font-size:24px;display:inline-flex;justify-content:center;align-items:center;gap:var(--qdr-spacing-1);border:0;background-color:rgba(0,0,0,0);padding:var(--qdr-spacing-2);outline:none;box-shadow:none;border-radius:var(--qdr-radius-1);transition:color var(--qdr-duration-short) var(--qdr-easing-standard),background var(--qdr-duration-short) var(--qdr-easing-standard);cursor:pointer}.qdr-toolbar__icon:hover,.qdr-toolbar__icon--expanded{color:var(--qdr-action-active);background:var(--qdr-secondary-hover-bg)}.qdr-toolbar__icon--active{color:var(--qdr-primary)}.qdr-toolbar__icon--with-name{display:flex;align-items:center;justify-content:flex-start;border-radius:0;gap:var(--qdr-spacing-4);padding:0 var(--qdr-spacing-6)}.qdr-toolbar__icon--with-name:hover{color:var(--qdr-action-inactive);background:var(--qdr-primary-hover-bg)}.qdr-toolbar__icon--with-name--active{color:var(--qdr-action-inactive);background:var(--qdr-primary-active-bg)}.qdr-toolbar__icon__wrapper{display:flex;align-items:center;justify-content:center;position:relative}.qdr-toolbar__icon__arrow{color:var(--qdr-action-disabled)}.qdr-toolbar__icon__name{flex:1;margin:0;font-size:var(--qdr-typography-basic-input1-font-size);line-height:var(--qdr-typography-basic-input1-line-height);letter-spacing:var(--qdr-typography-basic-input1-letter-spacing);font-weight:var(--qdr-typography-basic-input1-font-weight);color:var(--qdr-text-primary)}.qdr-toolbar__icon__check{color:var(--qdr-primary)}.qdr-toolbar__icon__menu{opacity:0;position:absolute;background:var(--qdr-surface);border:1px solid var(--qdr-border);padding:var(--qdr-spacing-2) 0;width:200px;max-height:240px;box-shadow:var(--qdr-shadow-xl);pointer-events:none;overflow-y:auto;transition:opacity var(--qdr-duration-short) var(--qdr-easing-standard)}.qdr-toolbar__icon__menu--expanded{pointer-events:auto;opacity:1}.qdr-toolbar__icon__menu--top{bottom:var(--qdr-spacing-14)}.qdr-toolbar__icon__menu--bottom{top:var(--qdr-spacing-14)}.qdr-inline-toolbar{position:absolute;top:var(--qdr-spacing-4);right:var(--qdr-spacing-4);display:flex;align-items:center;justify-content:flex-start;gap:var(--qdr-spacing-3);background-color:var(--qdr-bg);padding:var(--qdr-spacing-3);border:1px solid var(--qdr-border);border-radius:var(--qdr-radius-3);pointer-events:none;opacity:0;transition:opacity var(--qdr-duration-short) var(--qdr-easing-standard);z-index:1}.qdr-inline-toolbar__wrapper{display:flex;align-items:center;justify-content:flex-start;gap:var(--qdr-spacing-1);padding:var(--qdr-spacing-1);
|
|
1
|
+
.qdr-toolbar{display:flex;align-items:center;gap:var(--qdr-spacing-4);height:var(--qdr-spacing-14);padding:var(--qdr-spacing-4) var(--qdr-spacing-4);background-color:var(--qdr-surface);border:1px solid var(--qdr-border);box-sizing:border-box}.qdr-toolbar--radius{border-radius:var(--qdr-radius-3)}.qdr-toolbar--shadow{box-shadow:var(--qdr-shadow-s)}.qdr-toolbar__input{font-size:.8125rem;background:var(--qdr-block);color:var(--qdr-text-secondary);width:calc(100% - var(--qdr-spacing-7));height:100%;border:none;padding:0;outline:none}.qdr-toolbar__input__wrapper{display:flex;align-items:center;position:absolute;top:var(--qdr-spacing-4);left:var(--qdr-spacing-4);width:calc(100% - var(--qdr-spacing-4)*2);height:calc(100% - (var(--qdr-spacing-4)*2 + var(--qdr-spacing-4)));background:var(--qdr-block);box-sizing:border-box}.qdr-toolbar__input__cross{fill:var(--qdr-text-secondary);font-size:var(--qdr-spacing-7);width:var(--qdr-spacing-7);height:var(--qdr-spacing-7);cursor:pointer}.qdr-toolbar__wrapper{box-sizing:content-box;height:var(--qdr-spacing-14)}.qdr-toolbar__wrapper--fixed{position:sticky;top:0;z-index:1}.qdr-toolbar__wrapper--fixed .qdr-toolbar__input__wrapper{height:calc(100% - var(--qdr-spacing-4)*2)}.qdr-toolbar__wrapper--float{position:absolute;z-index:1;padding-bottom:var(--qdr-spacing-4)}.qdr-toolbar__wrapper--float .qdr-toolbar{background-color:var(--qdr-block)}.qdr-toolbar__wrapper--inputting{min-width:250px}.qdr-toolbar__arrow{position:absolute;top:calc(100% - var(--qdr-spacing-4));left:50%;content:"";width:var(--qdr-spacing-4);height:var(--qdr-spacing-4);background:var(--qdr-surface);border:1px solid var(--qdr-border);border-top:none;border-left:none;transform:translateX(-50%) translateY(-50%) rotate(45deg)}.qdr-toolbar__divider{width:1px;height:var(--qdr-spacing-8);background-color:var(--qdr-divider)}.qdr-toolbar__icon{position:relative;color:var(--qdr-action-inactive);font-size:24px;display:inline-flex;justify-content:center;align-items:center;gap:var(--qdr-spacing-1);border:0;background-color:rgba(0,0,0,0);padding:var(--qdr-spacing-2);outline:none;box-shadow:none;border-radius:var(--qdr-radius-1);transition:color var(--qdr-duration-short) var(--qdr-easing-standard),background var(--qdr-duration-short) var(--qdr-easing-standard);cursor:pointer}.qdr-toolbar__icon:hover,.qdr-toolbar__icon--expanded{color:var(--qdr-action-active);background:var(--qdr-secondary-hover-bg)}.qdr-toolbar__icon--active{color:var(--qdr-primary)}.qdr-toolbar__icon--with-name{display:flex;align-items:center;justify-content:flex-start;border-radius:0;gap:var(--qdr-spacing-4);padding:0 var(--qdr-spacing-6)}.qdr-toolbar__icon--with-name:hover{color:var(--qdr-action-inactive);background:var(--qdr-primary-hover-bg)}.qdr-toolbar__icon--with-name--active{color:var(--qdr-action-inactive);background:var(--qdr-primary-active-bg)}.qdr-toolbar__icon__wrapper{display:flex;align-items:center;justify-content:center;position:relative}.qdr-toolbar__icon__arrow{color:var(--qdr-action-disabled)}.qdr-toolbar__icon__name{flex:1;margin:0;font-size:var(--qdr-typography-basic-input1-font-size);line-height:var(--qdr-typography-basic-input1-line-height);letter-spacing:var(--qdr-typography-basic-input1-letter-spacing);font-weight:var(--qdr-typography-basic-input1-font-weight);color:var(--qdr-text-primary)}.qdr-toolbar__icon__check{color:var(--qdr-primary)}.qdr-toolbar__icon__menu{opacity:0;position:absolute;background:var(--qdr-surface);border:1px solid var(--qdr-border);padding:var(--qdr-spacing-2) 0;width:200px;max-height:240px;box-shadow:var(--qdr-shadow-xl);pointer-events:none;overflow-y:auto;transition:opacity var(--qdr-duration-short) var(--qdr-easing-standard)}.qdr-toolbar__icon__menu--expanded{pointer-events:auto;opacity:1}.qdr-toolbar__icon__menu--top{bottom:var(--qdr-spacing-14)}.qdr-toolbar__icon__menu--bottom{top:var(--qdr-spacing-14)}.qdr-inline-toolbar{position:absolute;top:var(--qdr-spacing-4);right:var(--qdr-spacing-4);display:flex;align-items:center;justify-content:flex-start;gap:var(--qdr-spacing-3);background-color:var(--qdr-bg);padding:var(--qdr-spacing-3);border:1px solid var(--qdr-border);border-radius:var(--qdr-radius-3);pointer-events:none;opacity:0;transition:opacity var(--qdr-duration-short) var(--qdr-easing-standard);z-index:1}.qdr-inline-toolbar__wrapper{display:flex;align-items:center;justify-content:flex-start;gap:var(--qdr-spacing-1);padding:var(--qdr-spacing-1);border-radius:var(--qdr-radius-1)}.qdr-inline-toolbar__wrapper--enabledBgColor{background-color:var(--qdr-divider)}.qdr-inline-toolbar__divider{width:1px;height:16px;background-color:var(--qdr-divider)}.qdr-inline-toolbar__icon{color:var(--qdr-action-inactive);border-radius:var(--qdr-radius-1);transition:color var(--qdr-duration-short) var(--qdr-easing-standard),background-color var(--qdr-duration-short) var(--qdr-easing-standard);cursor:pointer}.qdr-inline-toolbar__icon:hover{color:var(--qdr-primary-light)}.qdr-inline-toolbar__icon--active{color:var(--qdr-primary-light);background-color:var(--qdr-block)}.qdr-inline-toolbar__icon--disabled:hover{color:var(--qdr-action-inactive);cursor:not-allowed}
|
package/toolbar/toolbar.scss
CHANGED
|
@@ -232,8 +232,11 @@ $qdr-toolbar-input-cross-size: --qdr-spacing-7;
|
|
|
232
232
|
justify-content: flex-start;
|
|
233
233
|
gap: var(--qdr-spacing-1);
|
|
234
234
|
padding: var(--qdr-spacing-1);
|
|
235
|
-
background-color: var(--qdr-divider);
|
|
236
235
|
border-radius: var(--qdr-radius-1);
|
|
236
|
+
|
|
237
|
+
&--enabledBgColor {
|
|
238
|
+
background-color: var(--qdr-divider);
|
|
239
|
+
}
|
|
237
240
|
}
|
|
238
241
|
|
|
239
242
|
&__divider {
|
package/utils/index.cjs.js
CHANGED
|
@@ -48,7 +48,13 @@ function removePreviousElement({ event, editor, type, confirmModal, doConfirm, }
|
|
|
48
48
|
// at: currentPath,
|
|
49
49
|
// match: (n) => Element.isElement(n) && (n as QuadratsElement).type === type,
|
|
50
50
|
// });
|
|
51
|
-
|
|
51
|
+
let prevPath = currentPath;
|
|
52
|
+
try {
|
|
53
|
+
prevPath = core.Path.previous(currentPath);
|
|
54
|
+
}
|
|
55
|
+
catch (ex) {
|
|
56
|
+
// error
|
|
57
|
+
}
|
|
52
58
|
const prevNode = core.Node.get(editor, prevPath);
|
|
53
59
|
if (core.Element.isElement(prevNode) && prevNode.type === type) {
|
|
54
60
|
event.preventDefault();
|
|
@@ -13,7 +13,13 @@ function removePreviousElement({ event, editor, type, confirmModal, doConfirm, }
|
|
|
13
13
|
// at: currentPath,
|
|
14
14
|
// match: (n) => Element.isElement(n) && (n as QuadratsElement).type === type,
|
|
15
15
|
// });
|
|
16
|
-
|
|
16
|
+
let prevPath = currentPath;
|
|
17
|
+
try {
|
|
18
|
+
prevPath = Path.previous(currentPath);
|
|
19
|
+
}
|
|
20
|
+
catch (ex) {
|
|
21
|
+
// error
|
|
22
|
+
}
|
|
17
23
|
const prevNode = Node.get(editor, prevPath);
|
|
18
24
|
if (Element.isElement(prevNode) && prevNode.type === type) {
|
|
19
25
|
event.preventDefault();
|