@redvars/peacock 3.5.0 → 3.6.0
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/dist/BaseButton-BNFAYn-S.js +219 -0
- package/dist/BaseButton-BNFAYn-S.js.map +1 -0
- package/dist/BaseHyperlinkMixin-BNuwbiEf.js +65 -0
- package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +1 -0
- package/dist/BaseInput-14YmcfK7.js +27 -0
- package/dist/BaseInput-14YmcfK7.js.map +1 -0
- package/dist/assets/components.css +1 -1
- package/dist/assets/components.css.map +1 -1
- package/dist/assets/styles.css +1 -1
- package/dist/assets/styles.css.map +1 -1
- package/dist/banner.js +14 -30
- package/dist/banner.js.map +1 -1
- package/dist/{button-DMN1dPAg.js → button-colors-Ccys3hvS.js} +5 -468
- package/dist/button-colors-Ccys3hvS.js.map +1 -0
- package/dist/button-group.js +228 -8
- package/dist/button-group.js.map +1 -1
- package/dist/button.js +294 -8
- package/dist/button.js.map +1 -1
- package/dist/calendar-column-view.js +634 -0
- package/dist/calendar-column-view.js.map +1 -0
- package/dist/calendar-event-BrQ_SEKD.js +199 -0
- package/dist/calendar-event-BrQ_SEKD.js.map +1 -0
- package/dist/calendar-month-view.js +376 -0
- package/dist/calendar-month-view.js.map +1 -0
- package/dist/calendar.js +339 -0
- package/dist/calendar.js.map +1 -0
- package/dist/canvas.js +361 -0
- package/dist/canvas.js.map +1 -0
- package/dist/card.js +18 -73
- package/dist/card.js.map +1 -1
- package/dist/cb-compound-expression.js +125 -0
- package/dist/cb-compound-expression.js.map +1 -0
- package/dist/cb-divider.js +150 -0
- package/dist/cb-divider.js.map +1 -0
- package/dist/cb-expression.js +75 -0
- package/dist/cb-expression.js.map +1 -0
- package/dist/cb-predicate.js +137 -0
- package/dist/cb-predicate.js.map +1 -0
- package/dist/chart-bar.js.map +1 -1
- package/dist/chart-doughnut.js +2 -2
- package/dist/chart-doughnut.js.map +1 -1
- package/dist/chart-pie.js +2 -2
- package/dist/chart-pie.js.map +1 -1
- package/dist/chart-stacked-bar.js.map +1 -1
- package/dist/code-editor.js +2 -1
- package/dist/code-editor.js.map +1 -1
- package/dist/code-highlighter.js +2 -1
- package/dist/code-highlighter.js.map +1 -1
- package/dist/condition-builder.js +58 -0
- package/dist/condition-builder.js.map +1 -0
- package/dist/custom-elements-jsdocs.json +10860 -5567
- package/dist/custom-elements.json +16180 -7996
- package/dist/dropdown-button.js +216 -0
- package/dist/dropdown-button.js.map +1 -0
- package/dist/event-manager-D-QCmUgR.js +113 -0
- package/dist/event-manager-D-QCmUgR.js.map +1 -0
- package/dist/fab.js +421 -9
- package/dist/fab.js.map +1 -1
- package/dist/flow-designer-dZnLJOQT.js +1656 -0
- package/dist/flow-designer-dZnLJOQT.js.map +1 -0
- package/dist/flow-designer-node-XMe-jlKg.js +548 -0
- package/dist/flow-designer-node-XMe-jlKg.js.map +1 -0
- package/dist/flow-designer-node.js +4 -0
- package/dist/flow-designer-node.js.map +1 -0
- package/dist/flow-designer.js +16 -0
- package/dist/flow-designer.js.map +1 -0
- package/dist/html-editor.js +358 -0
- package/dist/html-editor.js.map +1 -0
- package/dist/icon-button-CK1ZuE-2.js +247 -0
- package/dist/icon-button-CK1ZuE-2.js.map +1 -0
- package/dist/index.js +31 -8
- package/dist/index.js.map +1 -1
- package/dist/{is-dark-mode-DicqGkCJ.js → is-dark-mode-DOcaw4Yq.js} +2 -27
- package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -0
- package/dist/modal.js +418 -0
- package/dist/modal.js.map +1 -0
- package/dist/{select-4pl4XBj7.js → navigation-rail-DyO0oAZU.js} +2000 -2767
- package/dist/navigation-rail-DyO0oAZU.js.map +1 -0
- package/dist/notification-manager.js +268 -0
- package/dist/notification-manager.js.map +1 -0
- package/dist/notification.js +3 -2
- package/dist/notification.js.map +1 -1
- package/dist/peacock-loader.js +102 -14
- package/dist/peacock-loader.js.map +1 -1
- package/dist/popover-NC7b1lTq.js +1971 -0
- package/dist/popover-NC7b1lTq.js.map +1 -0
- package/dist/popover-content.js +125 -0
- package/dist/popover-content.js.map +1 -0
- package/dist/popover.js +4 -0
- package/dist/popover.js.map +1 -0
- package/dist/search.js +4 -0
- package/dist/search.js.map +1 -1
- package/dist/split-button.js +388 -0
- package/dist/split-button.js.map +1 -0
- package/dist/src/__controllers/floating-controller.d.ts +35 -0
- package/dist/src/__mixins/BaseButtonMixin.d.ts +20 -0
- package/dist/src/__mixins/BaseHyperlinkMixin.d.ts +18 -0
- package/dist/src/__mixins/MixinConstructor.d.ts +1 -0
- package/dist/src/banner/banner.d.ts +0 -4
- package/dist/src/button/BaseButton.d.ts +4 -47
- package/dist/src/button/button/button.d.ts +32 -3
- package/dist/src/button/button-group/button-group.d.ts +2 -2
- package/dist/src/button/icon-button/icon-button.d.ts +33 -8
- package/dist/src/calendar/base-event.d.ts +10 -0
- package/dist/src/calendar/calendar-column-view.d.ts +41 -0
- package/dist/src/calendar/calendar-event.d.ts +7 -0
- package/dist/src/calendar/calendar-month-view.d.ts +31 -0
- package/dist/src/calendar/calendar.d.ts +65 -0
- package/dist/src/calendar/event-manager.d.ts +17 -0
- package/dist/src/calendar/index.d.ts +4 -0
- package/dist/src/calendar/types.d.ts +13 -0
- package/dist/src/calendar/utils.d.ts +31 -0
- package/dist/src/canvas/canvas.d.ts +92 -0
- package/dist/src/canvas/index.d.ts +2 -0
- package/dist/src/card/card.d.ts +4 -15
- package/dist/src/condition-builder/cb-compound-expression.d.ts +31 -0
- package/dist/src/condition-builder/cb-divider.d.ts +26 -0
- package/dist/src/condition-builder/cb-expression.d.ts +31 -0
- package/dist/src/condition-builder/cb-predicate.d.ts +30 -0
- package/dist/src/condition-builder/condition-builder.d.ts +27 -0
- package/dist/src/condition-builder/index.d.ts +5 -0
- package/dist/src/dropdown-button/dropdown-button.d.ts +68 -0
- package/dist/src/dropdown-button/index.d.ts +1 -0
- package/dist/src/fab/fab.d.ts +4 -35
- package/dist/src/flow-designer/commands.d.ts +66 -0
- package/dist/src/flow-designer/flow-designer-node.d.ts +46 -0
- package/dist/src/flow-designer/flow-designer.d.ts +133 -0
- package/dist/src/flow-designer/index.d.ts +7 -0
- package/dist/src/flow-designer/layout.d.ts +30 -0
- package/dist/src/flow-designer/types.d.ts +142 -0
- package/dist/src/flow-designer/validation.d.ts +43 -0
- package/dist/src/flow-designer/workflow-utils.d.ts +40 -0
- package/dist/src/focus-ring/focus-ring.d.ts +11 -5
- package/dist/src/html-editor/html-editor.d.ts +56 -0
- package/dist/src/html-editor/index.d.ts +2 -0
- package/dist/src/index.d.ts +16 -1
- package/dist/src/link/link.d.ts +1 -1
- package/dist/src/menu/menu/menu.d.ts +5 -7
- package/dist/src/menu/menu-item/menu-item.d.ts +14 -13
- package/dist/src/modal/index.d.ts +1 -0
- package/dist/src/modal/modal.d.ts +63 -0
- package/dist/src/navigation-rail/index.d.ts +2 -0
- package/dist/src/navigation-rail/navigation-rail-item.d.ts +55 -0
- package/dist/src/navigation-rail/navigation-rail.d.ts +71 -0
- package/dist/src/notification-manager/index.d.ts +1 -0
- package/dist/src/notification-manager/notification-manager.d.ts +44 -0
- package/dist/src/popover/index.d.ts +2 -0
- package/dist/src/popover/popover-content.d.ts +29 -0
- package/dist/src/popover/popover.d.ts +62 -0
- package/dist/src/sidebar-menu/index.d.ts +3 -0
- package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +58 -0
- package/dist/src/sidebar-menu/sidebar-menu.d.ts +38 -0
- package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +35 -0
- package/dist/src/split-button/index.d.ts +1 -0
- package/dist/src/split-button/split-button.d.ts +72 -0
- package/dist/src/toolbar/toolbar.d.ts +10 -10
- package/dist/src/tooltip/tooltip.d.ts +5 -15
- package/dist/src/url-field/index.d.ts +1 -0
- package/dist/src/url-field/url-field.d.ts +48 -0
- package/dist/test/flow-designer.test.d.ts +1 -0
- package/dist/test/sidebar-menu.test.d.ts +1 -0
- package/dist/toolbar.js +10 -10
- package/dist/toolbar.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
- package/readme.md +73 -65
- package/scss/mixin.scss +16 -0
- package/src/__controllers/floating-controller.ts +237 -0
- package/src/__mixins/BaseButtonMixin.ts +83 -0
- package/src/__mixins/BaseHyperlinkMixin.ts +68 -0
- package/src/__mixins/MixinConstructor.ts +1 -0
- package/src/{__base_element → __mixins}/README.md +2 -2
- package/src/banner/banner.scss +20 -25
- package/src/banner/banner.ts +1 -7
- package/src/button/BaseButton.ts +11 -100
- package/src/button/button/button-sizes.scss +4 -2
- package/src/button/button/button.ts +77 -23
- package/src/button/button-group/button-group.ts +2 -2
- package/src/button/icon-button/icon-button.ts +75 -33
- package/src/calendar/base-event.ts +49 -0
- package/src/calendar/calendar-column-view.scss +326 -0
- package/src/calendar/calendar-column-view.ts +392 -0
- package/src/calendar/calendar-event.ts +20 -0
- package/src/calendar/calendar-month-view.scss +192 -0
- package/src/calendar/calendar-month-view.ts +244 -0
- package/src/calendar/calendar.scss +71 -0
- package/src/calendar/calendar.ts +298 -0
- package/src/calendar/event-manager.ts +117 -0
- package/src/calendar/index.ts +4 -0
- package/src/calendar/types.ts +14 -0
- package/src/calendar/utils.ts +180 -0
- package/src/canvas/canvas.scss +60 -0
- package/src/canvas/canvas.ts +391 -0
- package/src/canvas/index.ts +2 -0
- package/src/card/card.ts +11 -71
- package/src/chart-bar/chart-bar.ts +9 -14
- package/src/chart-bar/chart-stacked-bar.ts +12 -18
- package/src/chart-doughnut/chart-doughnut.ts +23 -27
- package/src/chart-pie/chart-pie.ts +19 -23
- package/src/checkbox/checkbox.scss +17 -34
- package/src/checkbox/checkbox.ts +3 -1
- package/src/code-highlighter/code-highlighter.scss +1 -0
- package/src/code-highlighter/code-highlighter.ts +1 -1
- package/src/condition-builder/cb-compound-expression.scss +37 -0
- package/src/condition-builder/cb-compound-expression.ts +80 -0
- package/src/condition-builder/cb-divider.scss +93 -0
- package/src/condition-builder/cb-divider.ts +56 -0
- package/src/condition-builder/cb-expression.scss +14 -0
- package/src/condition-builder/cb-expression.ts +49 -0
- package/src/condition-builder/cb-predicate.scss +35 -0
- package/src/condition-builder/cb-predicate.ts +102 -0
- package/src/condition-builder/condition-builder.scss +13 -0
- package/src/condition-builder/condition-builder.ts +38 -0
- package/src/condition-builder/index.ts +5 -0
- package/src/date-picker/date-picker.ts +1 -1
- package/src/dropdown-button/demo/index.html +110 -0
- package/src/dropdown-button/dropdown-button.scss +22 -0
- package/src/dropdown-button/dropdown-button.ts +206 -0
- package/src/dropdown-button/index.ts +1 -0
- package/src/elevation/elevation.scss +5 -5
- package/src/fab/fab.ts +29 -100
- package/src/flow-designer/DEMO.md +239 -0
- package/src/flow-designer/commands.ts +278 -0
- package/src/flow-designer/flow-designer-node.ts +172 -0
- package/src/flow-designer/flow-designer.scss +457 -0
- package/src/flow-designer/flow-designer.ts +611 -0
- package/src/flow-designer/index.ts +41 -0
- package/src/flow-designer/layout.ts +357 -0
- package/src/flow-designer/types.ts +166 -0
- package/src/flow-designer/validation.ts +284 -0
- package/src/flow-designer/workflow-utils.ts +282 -0
- package/src/focus-ring/focus-ring.ts +47 -40
- package/src/html-editor/html-editor.scss +146 -0
- package/src/html-editor/html-editor.ts +276 -0
- package/src/html-editor/index.ts +3 -0
- package/src/index.ts +28 -1
- package/src/input/input.ts +3 -1
- package/src/link/link.ts +2 -2
- package/src/menu/menu/menu.scss +2 -2
- package/src/menu/menu/menu.ts +91 -101
- package/src/menu/menu-item/menu-item.scss +4 -0
- package/src/menu/menu-item/menu-item.ts +85 -79
- package/src/modal/index.ts +1 -0
- package/src/modal/modal.scss +206 -0
- package/src/modal/modal.ts +201 -0
- package/src/navigation-rail/index.ts +2 -0
- package/src/navigation-rail/navigation-rail-item.scss +216 -0
- package/src/navigation-rail/navigation-rail-item.ts +223 -0
- package/src/navigation-rail/navigation-rail.scss +72 -0
- package/src/navigation-rail/navigation-rail.ts +149 -0
- package/src/notification/notification.ts +3 -2
- package/src/notification-manager/index.ts +1 -0
- package/src/notification-manager/notification-manager.scss +113 -0
- package/src/notification-manager/notification-manager.ts +199 -0
- package/src/number-field/number-field.ts +6 -4
- package/src/pagination/pagination.ts +6 -4
- package/src/peacock-loader.ts +93 -5
- package/src/popover/index.ts +2 -0
- package/src/popover/popover-content.scss +69 -0
- package/src/popover/popover-content.ts +51 -0
- package/src/popover/popover.scss +7 -0
- package/src/popover/popover.ts +170 -0
- package/src/search/search.ts +4 -0
- package/src/sidebar-menu/demo/index.html +68 -0
- package/src/sidebar-menu/index.ts +3 -0
- package/src/sidebar-menu/sidebar-menu-item.scss +102 -0
- package/src/sidebar-menu/sidebar-menu-item.ts +151 -0
- package/src/{tree-view/tree-view.scss → sidebar-menu/sidebar-menu.scss} +1 -1
- package/src/sidebar-menu/sidebar-menu.ts +182 -0
- package/src/sidebar-menu/sidebar-sub-menu.scss +130 -0
- package/src/sidebar-menu/sidebar-sub-menu.ts +160 -0
- package/src/skeleton/skeleton.scss +18 -24
- package/src/snackbar/snackbar.ts +1 -1
- package/src/split-button/index.ts +1 -0
- package/src/split-button/split-button-colors.scss +56 -0
- package/src/split-button/split-button-sizes.scss +28 -0
- package/src/split-button/split-button.scss +79 -0
- package/src/split-button/split-button.ts +236 -0
- package/src/table/table.ts +2 -2
- package/src/tabs/tab.ts +4 -3
- package/src/text/text.css-component.scss +7 -1
- package/src/time-picker/time-picker.ts +1 -1
- package/src/toolbar/toolbar.ts +10 -10
- package/src/tooltip/tooltip.scss +4 -3
- package/src/tooltip/tooltip.ts +64 -98
- package/src/url-field/index.ts +1 -0
- package/src/url-field/url-field.scss +50 -0
- package/src/url-field/url-field.ts +239 -0
- package/dist/button-DMN1dPAg.js.map +0 -1
- package/dist/button-group-CX9CUUXk.js +0 -435
- package/dist/button-group-CX9CUUXk.js.map +0 -1
- package/dist/fab-C5Nzxk0E.js +0 -497
- package/dist/fab-C5Nzxk0E.js.map +0 -1
- package/dist/is-dark-mode-DicqGkCJ.js.map +0 -1
- package/dist/select-4pl4XBj7.js.map +0 -1
- package/dist/spread-B5cgadZl.js +0 -32
- package/dist/spread-B5cgadZl.js.map +0 -1
- package/dist/src/__base_element/BaseHyperlink.d.ts +0 -20
- package/dist/src/menu/menu/MenuSurfaceController.d.ts +0 -18
- package/dist/src/tree-view/index.d.ts +0 -2
- package/dist/src/tree-view/tree-node.d.ts +0 -69
- package/dist/src/tree-view/tree-view.d.ts +0 -40
- package/dist/src/tree-view/wc-tree-view.d.ts +0 -6
- package/dist/test/tree-view.test.d.ts +0 -1
- package/dist/throttle-C7ZAPqtu.js +0 -24
- package/dist/throttle-C7ZAPqtu.js.map +0 -1
- package/src/__base_element/BaseHyperlink.ts +0 -42
- package/src/menu/menu/MenuSurfaceController.ts +0 -61
- package/src/tree-view/demo/index.html +0 -57
- package/src/tree-view/index.ts +0 -2
- package/src/tree-view/tree-node.scss +0 -101
- package/src/tree-view/tree-node.ts +0 -268
- package/src/tree-view/tree-view.ts +0 -182
- package/src/tree-view/wc-tree-view.ts +0 -9
package/dist/src/fab/fab.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { nothing } from 'lit';
|
|
2
|
+
import { BaseButton } from '@/button/BaseButton.js';
|
|
3
3
|
/**
|
|
4
4
|
* @label FAB
|
|
5
5
|
* @tag wc-fab
|
|
@@ -18,25 +18,13 @@ import { IconProvider } from '../icon/icon.js';
|
|
|
18
18
|
*
|
|
19
19
|
* @example
|
|
20
20
|
* ```html
|
|
21
|
-
* <wc-fab name="add"></wc-fab>
|
|
21
|
+
* <wc-fab><wc-icon name="add"></wc-icon></wc-fab>
|
|
22
22
|
* ```
|
|
23
23
|
* @tags controls
|
|
24
24
|
*/
|
|
25
|
-
export declare class Fab extends
|
|
25
|
+
export declare class Fab extends BaseButton {
|
|
26
26
|
#private;
|
|
27
27
|
static styles: import("lit").CSSResultGroup[];
|
|
28
|
-
/**
|
|
29
|
-
* Name of the icon to display inside the FAB.
|
|
30
|
-
*/
|
|
31
|
-
name?: string;
|
|
32
|
-
/**
|
|
33
|
-
* Source URL for a custom icon.
|
|
34
|
-
*/
|
|
35
|
-
src?: string;
|
|
36
|
-
/**
|
|
37
|
-
* Icon provider. Defaults to `"material-symbols"`.
|
|
38
|
-
*/
|
|
39
|
-
provider: IconProvider;
|
|
40
28
|
/**
|
|
41
29
|
* Optional label text for the extended FAB variant.
|
|
42
30
|
* When set, the FAB displays both the icon and a text label.
|
|
@@ -67,18 +55,6 @@ export declare class Fab extends LitElement {
|
|
|
67
55
|
* If `true`, the FAB is in a lowered (resting) state with reduced elevation.
|
|
68
56
|
*/
|
|
69
57
|
lowered: boolean;
|
|
70
|
-
/**
|
|
71
|
-
* If `true`, the user cannot interact with the FAB.
|
|
72
|
-
*/
|
|
73
|
-
disabled: boolean;
|
|
74
|
-
/**
|
|
75
|
-
* Hyperlink to navigate to on click.
|
|
76
|
-
*/
|
|
77
|
-
href?: string;
|
|
78
|
-
/**
|
|
79
|
-
* Sets or retrieves the window or frame at which to target content.
|
|
80
|
-
*/
|
|
81
|
-
target: string;
|
|
82
58
|
/**
|
|
83
59
|
* Additional ARIA attributes to pass to the inner button/anchor element.
|
|
84
60
|
*/
|
|
@@ -94,18 +70,11 @@ export declare class Fab extends LitElement {
|
|
|
94
70
|
*/
|
|
95
71
|
tooltip?: string;
|
|
96
72
|
isPressed: boolean;
|
|
97
|
-
readonly fabElement: HTMLElement | null;
|
|
98
73
|
focus(): void;
|
|
99
74
|
blur(): void;
|
|
100
|
-
connectedCallback(): void;
|
|
101
|
-
disconnectedCallback(): void;
|
|
102
75
|
firstUpdated(): void;
|
|
103
|
-
__handlePress: (event: KeyboardEvent | MouseEvent) => void;
|
|
104
|
-
__isLink(): boolean;
|
|
105
|
-
__dispatchClickWithThrottle: (event: MouseEvent | KeyboardEvent) => void;
|
|
106
76
|
__dispatchClick: (event: MouseEvent | KeyboardEvent) => void;
|
|
107
77
|
__getDisabledReasonID(): string | typeof nothing;
|
|
108
78
|
render(): import("lit-html").TemplateResult<1>;
|
|
109
79
|
__renderFabContent(isExtended: boolean): import("lit-html").TemplateResult<1>;
|
|
110
|
-
__renderTooltip(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
111
80
|
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Workflow, WorkflowNode, WorkflowCommand } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Add Node Command
|
|
4
|
+
*/
|
|
5
|
+
export declare class AddNodeCommand implements WorkflowCommand {
|
|
6
|
+
private nodeToAdd;
|
|
7
|
+
private parentNodeId;
|
|
8
|
+
private connectionType;
|
|
9
|
+
private branchKey?;
|
|
10
|
+
description: string;
|
|
11
|
+
constructor(nodeToAdd: WorkflowNode, parentNodeId: string, connectionType?: 'child' | 'branch' | 'task', branchKey?: string | undefined);
|
|
12
|
+
execute(workflow: Workflow): Workflow;
|
|
13
|
+
undo(workflow: Workflow): Workflow;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Delete Node Command
|
|
17
|
+
*/
|
|
18
|
+
export declare class DeleteNodeCommand implements WorkflowCommand {
|
|
19
|
+
private nodeId;
|
|
20
|
+
description: string;
|
|
21
|
+
private deletedNode;
|
|
22
|
+
private parentReference;
|
|
23
|
+
constructor(nodeId: string, workflow?: Workflow);
|
|
24
|
+
private captureNodeContext;
|
|
25
|
+
private findParentReference;
|
|
26
|
+
execute(workflow: Workflow): Workflow;
|
|
27
|
+
undo(workflow: Workflow): Workflow;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Edit Node Command
|
|
31
|
+
*/
|
|
32
|
+
export declare class EditNodeCommand implements WorkflowCommand {
|
|
33
|
+
private nodeId;
|
|
34
|
+
private updates;
|
|
35
|
+
description: string;
|
|
36
|
+
private previousState;
|
|
37
|
+
constructor(nodeId: string, updates: Partial<WorkflowNode>, workflow?: Workflow);
|
|
38
|
+
execute(workflow: Workflow): Workflow;
|
|
39
|
+
undo(workflow: Workflow): Workflow;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Move Node Command - reorder in array or change parent
|
|
43
|
+
*/
|
|
44
|
+
export declare class MoveNodeCommand implements WorkflowCommand {
|
|
45
|
+
private nodeId;
|
|
46
|
+
private newParentId;
|
|
47
|
+
private newIndex;
|
|
48
|
+
private newConnectionType;
|
|
49
|
+
private newBranchKey?;
|
|
50
|
+
description: string;
|
|
51
|
+
private previousState;
|
|
52
|
+
constructor(nodeId: string, newParentId: string, newIndex: number, newConnectionType?: 'child' | 'branch' | 'task', newBranchKey?: string | undefined, workflow?: Workflow);
|
|
53
|
+
private captureCurrentPosition;
|
|
54
|
+
execute(workflow: Workflow): Workflow;
|
|
55
|
+
undo(workflow: Workflow): Workflow;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Batch Command - combine multiple commands into one undo/redo step
|
|
59
|
+
*/
|
|
60
|
+
export declare class BatchCommand implements WorkflowCommand {
|
|
61
|
+
private commands;
|
|
62
|
+
description: string;
|
|
63
|
+
constructor(commands: WorkflowCommand[], description?: string);
|
|
64
|
+
execute(workflow: Workflow): Workflow;
|
|
65
|
+
undo(workflow: Workflow): Workflow;
|
|
66
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import type { WorkflowNode } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Individual node component for flow designer
|
|
5
|
+
* Renders a single workflow node with customizable slot templates
|
|
6
|
+
*
|
|
7
|
+
* @tag wc-flow-designer-node
|
|
8
|
+
* @rawTag flow-designer-node
|
|
9
|
+
* @wip true
|
|
10
|
+
*/
|
|
11
|
+
export declare class FlowDesignerNode extends LitElement {
|
|
12
|
+
static styles: import("lit").CSSResultGroup[];
|
|
13
|
+
/**
|
|
14
|
+
* The workflow node to render
|
|
15
|
+
*/
|
|
16
|
+
node: WorkflowNode;
|
|
17
|
+
/**
|
|
18
|
+
* Whether this node is currently selected
|
|
19
|
+
*/
|
|
20
|
+
isSelected: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether this node is in edit mode
|
|
23
|
+
*/
|
|
24
|
+
isEditing: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether this node is disabled
|
|
27
|
+
*/
|
|
28
|
+
disabled: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Whether to show the delete button
|
|
31
|
+
*/
|
|
32
|
+
showDelete: boolean;
|
|
33
|
+
private _handleClick;
|
|
34
|
+
private _handleDoubleClick;
|
|
35
|
+
private _handleDelete;
|
|
36
|
+
private _handleMouseEnter;
|
|
37
|
+
private _handleMouseLeave;
|
|
38
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
39
|
+
private _renderDefaultHeader;
|
|
40
|
+
private _renderDefaultBody;
|
|
41
|
+
}
|
|
42
|
+
declare global {
|
|
43
|
+
interface HTMLElementTagNameMap {
|
|
44
|
+
'wc-flow-designer-node': FlowDesignerNode;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
import '../toolbar/toolbar.js';
|
|
3
|
+
import '../button/icon-button/icon-button.js';
|
|
4
|
+
import '../icon/icon.js';
|
|
5
|
+
import './flow-designer-node.js';
|
|
6
|
+
import type { Workflow, WorkflowNode } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* @label Flow Designer
|
|
9
|
+
* @tag wc-flow-designer
|
|
10
|
+
* @rawTag flow-designer
|
|
11
|
+
* @summary Low-code business process flow designer with swimlane layout, undo/redo, and interactive editing.
|
|
12
|
+
*
|
|
13
|
+
* @cssprop --flow-designer-height - Height of the flow designer container. Defaults to 400px.
|
|
14
|
+
* @cssprop --flow-designer-border-color - Border color of the flow designer. Defaults to outline-variant.
|
|
15
|
+
* @cssprop --flow-designer-background - Background color of the designer. Defaults to surface.
|
|
16
|
+
* @cssprop --flow-designer-border-radius - Corner radius. Defaults to medium shape.
|
|
17
|
+
* @cssprop --flow-designer-action-bar-bg - Background color of the action bar. Defaults to surface-container.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```html
|
|
21
|
+
* <wc-flow-designer id="editor"></wc-flow-designer>
|
|
22
|
+
* <script>
|
|
23
|
+
* const workflow = {
|
|
24
|
+
* workflow_id: "demo",
|
|
25
|
+
* nodes: {
|
|
26
|
+
* id: "node_1",
|
|
27
|
+
* type: "trigger",
|
|
28
|
+
* label: "Start"
|
|
29
|
+
* }
|
|
30
|
+
* };
|
|
31
|
+
* document.querySelector('#editor').workflow = workflow;
|
|
32
|
+
* </script>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare class FlowDesigner extends LitElement {
|
|
36
|
+
static styles: import("lit").CSSResultGroup[];
|
|
37
|
+
/**
|
|
38
|
+
* The workflow definition to display and edit
|
|
39
|
+
*/
|
|
40
|
+
workflow: Workflow;
|
|
41
|
+
/**
|
|
42
|
+
* Whether the flow designer is in read-only mode
|
|
43
|
+
*/
|
|
44
|
+
readonly: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether the flow designer is disabled
|
|
47
|
+
*/
|
|
48
|
+
disabled: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Show validation errors/warnings
|
|
51
|
+
*/
|
|
52
|
+
showValidation: boolean;
|
|
53
|
+
private _editor;
|
|
54
|
+
private _positionedNodes;
|
|
55
|
+
private _history;
|
|
56
|
+
private _historyIndex;
|
|
57
|
+
private scrollElm?;
|
|
58
|
+
private _isDragScrolling;
|
|
59
|
+
private _dragStartX;
|
|
60
|
+
private _dragStartY;
|
|
61
|
+
private _scrollStartX;
|
|
62
|
+
private _scrollStartY;
|
|
63
|
+
connectedCallback(): void;
|
|
64
|
+
disconnectedCallback(): void;
|
|
65
|
+
protected willUpdate(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Recalculate layout when workflow changes
|
|
68
|
+
*/
|
|
69
|
+
private _recalculateLayout;
|
|
70
|
+
/**
|
|
71
|
+
* Add a new node
|
|
72
|
+
*/
|
|
73
|
+
addNode(newNode: WorkflowNode, parentNodeId: string, connectionType?: 'child' | 'branch' | 'task', branchKey?: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Delete a node by ID
|
|
76
|
+
*/
|
|
77
|
+
deleteNode(nodeId: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Edit a node
|
|
80
|
+
*/
|
|
81
|
+
editNode(nodeId: string, updates: Partial<WorkflowNode>): void;
|
|
82
|
+
/**
|
|
83
|
+
* Move a node to a different parent/position
|
|
84
|
+
*/
|
|
85
|
+
moveNode(nodeId: string, newParentId: string, newIndex: number, connectionType?: 'child' | 'branch' | 'task', branchKey?: string): void;
|
|
86
|
+
/**
|
|
87
|
+
* Execute a command and add to history
|
|
88
|
+
*/
|
|
89
|
+
private _executeCommand;
|
|
90
|
+
/**
|
|
91
|
+
* Undo last operation
|
|
92
|
+
*/
|
|
93
|
+
undo(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Redo last undone operation
|
|
96
|
+
*/
|
|
97
|
+
redo(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Check if undo is available
|
|
100
|
+
*/
|
|
101
|
+
canUndo(): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Check if redo is available
|
|
104
|
+
*/
|
|
105
|
+
canRedo(): boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Export current workflow as JSON
|
|
108
|
+
*/
|
|
109
|
+
exportWorkflow(): string;
|
|
110
|
+
/**
|
|
111
|
+
* Validate workflow
|
|
112
|
+
*/
|
|
113
|
+
validate(): void;
|
|
114
|
+
private _emitWorkflowChange;
|
|
115
|
+
private _handleKeyDown;
|
|
116
|
+
private _handleMouseUp;
|
|
117
|
+
private _handleCanvasMouseDown;
|
|
118
|
+
private _handleCanvasMouseMove;
|
|
119
|
+
private _handleNodeClick;
|
|
120
|
+
private _handleNodeDelete;
|
|
121
|
+
private _handleNodeEdit;
|
|
122
|
+
private _handleZoomIn;
|
|
123
|
+
private _handleZoomOut;
|
|
124
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
125
|
+
private _renderConnectors;
|
|
126
|
+
private _renderSwimlanes;
|
|
127
|
+
private _renderNodes;
|
|
128
|
+
}
|
|
129
|
+
declare global {
|
|
130
|
+
interface HTMLElementTagNameMap {
|
|
131
|
+
'wc-flow-designer': FlowDesigner;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { FlowDesigner } from './flow-designer.js';
|
|
2
|
+
export { FlowDesignerNode } from './flow-designer-node.js';
|
|
3
|
+
export type { Workflow, WorkflowNode, WorkflowCommand, PositionedNode, ValidationError, HistoryEntry, EditorState, NodeType, WorkflowChangeEvent, SwimlaneConfig, NodeTemplate, } from './types.js';
|
|
4
|
+
export { SwimlaneLayout } from './layout.js';
|
|
5
|
+
export { WorkflowValidator } from './validation.js';
|
|
6
|
+
export { cloneWorkflow, cloneNode, findNodeById, removeNodeById, insertNodeIntoWorkflow, getAllNodes, getNodePath, isDescendant, replaceNode, } from './workflow-utils.js';
|
|
7
|
+
export { AddNodeCommand, DeleteNodeCommand, EditNodeCommand, MoveNodeCommand, BatchCommand, } from './commands.js';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { WorkflowNode, PositionedNode, SwimlaneConfig } from './types.js';
|
|
2
|
+
export declare class SwimlaneLayout {
|
|
3
|
+
/**
|
|
4
|
+
* Calculate layout positions for all nodes in a workflow
|
|
5
|
+
*/
|
|
6
|
+
static calculateLayout(rootNode: WorkflowNode): PositionedNode[];
|
|
7
|
+
/**
|
|
8
|
+
* Traverse workflow tree and assign lane/depth to each node
|
|
9
|
+
*/
|
|
10
|
+
private static _traverseAndAssignLanes;
|
|
11
|
+
/**
|
|
12
|
+
* Calculate SVG connector points between nodes
|
|
13
|
+
*/
|
|
14
|
+
private static _calculateConnectors;
|
|
15
|
+
/**
|
|
16
|
+
* Get swimlane configurations for rendering
|
|
17
|
+
*/
|
|
18
|
+
static getSwimlanes(positionedNodes: PositionedNode[]): SwimlaneConfig[];
|
|
19
|
+
/**
|
|
20
|
+
* Generate human-readable swimlane name
|
|
21
|
+
*/
|
|
22
|
+
private static _getSwimlaneName;
|
|
23
|
+
/**
|
|
24
|
+
* Calculate canvas bounds for sizing
|
|
25
|
+
*/
|
|
26
|
+
static getCanvasBounds(positionedNodes: PositionedNode[]): {
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow Data Types for Flow Designer
|
|
3
|
+
* Defines the structure for low-code business process workflows
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Supported node types in a workflow
|
|
7
|
+
*/
|
|
8
|
+
export type NodeType = 'trigger' | 'action' | 'decision' | 'loop_start' | 'loop_end' | 'fork' | 'join';
|
|
9
|
+
/**
|
|
10
|
+
* Payload for workflow-changed event
|
|
11
|
+
*/
|
|
12
|
+
export interface WorkflowChangeEvent {
|
|
13
|
+
type: 'node-added' | 'node-deleted' | 'node-edited' | 'node-moved' | 'undo' | 'redo';
|
|
14
|
+
nodeId?: string;
|
|
15
|
+
workflow: Workflow;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Core workflow node structure
|
|
19
|
+
*/
|
|
20
|
+
export interface WorkflowNode {
|
|
21
|
+
id: string;
|
|
22
|
+
type: NodeType;
|
|
23
|
+
label: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
icon?: string;
|
|
26
|
+
/**
|
|
27
|
+
* For sequential nodes in parallel execution (fork tasks)
|
|
28
|
+
*/
|
|
29
|
+
tasks?: WorkflowNode[];
|
|
30
|
+
/**
|
|
31
|
+
* For conditional branching (decision nodes)
|
|
32
|
+
* Keys are branch conditions like "yes", "no"
|
|
33
|
+
*/
|
|
34
|
+
branches?: Record<string, WorkflowNode[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Child nodes for sequential flow
|
|
37
|
+
*/
|
|
38
|
+
children?: WorkflowNode[];
|
|
39
|
+
/**
|
|
40
|
+
* For loop_end: points to the loop_start node id to repeat
|
|
41
|
+
*/
|
|
42
|
+
target_id?: string;
|
|
43
|
+
/**
|
|
44
|
+
* For fork: join node that collects parallel paths
|
|
45
|
+
*/
|
|
46
|
+
join?: WorkflowNode;
|
|
47
|
+
/**
|
|
48
|
+
* Custom metadata - can store domain-specific data
|
|
49
|
+
*/
|
|
50
|
+
metadata?: Record<string, any>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Complete workflow definition
|
|
54
|
+
*/
|
|
55
|
+
export interface Workflow {
|
|
56
|
+
workflow_id: string;
|
|
57
|
+
nodes: WorkflowNode;
|
|
58
|
+
metadata?: Record<string, any>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Layout engine output - node with calculated position
|
|
62
|
+
*/
|
|
63
|
+
export interface PositionedNode {
|
|
64
|
+
node: WorkflowNode;
|
|
65
|
+
x: number;
|
|
66
|
+
y: number;
|
|
67
|
+
width: number;
|
|
68
|
+
height: number;
|
|
69
|
+
lane: string;
|
|
70
|
+
depth: number;
|
|
71
|
+
branchPath?: string;
|
|
72
|
+
parentId?: string;
|
|
73
|
+
connectorPoints?: {
|
|
74
|
+
from: {
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
};
|
|
78
|
+
to: {
|
|
79
|
+
x: number;
|
|
80
|
+
y: number;
|
|
81
|
+
};
|
|
82
|
+
type: 'straight' | 'curved' | 'branch' | 'fork' | 'join';
|
|
83
|
+
}[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Validation error result
|
|
87
|
+
*/
|
|
88
|
+
export interface ValidationError {
|
|
89
|
+
nodeId: string;
|
|
90
|
+
type: 'circular_loop' | 'orphaned_node' | 'invalid_branch' | 'missing_target' | 'invalid_fork_join';
|
|
91
|
+
message: string;
|
|
92
|
+
severity: 'error' | 'warning';
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* State for a single undo/redo operation
|
|
96
|
+
*/
|
|
97
|
+
export interface HistoryEntry {
|
|
98
|
+
command: WorkflowCommand;
|
|
99
|
+
workflow: Workflow;
|
|
100
|
+
timestamp: number;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Command interface for undo/redo pattern
|
|
104
|
+
*/
|
|
105
|
+
export interface WorkflowCommand {
|
|
106
|
+
execute(workflow: Workflow): Workflow;
|
|
107
|
+
undo(workflow: Workflow): Workflow;
|
|
108
|
+
description: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Swimlane configuration
|
|
112
|
+
*/
|
|
113
|
+
export interface SwimlaneConfig {
|
|
114
|
+
id: string;
|
|
115
|
+
name: string;
|
|
116
|
+
nodes: PositionedNode[];
|
|
117
|
+
isParallel: boolean;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Editor state
|
|
121
|
+
*/
|
|
122
|
+
export interface EditorState {
|
|
123
|
+
selectedNodeId: string | null;
|
|
124
|
+
isEditing: boolean;
|
|
125
|
+
editingNode: Partial<WorkflowNode> | null;
|
|
126
|
+
hoveredNodeId: string | null;
|
|
127
|
+
isDragging: boolean;
|
|
128
|
+
draggedNodeId: string | null;
|
|
129
|
+
zoom: number;
|
|
130
|
+
panX: number;
|
|
131
|
+
panY: number;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Node template configuration for slots
|
|
135
|
+
*/
|
|
136
|
+
export interface NodeTemplate {
|
|
137
|
+
type: NodeType;
|
|
138
|
+
defaultIcon?: string;
|
|
139
|
+
defaultHeight?: number;
|
|
140
|
+
allowedChildren?: NodeType[];
|
|
141
|
+
allowedBranches?: string[];
|
|
142
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Workflow, ValidationError } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Workflow validation - checks for common errors and inconsistencies
|
|
4
|
+
*/
|
|
5
|
+
export declare class WorkflowValidator {
|
|
6
|
+
/**
|
|
7
|
+
* Validate entire workflow
|
|
8
|
+
*/
|
|
9
|
+
static validate(workflow: Workflow): ValidationError[];
|
|
10
|
+
/**
|
|
11
|
+
* Detect circular loop references
|
|
12
|
+
* A loop_end cannot point to a node that is its own descendant (after the loop_start)
|
|
13
|
+
*/
|
|
14
|
+
private static _checkCircularLoops;
|
|
15
|
+
/**
|
|
16
|
+
* Check for orphaned nodes (not reachable from root)
|
|
17
|
+
*/
|
|
18
|
+
private static _checkOrphanedNodes;
|
|
19
|
+
/**
|
|
20
|
+
* Check that decision nodes have valid branches
|
|
21
|
+
*/
|
|
22
|
+
private static _checkValidBranches;
|
|
23
|
+
/**
|
|
24
|
+
* Check that loop_end nodes reference valid loop_start nodes
|
|
25
|
+
*/
|
|
26
|
+
private static _checkMissingTargets;
|
|
27
|
+
/**
|
|
28
|
+
* Check that fork nodes have corresponding join nodes
|
|
29
|
+
*/
|
|
30
|
+
private static _checkForkJoinPairs;
|
|
31
|
+
/**
|
|
32
|
+
* Check if workflow would create a valid execution path
|
|
33
|
+
*/
|
|
34
|
+
static isExecutable(workflow: Workflow): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Get validation warnings only
|
|
37
|
+
*/
|
|
38
|
+
static getWarnings(workflow: Workflow): ValidationError[];
|
|
39
|
+
/**
|
|
40
|
+
* Get validation errors only
|
|
41
|
+
*/
|
|
42
|
+
static getErrors(workflow: Workflow): ValidationError[];
|
|
43
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Workflow, WorkflowNode } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Workflow utility functions for tree traversal and manipulation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Deep clone a workflow to ensure immutability
|
|
7
|
+
*/
|
|
8
|
+
export declare function cloneWorkflow(workflow: Workflow): Workflow;
|
|
9
|
+
/**
|
|
10
|
+
* Deep clone a workflow node
|
|
11
|
+
*/
|
|
12
|
+
export declare function cloneNode(node: WorkflowNode): WorkflowNode;
|
|
13
|
+
/**
|
|
14
|
+
* Find a node by ID anywhere in the workflow tree
|
|
15
|
+
*/
|
|
16
|
+
export declare function findNodeById(node: WorkflowNode, id: string): WorkflowNode | null;
|
|
17
|
+
/**
|
|
18
|
+
* Remove a node by ID from the workflow tree
|
|
19
|
+
*/
|
|
20
|
+
export declare function removeNodeById(node: WorkflowNode, id: string): WorkflowNode;
|
|
21
|
+
/**
|
|
22
|
+
* Insert a node into the workflow tree at a specific location
|
|
23
|
+
*/
|
|
24
|
+
export declare function insertNodeIntoWorkflow(parent: WorkflowNode, nodeToInsert: WorkflowNode, connectionType?: 'child' | 'branch' | 'task', branchKey?: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Collect all nodes in the workflow (depth-first)
|
|
27
|
+
*/
|
|
28
|
+
export declare function getAllNodes(node: WorkflowNode): WorkflowNode[];
|
|
29
|
+
/**
|
|
30
|
+
* Get all parent node IDs for a given node (path from root to node)
|
|
31
|
+
*/
|
|
32
|
+
export declare function getNodePath(rootNode: WorkflowNode, targetId: string): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Check if a node is a descendant of another node
|
|
35
|
+
*/
|
|
36
|
+
export declare function isDescendant(rootNode: WorkflowNode, potentialParentId: string, nodeId: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Replace a node in the tree
|
|
39
|
+
*/
|
|
40
|
+
export declare function replaceNode(node: WorkflowNode, targetId: string, replacement: WorkflowNode): WorkflowNode;
|
|
@@ -14,17 +14,23 @@ export declare class FocusRing extends LitElement {
|
|
|
14
14
|
static styles: import("lit").CSSResultGroup[];
|
|
15
15
|
visible: boolean;
|
|
16
16
|
for: string;
|
|
17
|
+
private __boundFocusin;
|
|
18
|
+
private __boundFocusout;
|
|
19
|
+
private __boundPointerdown;
|
|
17
20
|
render(): symbol;
|
|
18
|
-
_control?: HTMLElement;
|
|
19
|
-
_focusTarget?: HTMLElement;
|
|
20
|
-
get control(): HTMLElement | null;
|
|
21
|
-
set control(control: HTMLElement | null);
|
|
22
|
-
set forElement(value: HTMLElement | null);
|
|
23
21
|
connectedCallback(): void;
|
|
24
22
|
disconnectedCallback(): void;
|
|
23
|
+
updated(changed: Map<string, unknown>): void;
|
|
25
24
|
__focusin(): void;
|
|
26
25
|
__focusout(): void;
|
|
27
26
|
__pointerdown(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Resolves the element that should receive focus-ring event listeners by id.
|
|
29
|
+
* Prefers lookup from the current control's root node, then falls back to a
|
|
30
|
+
* document-level lookup.
|
|
31
|
+
*
|
|
32
|
+
* @returns The resolved focus target, if one can be found.
|
|
33
|
+
*/
|
|
28
34
|
__getFocusTarget(): HTMLElement | undefined;
|
|
29
35
|
attach(): void;
|
|
30
36
|
detach(): void;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import BaseInput from '../input/BaseInput.js';
|
|
2
|
+
/**
|
|
3
|
+
* @label HTML Editor
|
|
4
|
+
* @tag wc-html-editor
|
|
5
|
+
* @rawTag html-editor
|
|
6
|
+
*
|
|
7
|
+
* @summary A WYSIWYG HTML editor component with a Material 3 styled toolbar.
|
|
8
|
+
* @overview
|
|
9
|
+
* <p>The HTML Editor provides a rich-text editing experience using the browser's built-in
|
|
10
|
+
* <code>contenteditable</code> API. It wraps the editable area in a Material 3 styled
|
|
11
|
+
* <code>wc-field</code> and exposes a toolbar with common formatting actions.</p>
|
|
12
|
+
*
|
|
13
|
+
* <p>Get and set the HTML content via the <code>value</code> property. The component
|
|
14
|
+
* dispatches a <code>change</code> event whenever the content is modified.</p>
|
|
15
|
+
*
|
|
16
|
+
* @cssprop --html-editor-min-height - Minimum height of the editable area. Defaults to 8rem.
|
|
17
|
+
* @cssprop --html-editor-toolbar-background - Background color of the toolbar.
|
|
18
|
+
* @cssprop --html-editor-toolbar-border-color - Border color between toolbar and editing area.
|
|
19
|
+
*
|
|
20
|
+
* @fires {Event} change - Fired whenever the editable content changes.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```html
|
|
24
|
+
* <wc-html-editor label="Description" value="<p>Hello <strong>world</strong></p>"></wc-html-editor>
|
|
25
|
+
* ```
|
|
26
|
+
* @tags input editor
|
|
27
|
+
*/
|
|
28
|
+
export declare class HtmlEditor extends BaseInput {
|
|
29
|
+
static styles: import("lit").CSSResultGroup[];
|
|
30
|
+
/** Current HTML value of the editor. */
|
|
31
|
+
value: string;
|
|
32
|
+
/** Label displayed above the editor. */
|
|
33
|
+
label: string;
|
|
34
|
+
/** Placeholder text shown when the editor is empty. */
|
|
35
|
+
placeholder: string;
|
|
36
|
+
/** Visual style of the wrapping field. */
|
|
37
|
+
variant: 'filled' | 'outlined' | 'default';
|
|
38
|
+
/** Helper text displayed below the editor. */
|
|
39
|
+
helperText: string;
|
|
40
|
+
/** Whether to show an error state. */
|
|
41
|
+
error: boolean;
|
|
42
|
+
/** Error message text. */
|
|
43
|
+
errorText: string;
|
|
44
|
+
private _focused;
|
|
45
|
+
private _editorEl;
|
|
46
|
+
protected firstUpdated(): void;
|
|
47
|
+
protected updated(changed: Map<string, unknown>): void;
|
|
48
|
+
private _execCmd;
|
|
49
|
+
private _handleInput;
|
|
50
|
+
private _handleFocus;
|
|
51
|
+
private _handleBlur;
|
|
52
|
+
private _insertLink;
|
|
53
|
+
private _toolbarButton;
|
|
54
|
+
private _renderToolbar;
|
|
55
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
56
|
+
}
|