@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.
Files changed (314) hide show
  1. package/dist/BaseButton-BNFAYn-S.js +219 -0
  2. package/dist/BaseButton-BNFAYn-S.js.map +1 -0
  3. package/dist/BaseHyperlinkMixin-BNuwbiEf.js +65 -0
  4. package/dist/BaseHyperlinkMixin-BNuwbiEf.js.map +1 -0
  5. package/dist/BaseInput-14YmcfK7.js +27 -0
  6. package/dist/BaseInput-14YmcfK7.js.map +1 -0
  7. package/dist/assets/components.css +1 -1
  8. package/dist/assets/components.css.map +1 -1
  9. package/dist/assets/styles.css +1 -1
  10. package/dist/assets/styles.css.map +1 -1
  11. package/dist/banner.js +14 -30
  12. package/dist/banner.js.map +1 -1
  13. package/dist/{button-DMN1dPAg.js → button-colors-Ccys3hvS.js} +5 -468
  14. package/dist/button-colors-Ccys3hvS.js.map +1 -0
  15. package/dist/button-group.js +228 -8
  16. package/dist/button-group.js.map +1 -1
  17. package/dist/button.js +294 -8
  18. package/dist/button.js.map +1 -1
  19. package/dist/calendar-column-view.js +634 -0
  20. package/dist/calendar-column-view.js.map +1 -0
  21. package/dist/calendar-event-BrQ_SEKD.js +199 -0
  22. package/dist/calendar-event-BrQ_SEKD.js.map +1 -0
  23. package/dist/calendar-month-view.js +376 -0
  24. package/dist/calendar-month-view.js.map +1 -0
  25. package/dist/calendar.js +339 -0
  26. package/dist/calendar.js.map +1 -0
  27. package/dist/canvas.js +361 -0
  28. package/dist/canvas.js.map +1 -0
  29. package/dist/card.js +18 -73
  30. package/dist/card.js.map +1 -1
  31. package/dist/cb-compound-expression.js +125 -0
  32. package/dist/cb-compound-expression.js.map +1 -0
  33. package/dist/cb-divider.js +150 -0
  34. package/dist/cb-divider.js.map +1 -0
  35. package/dist/cb-expression.js +75 -0
  36. package/dist/cb-expression.js.map +1 -0
  37. package/dist/cb-predicate.js +137 -0
  38. package/dist/cb-predicate.js.map +1 -0
  39. package/dist/chart-bar.js.map +1 -1
  40. package/dist/chart-doughnut.js +2 -2
  41. package/dist/chart-doughnut.js.map +1 -1
  42. package/dist/chart-pie.js +2 -2
  43. package/dist/chart-pie.js.map +1 -1
  44. package/dist/chart-stacked-bar.js.map +1 -1
  45. package/dist/code-editor.js +2 -1
  46. package/dist/code-editor.js.map +1 -1
  47. package/dist/code-highlighter.js +2 -1
  48. package/dist/code-highlighter.js.map +1 -1
  49. package/dist/condition-builder.js +58 -0
  50. package/dist/condition-builder.js.map +1 -0
  51. package/dist/custom-elements-jsdocs.json +10860 -5567
  52. package/dist/custom-elements.json +16180 -7996
  53. package/dist/dropdown-button.js +216 -0
  54. package/dist/dropdown-button.js.map +1 -0
  55. package/dist/event-manager-D-QCmUgR.js +113 -0
  56. package/dist/event-manager-D-QCmUgR.js.map +1 -0
  57. package/dist/fab.js +421 -9
  58. package/dist/fab.js.map +1 -1
  59. package/dist/flow-designer-dZnLJOQT.js +1656 -0
  60. package/dist/flow-designer-dZnLJOQT.js.map +1 -0
  61. package/dist/flow-designer-node-XMe-jlKg.js +548 -0
  62. package/dist/flow-designer-node-XMe-jlKg.js.map +1 -0
  63. package/dist/flow-designer-node.js +4 -0
  64. package/dist/flow-designer-node.js.map +1 -0
  65. package/dist/flow-designer.js +16 -0
  66. package/dist/flow-designer.js.map +1 -0
  67. package/dist/html-editor.js +358 -0
  68. package/dist/html-editor.js.map +1 -0
  69. package/dist/icon-button-CK1ZuE-2.js +247 -0
  70. package/dist/icon-button-CK1ZuE-2.js.map +1 -0
  71. package/dist/index.js +31 -8
  72. package/dist/index.js.map +1 -1
  73. package/dist/{is-dark-mode-DicqGkCJ.js → is-dark-mode-DOcaw4Yq.js} +2 -27
  74. package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -0
  75. package/dist/modal.js +418 -0
  76. package/dist/modal.js.map +1 -0
  77. package/dist/{select-4pl4XBj7.js → navigation-rail-DyO0oAZU.js} +2000 -2767
  78. package/dist/navigation-rail-DyO0oAZU.js.map +1 -0
  79. package/dist/notification-manager.js +268 -0
  80. package/dist/notification-manager.js.map +1 -0
  81. package/dist/notification.js +3 -2
  82. package/dist/notification.js.map +1 -1
  83. package/dist/peacock-loader.js +102 -14
  84. package/dist/peacock-loader.js.map +1 -1
  85. package/dist/popover-NC7b1lTq.js +1971 -0
  86. package/dist/popover-NC7b1lTq.js.map +1 -0
  87. package/dist/popover-content.js +125 -0
  88. package/dist/popover-content.js.map +1 -0
  89. package/dist/popover.js +4 -0
  90. package/dist/popover.js.map +1 -0
  91. package/dist/search.js +4 -0
  92. package/dist/search.js.map +1 -1
  93. package/dist/split-button.js +388 -0
  94. package/dist/split-button.js.map +1 -0
  95. package/dist/src/__controllers/floating-controller.d.ts +35 -0
  96. package/dist/src/__mixins/BaseButtonMixin.d.ts +20 -0
  97. package/dist/src/__mixins/BaseHyperlinkMixin.d.ts +18 -0
  98. package/dist/src/__mixins/MixinConstructor.d.ts +1 -0
  99. package/dist/src/banner/banner.d.ts +0 -4
  100. package/dist/src/button/BaseButton.d.ts +4 -47
  101. package/dist/src/button/button/button.d.ts +32 -3
  102. package/dist/src/button/button-group/button-group.d.ts +2 -2
  103. package/dist/src/button/icon-button/icon-button.d.ts +33 -8
  104. package/dist/src/calendar/base-event.d.ts +10 -0
  105. package/dist/src/calendar/calendar-column-view.d.ts +41 -0
  106. package/dist/src/calendar/calendar-event.d.ts +7 -0
  107. package/dist/src/calendar/calendar-month-view.d.ts +31 -0
  108. package/dist/src/calendar/calendar.d.ts +65 -0
  109. package/dist/src/calendar/event-manager.d.ts +17 -0
  110. package/dist/src/calendar/index.d.ts +4 -0
  111. package/dist/src/calendar/types.d.ts +13 -0
  112. package/dist/src/calendar/utils.d.ts +31 -0
  113. package/dist/src/canvas/canvas.d.ts +92 -0
  114. package/dist/src/canvas/index.d.ts +2 -0
  115. package/dist/src/card/card.d.ts +4 -15
  116. package/dist/src/condition-builder/cb-compound-expression.d.ts +31 -0
  117. package/dist/src/condition-builder/cb-divider.d.ts +26 -0
  118. package/dist/src/condition-builder/cb-expression.d.ts +31 -0
  119. package/dist/src/condition-builder/cb-predicate.d.ts +30 -0
  120. package/dist/src/condition-builder/condition-builder.d.ts +27 -0
  121. package/dist/src/condition-builder/index.d.ts +5 -0
  122. package/dist/src/dropdown-button/dropdown-button.d.ts +68 -0
  123. package/dist/src/dropdown-button/index.d.ts +1 -0
  124. package/dist/src/fab/fab.d.ts +4 -35
  125. package/dist/src/flow-designer/commands.d.ts +66 -0
  126. package/dist/src/flow-designer/flow-designer-node.d.ts +46 -0
  127. package/dist/src/flow-designer/flow-designer.d.ts +133 -0
  128. package/dist/src/flow-designer/index.d.ts +7 -0
  129. package/dist/src/flow-designer/layout.d.ts +30 -0
  130. package/dist/src/flow-designer/types.d.ts +142 -0
  131. package/dist/src/flow-designer/validation.d.ts +43 -0
  132. package/dist/src/flow-designer/workflow-utils.d.ts +40 -0
  133. package/dist/src/focus-ring/focus-ring.d.ts +11 -5
  134. package/dist/src/html-editor/html-editor.d.ts +56 -0
  135. package/dist/src/html-editor/index.d.ts +2 -0
  136. package/dist/src/index.d.ts +16 -1
  137. package/dist/src/link/link.d.ts +1 -1
  138. package/dist/src/menu/menu/menu.d.ts +5 -7
  139. package/dist/src/menu/menu-item/menu-item.d.ts +14 -13
  140. package/dist/src/modal/index.d.ts +1 -0
  141. package/dist/src/modal/modal.d.ts +63 -0
  142. package/dist/src/navigation-rail/index.d.ts +2 -0
  143. package/dist/src/navigation-rail/navigation-rail-item.d.ts +55 -0
  144. package/dist/src/navigation-rail/navigation-rail.d.ts +71 -0
  145. package/dist/src/notification-manager/index.d.ts +1 -0
  146. package/dist/src/notification-manager/notification-manager.d.ts +44 -0
  147. package/dist/src/popover/index.d.ts +2 -0
  148. package/dist/src/popover/popover-content.d.ts +29 -0
  149. package/dist/src/popover/popover.d.ts +62 -0
  150. package/dist/src/sidebar-menu/index.d.ts +3 -0
  151. package/dist/src/sidebar-menu/sidebar-menu-item.d.ts +58 -0
  152. package/dist/src/sidebar-menu/sidebar-menu.d.ts +38 -0
  153. package/dist/src/sidebar-menu/sidebar-sub-menu.d.ts +35 -0
  154. package/dist/src/split-button/index.d.ts +1 -0
  155. package/dist/src/split-button/split-button.d.ts +72 -0
  156. package/dist/src/toolbar/toolbar.d.ts +10 -10
  157. package/dist/src/tooltip/tooltip.d.ts +5 -15
  158. package/dist/src/url-field/index.d.ts +1 -0
  159. package/dist/src/url-field/url-field.d.ts +48 -0
  160. package/dist/test/flow-designer.test.d.ts +1 -0
  161. package/dist/test/sidebar-menu.test.d.ts +1 -0
  162. package/dist/toolbar.js +10 -10
  163. package/dist/toolbar.js.map +1 -1
  164. package/dist/tsconfig.tsbuildinfo +1 -1
  165. package/package.json +4 -2
  166. package/readme.md +73 -65
  167. package/scss/mixin.scss +16 -0
  168. package/src/__controllers/floating-controller.ts +237 -0
  169. package/src/__mixins/BaseButtonMixin.ts +83 -0
  170. package/src/__mixins/BaseHyperlinkMixin.ts +68 -0
  171. package/src/__mixins/MixinConstructor.ts +1 -0
  172. package/src/{__base_element → __mixins}/README.md +2 -2
  173. package/src/banner/banner.scss +20 -25
  174. package/src/banner/banner.ts +1 -7
  175. package/src/button/BaseButton.ts +11 -100
  176. package/src/button/button/button-sizes.scss +4 -2
  177. package/src/button/button/button.ts +77 -23
  178. package/src/button/button-group/button-group.ts +2 -2
  179. package/src/button/icon-button/icon-button.ts +75 -33
  180. package/src/calendar/base-event.ts +49 -0
  181. package/src/calendar/calendar-column-view.scss +326 -0
  182. package/src/calendar/calendar-column-view.ts +392 -0
  183. package/src/calendar/calendar-event.ts +20 -0
  184. package/src/calendar/calendar-month-view.scss +192 -0
  185. package/src/calendar/calendar-month-view.ts +244 -0
  186. package/src/calendar/calendar.scss +71 -0
  187. package/src/calendar/calendar.ts +298 -0
  188. package/src/calendar/event-manager.ts +117 -0
  189. package/src/calendar/index.ts +4 -0
  190. package/src/calendar/types.ts +14 -0
  191. package/src/calendar/utils.ts +180 -0
  192. package/src/canvas/canvas.scss +60 -0
  193. package/src/canvas/canvas.ts +391 -0
  194. package/src/canvas/index.ts +2 -0
  195. package/src/card/card.ts +11 -71
  196. package/src/chart-bar/chart-bar.ts +9 -14
  197. package/src/chart-bar/chart-stacked-bar.ts +12 -18
  198. package/src/chart-doughnut/chart-doughnut.ts +23 -27
  199. package/src/chart-pie/chart-pie.ts +19 -23
  200. package/src/checkbox/checkbox.scss +17 -34
  201. package/src/checkbox/checkbox.ts +3 -1
  202. package/src/code-highlighter/code-highlighter.scss +1 -0
  203. package/src/code-highlighter/code-highlighter.ts +1 -1
  204. package/src/condition-builder/cb-compound-expression.scss +37 -0
  205. package/src/condition-builder/cb-compound-expression.ts +80 -0
  206. package/src/condition-builder/cb-divider.scss +93 -0
  207. package/src/condition-builder/cb-divider.ts +56 -0
  208. package/src/condition-builder/cb-expression.scss +14 -0
  209. package/src/condition-builder/cb-expression.ts +49 -0
  210. package/src/condition-builder/cb-predicate.scss +35 -0
  211. package/src/condition-builder/cb-predicate.ts +102 -0
  212. package/src/condition-builder/condition-builder.scss +13 -0
  213. package/src/condition-builder/condition-builder.ts +38 -0
  214. package/src/condition-builder/index.ts +5 -0
  215. package/src/date-picker/date-picker.ts +1 -1
  216. package/src/dropdown-button/demo/index.html +110 -0
  217. package/src/dropdown-button/dropdown-button.scss +22 -0
  218. package/src/dropdown-button/dropdown-button.ts +206 -0
  219. package/src/dropdown-button/index.ts +1 -0
  220. package/src/elevation/elevation.scss +5 -5
  221. package/src/fab/fab.ts +29 -100
  222. package/src/flow-designer/DEMO.md +239 -0
  223. package/src/flow-designer/commands.ts +278 -0
  224. package/src/flow-designer/flow-designer-node.ts +172 -0
  225. package/src/flow-designer/flow-designer.scss +457 -0
  226. package/src/flow-designer/flow-designer.ts +611 -0
  227. package/src/flow-designer/index.ts +41 -0
  228. package/src/flow-designer/layout.ts +357 -0
  229. package/src/flow-designer/types.ts +166 -0
  230. package/src/flow-designer/validation.ts +284 -0
  231. package/src/flow-designer/workflow-utils.ts +282 -0
  232. package/src/focus-ring/focus-ring.ts +47 -40
  233. package/src/html-editor/html-editor.scss +146 -0
  234. package/src/html-editor/html-editor.ts +276 -0
  235. package/src/html-editor/index.ts +3 -0
  236. package/src/index.ts +28 -1
  237. package/src/input/input.ts +3 -1
  238. package/src/link/link.ts +2 -2
  239. package/src/menu/menu/menu.scss +2 -2
  240. package/src/menu/menu/menu.ts +91 -101
  241. package/src/menu/menu-item/menu-item.scss +4 -0
  242. package/src/menu/menu-item/menu-item.ts +85 -79
  243. package/src/modal/index.ts +1 -0
  244. package/src/modal/modal.scss +206 -0
  245. package/src/modal/modal.ts +201 -0
  246. package/src/navigation-rail/index.ts +2 -0
  247. package/src/navigation-rail/navigation-rail-item.scss +216 -0
  248. package/src/navigation-rail/navigation-rail-item.ts +223 -0
  249. package/src/navigation-rail/navigation-rail.scss +72 -0
  250. package/src/navigation-rail/navigation-rail.ts +149 -0
  251. package/src/notification/notification.ts +3 -2
  252. package/src/notification-manager/index.ts +1 -0
  253. package/src/notification-manager/notification-manager.scss +113 -0
  254. package/src/notification-manager/notification-manager.ts +199 -0
  255. package/src/number-field/number-field.ts +6 -4
  256. package/src/pagination/pagination.ts +6 -4
  257. package/src/peacock-loader.ts +93 -5
  258. package/src/popover/index.ts +2 -0
  259. package/src/popover/popover-content.scss +69 -0
  260. package/src/popover/popover-content.ts +51 -0
  261. package/src/popover/popover.scss +7 -0
  262. package/src/popover/popover.ts +170 -0
  263. package/src/search/search.ts +4 -0
  264. package/src/sidebar-menu/demo/index.html +68 -0
  265. package/src/sidebar-menu/index.ts +3 -0
  266. package/src/sidebar-menu/sidebar-menu-item.scss +102 -0
  267. package/src/sidebar-menu/sidebar-menu-item.ts +151 -0
  268. package/src/{tree-view/tree-view.scss → sidebar-menu/sidebar-menu.scss} +1 -1
  269. package/src/sidebar-menu/sidebar-menu.ts +182 -0
  270. package/src/sidebar-menu/sidebar-sub-menu.scss +130 -0
  271. package/src/sidebar-menu/sidebar-sub-menu.ts +160 -0
  272. package/src/skeleton/skeleton.scss +18 -24
  273. package/src/snackbar/snackbar.ts +1 -1
  274. package/src/split-button/index.ts +1 -0
  275. package/src/split-button/split-button-colors.scss +56 -0
  276. package/src/split-button/split-button-sizes.scss +28 -0
  277. package/src/split-button/split-button.scss +79 -0
  278. package/src/split-button/split-button.ts +236 -0
  279. package/src/table/table.ts +2 -2
  280. package/src/tabs/tab.ts +4 -3
  281. package/src/text/text.css-component.scss +7 -1
  282. package/src/time-picker/time-picker.ts +1 -1
  283. package/src/toolbar/toolbar.ts +10 -10
  284. package/src/tooltip/tooltip.scss +4 -3
  285. package/src/tooltip/tooltip.ts +64 -98
  286. package/src/url-field/index.ts +1 -0
  287. package/src/url-field/url-field.scss +50 -0
  288. package/src/url-field/url-field.ts +239 -0
  289. package/dist/button-DMN1dPAg.js.map +0 -1
  290. package/dist/button-group-CX9CUUXk.js +0 -435
  291. package/dist/button-group-CX9CUUXk.js.map +0 -1
  292. package/dist/fab-C5Nzxk0E.js +0 -497
  293. package/dist/fab-C5Nzxk0E.js.map +0 -1
  294. package/dist/is-dark-mode-DicqGkCJ.js.map +0 -1
  295. package/dist/select-4pl4XBj7.js.map +0 -1
  296. package/dist/spread-B5cgadZl.js +0 -32
  297. package/dist/spread-B5cgadZl.js.map +0 -1
  298. package/dist/src/__base_element/BaseHyperlink.d.ts +0 -20
  299. package/dist/src/menu/menu/MenuSurfaceController.d.ts +0 -18
  300. package/dist/src/tree-view/index.d.ts +0 -2
  301. package/dist/src/tree-view/tree-node.d.ts +0 -69
  302. package/dist/src/tree-view/tree-view.d.ts +0 -40
  303. package/dist/src/tree-view/wc-tree-view.d.ts +0 -6
  304. package/dist/test/tree-view.test.d.ts +0 -1
  305. package/dist/throttle-C7ZAPqtu.js +0 -24
  306. package/dist/throttle-C7ZAPqtu.js.map +0 -1
  307. package/src/__base_element/BaseHyperlink.ts +0 -42
  308. package/src/menu/menu/MenuSurfaceController.ts +0 -61
  309. package/src/tree-view/demo/index.html +0 -57
  310. package/src/tree-view/index.ts +0 -2
  311. package/src/tree-view/tree-node.scss +0 -101
  312. package/src/tree-view/tree-node.ts +0 -268
  313. package/src/tree-view/tree-view.ts +0 -182
  314. package/src/tree-view/wc-tree-view.ts +0 -9
@@ -1,5 +1,5 @@
1
- import { LitElement, nothing } from 'lit';
2
- import { IconProvider } from '../icon/icon.js';
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 LitElement {
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
+ }
@@ -0,0 +1,2 @@
1
+ import { HtmlEditor } from './html-editor.js';
2
+ export { HtmlEditor };