@redvars/peacock 3.8.6 → 3.9.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.
Files changed (85) hide show
  1. package/dist/code-highlighter.js +1 -4
  2. package/dist/code-highlighter.js.map +1 -1
  3. package/dist/custom-elements-jsdocs.json +93 -213
  4. package/dist/custom-elements.json +488 -2149
  5. package/dist/elevation.js +55 -2
  6. package/dist/elevation.js.map +1 -1
  7. package/dist/flow.js +762 -0
  8. package/dist/flow.js.map +1 -0
  9. package/dist/index.js +3 -3
  10. package/dist/loader.js +10 -9
  11. package/dist/loader.js.map +1 -1
  12. package/dist/menu-item.js +144 -63
  13. package/dist/menu-item.js.map +1 -1
  14. package/dist/menu.js +161 -73
  15. package/dist/menu.js.map +1 -1
  16. package/dist/src/flow/flow.d.ts +102 -0
  17. package/dist/src/flow/index.d.ts +2 -0
  18. package/dist/src/index.d.ts +3 -4
  19. package/dist/src/menu/menu/menu.d.ts +10 -9
  20. package/dist/src/menu/menu-item/menu-item.d.ts +1 -3
  21. package/dist/src/timeline/index.d.ts +2 -0
  22. package/dist/src/timeline/timeline-item.d.ts +23 -0
  23. package/dist/src/timeline/timeline.d.ts +26 -0
  24. package/dist/sub-menu.js +28 -1
  25. package/dist/sub-menu.js.map +1 -1
  26. package/dist/timeline-item.js +163 -0
  27. package/dist/timeline-item.js.map +1 -0
  28. package/dist/timeline.js +52 -0
  29. package/dist/timeline.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +3 -2
  32. package/readme.md +2 -2
  33. package/src/code-highlighter/code-highlighter.scss +1 -7
  34. package/src/elevation/demo/index.html +52 -0
  35. package/src/elevation/elevation.scss +52 -5
  36. package/src/elevation/elevation.ts +8 -1
  37. package/src/flow/flow.scss +195 -0
  38. package/src/flow/flow.ts +683 -0
  39. package/src/flow/index.ts +2 -0
  40. package/src/index.ts +3 -16
  41. package/src/loader.ts +10 -9
  42. package/src/menu/menu/copy-component-files.mjs +47 -0
  43. package/src/menu/menu/menu.scss +55 -17
  44. package/src/menu/menu/menu.ts +155 -84
  45. package/src/menu/menu-item/menu-item-colors.scss +3 -3
  46. package/src/menu/menu-item/menu-item.scss +118 -24
  47. package/src/menu/menu-item/menu-item.ts +61 -55
  48. package/src/menu/sub-menu/sub-menu.scss +30 -1
  49. package/src/timeline/index.ts +2 -0
  50. package/src/timeline/timeline-item.scss +98 -0
  51. package/src/timeline/timeline-item.ts +63 -0
  52. package/src/timeline/timeline.scss +11 -0
  53. package/src/timeline/timeline.ts +41 -0
  54. package/dist/canvas.js +0 -385
  55. package/dist/canvas.js.map +0 -1
  56. package/dist/flow-designer-node-CGSm6cUH.js +0 -553
  57. package/dist/flow-designer-node-CGSm6cUH.js.map +0 -1
  58. package/dist/flow-designer-node.js +0 -4
  59. package/dist/flow-designer-node.js.map +0 -1
  60. package/dist/flow-designer.js +0 -1417
  61. package/dist/flow-designer.js.map +0 -1
  62. package/dist/src/canvas/canvas.d.ts +0 -92
  63. package/dist/src/canvas/index.d.ts +0 -2
  64. package/dist/src/flow-designer/commands.d.ts +0 -66
  65. package/dist/src/flow-designer/flow-designer-node.d.ts +0 -46
  66. package/dist/src/flow-designer/flow-designer.d.ts +0 -133
  67. package/dist/src/flow-designer/index.d.ts +0 -7
  68. package/dist/src/flow-designer/layout.d.ts +0 -30
  69. package/dist/src/flow-designer/types.d.ts +0 -142
  70. package/dist/src/flow-designer/validation.d.ts +0 -43
  71. package/dist/src/flow-designer/workflow-utils.d.ts +0 -40
  72. package/src/canvas/canvas.scss +0 -72
  73. package/src/canvas/canvas.ts +0 -413
  74. package/src/canvas/index.ts +0 -2
  75. package/src/flow-designer/DEMO.md +0 -239
  76. package/src/flow-designer/commands.ts +0 -278
  77. package/src/flow-designer/flow-designer-node.ts +0 -172
  78. package/src/flow-designer/flow-designer.scss +0 -457
  79. package/src/flow-designer/flow-designer.ts +0 -611
  80. package/src/flow-designer/index.ts +0 -41
  81. package/src/flow-designer/layout.ts +0 -357
  82. package/src/flow-designer/types.ts +0 -166
  83. package/src/flow-designer/validation.ts +0 -284
  84. package/src/flow-designer/workflow-utils.ts +0 -282
  85. /package/dist/test/{flow-designer.test.d.ts → elevation.test.d.ts} +0 -0
@@ -1,457 +0,0 @@
1
- @use '../../scss/mixin';
2
-
3
- @include mixin.base-styles;
4
-
5
- :host {
6
- display: block;
7
- --flow-designer-height: 600px;
8
- --flow-designer-border-color: var(--color-outline-variant);
9
- --flow-designer-background: var(--color-surface);
10
- --flow-designer-border-radius: var(--shape-corner-medium);
11
- --flow-designer-action-bar-bg: var(--color-surface-container);
12
- }
13
-
14
- .flow-designer-container {
15
- position: relative;
16
- width: 100%;
17
- height: var(--flow-designer-height);
18
- display: flex;
19
- flex-direction: column;
20
- overflow: hidden;
21
- }
22
-
23
- // Toolbar
24
- .editor-toolbar {
25
- position: absolute;
26
- top: 0.75rem;
27
- right: 0.75rem;
28
- z-index: 6;
29
-
30
- .zoom-display {
31
- font-size: 12px;
32
- color: var(--color-on-surface-variant);
33
- min-width: 40px;
34
- text-align: center;
35
- font-weight: 500;
36
- }
37
-
38
- wc-icon-button {
39
- --button-container-shape: var(--shape-corner-full);
40
- }
41
- }
42
-
43
- // Validation panel
44
- .validation-panel {
45
- position: absolute;
46
- left: 0.75rem;
47
- right: 0.75rem;
48
- top: 4.5rem;
49
- z-index: 5;
50
- background: var(--color-error-container);
51
- color: var(--color-on-error-container);
52
- padding: 0.75rem;
53
- border: 1px solid var(--color-outline-variant);
54
- border-radius: var(--shape-corner-medium);
55
- max-height: 120px;
56
- overflow-y: auto;
57
-
58
- .validation-item {
59
- display: flex;
60
- gap: 0.5rem;
61
- align-items: center;
62
- margin-bottom: 0.5rem;
63
-
64
- &.error {
65
- color: var(--color-error);
66
- }
67
-
68
- &.warning {
69
- color: var(--color-warning);
70
- }
71
-
72
- wc-icon {
73
- flex-shrink: 0;
74
- --icon-size: 18px;
75
- }
76
-
77
- span {
78
- font-size: 12px;
79
- white-space: pre-wrap;
80
- }
81
-
82
- &:last-child {
83
- margin-bottom: 0;
84
- }
85
- }
86
- }
87
-
88
- // Main flow designer
89
- .flow-designer {
90
- flex: 1;
91
- overflow: auto;
92
- position: relative;
93
- border-radius: var(--flow-designer-border-radius);
94
- background-color: var(--flow-designer-background);
95
- border: 1px solid var(--flow-designer-border-color);
96
- cursor: grab;
97
-
98
- &:active {
99
- cursor: grabbing;
100
- }
101
-
102
- .canvas-container {
103
- position: relative;
104
- min-width: 1000px;
105
- min-height: 600px;
106
- transform-origin: 0 0;
107
- }
108
- }
109
-
110
- // SVG Connectors layer
111
- .connectors-layer {
112
- position: absolute;
113
- top: 0;
114
- left: 0;
115
- pointer-events: none;
116
- z-index: 2;
117
- overflow: visible;
118
- color: var(--color-outline-variant);
119
-
120
- .connector {
121
- fill: none;
122
- stroke: var(--color-outline-variant, #64748b);
123
- stroke-width: 2;
124
- stroke-linecap: round;
125
- stroke-linejoin: round;
126
-
127
- &.straight {
128
- stroke-dasharray: none;
129
- }
130
-
131
- &.curved {
132
- stroke-dasharray: 5, 5;
133
- }
134
-
135
- &.branch {
136
- stroke: var(--color-primary);
137
- opacity: 0.7;
138
- }
139
-
140
- &.fork {
141
- stroke: var(--color-secondary);
142
- stroke-width: 2.5;
143
- }
144
-
145
- &.join {
146
- stroke: var(--color-tertiary);
147
- stroke-width: 2.5;
148
- }
149
- }
150
- }
151
-
152
- marker#arrowhead polygon {
153
- fill: var(--color-outline-variant);
154
- }
155
-
156
- // Swimlanes
157
- .swimlanes-container {
158
- position: absolute;
159
- inset: 0;
160
- z-index: 1;
161
- pointer-events: none;
162
-
163
- .swimlane {
164
- position: absolute;
165
- left: 0;
166
- right: 0;
167
- background: color-mix(in srgb, var(--color-surface-container-low) 75%, transparent);
168
- border-top: 1px solid var(--color-outline-variant);
169
- border-bottom: 1px solid var(--color-outline-variant);
170
- overflow: hidden;
171
-
172
- &.parallel {
173
- border-color: var(--color-secondary);
174
- border-top-width: 2px;
175
- border-bottom-width: 2px;
176
- }
177
-
178
- .swimlane-header {
179
- background: var(--color-surface-container);
180
- position: absolute;
181
- top: 0.5rem;
182
- left: 0.75rem;
183
- padding: 0.35rem 0.6rem;
184
- font-size: 13px;
185
- font-weight: 500;
186
- color: var(--color-on-surface);
187
- border: 1px solid var(--color-outline-variant);
188
- border-radius: var(--shape-corner-medium);
189
- text-overflow: ellipsis;
190
- white-space: nowrap;
191
- overflow: hidden;
192
- max-width: 250px;
193
- }
194
- }
195
- }
196
-
197
- .nodes-layer {
198
- position: absolute;
199
- inset: 0;
200
- width: 100%;
201
- height: 100%;
202
- z-index: 3;
203
- pointer-events: none;
204
- }
205
-
206
- // Node card
207
- .node-card {
208
- position: relative;
209
- background: var(--color-surface-container);
210
- border: 2px solid var(--color-outline-variant);
211
- border-radius: var(--shape-corner-medium);
212
- padding: 1rem;
213
- height: 100%;
214
- display: flex;
215
- flex-direction: column;
216
- cursor: pointer;
217
- transition: all 200ms ease;
218
- overflow: hidden;
219
-
220
- .node-header {
221
- display: flex;
222
- gap: 0.5rem;
223
- align-items: center;
224
- margin-bottom: 0.5rem;
225
-
226
- .node-icon {
227
- flex-shrink: 0;
228
- --icon-size: 20px;
229
- color: var(--color-primary);
230
- }
231
-
232
- .node-title {
233
- font-weight: 500;
234
- font-size: 13px;
235
- color: var(--color-on-surface);
236
- overflow: hidden;
237
- text-overflow: ellipsis;
238
- white-space: nowrap;
239
- flex: 1;
240
- }
241
- }
242
-
243
- .node-body {
244
- flex: 1;
245
- display: flex;
246
- flex-direction: column;
247
- overflow: hidden;
248
-
249
- .node-description {
250
- font-size: 12px;
251
- color: var(--color-on-surface-variant);
252
- margin: 0 0 0.5rem 0;
253
- line-height: 1.3;
254
- overflow: hidden;
255
- text-overflow: ellipsis;
256
- display: -webkit-box;
257
- -webkit-line-clamp: 2;
258
- -webkit-box-orient: vertical;
259
- }
260
-
261
- .node-metadata {
262
- display: flex;
263
- gap: 0.5rem;
264
- flex-wrap: wrap;
265
- margin-top: auto;
266
-
267
- .node-type-tag {
268
- display: inline-block;
269
- background: var(--color-primary-container);
270
- color: var(--color-on-primary-container);
271
- padding: 2px 6px;
272
- border-radius: var(--shape-corner-small);
273
- font-size: 11px;
274
- font-weight: 500;
275
- }
276
-
277
- .node-id {
278
- display: inline-block;
279
- color: var(--color-on-surface-variant);
280
- font-size: 11px;
281
- font-family: monospace;
282
- opacity: 0.7;
283
- }
284
- }
285
- }
286
-
287
- .node-actions {
288
- display: flex;
289
- gap: 0.5rem;
290
- margin-top: 0.5rem;
291
- padding-top: 0.5rem;
292
- border-top: 1px solid var(--color-outline-variant);
293
-
294
- .btn-sm {
295
- flex: 1;
296
- padding: 4px 8px;
297
- font-size: 11px;
298
- border: 1px solid var(--color-outline);
299
- background: var(--color-surface);
300
- border-radius: var(--shape-corner-small);
301
- cursor: pointer;
302
- color: var(--color-on-surface);
303
- transition: background 200ms ease;
304
-
305
- &:hover {
306
- background: var(--color-surface-container-highest);
307
- }
308
- }
309
- }
310
-
311
- // Node type variants
312
- &.trigger {
313
- border-left: 4px solid var(--color-success);
314
-
315
- .node-icon {
316
- color: var(--color-success);
317
- }
318
- }
319
-
320
- &.action {
321
- border-left: 4px solid var(--color-info);
322
-
323
- .node-icon {
324
- color: var(--color-info);
325
- }
326
- }
327
-
328
- &.decision {
329
- border-left: 4px solid var(--color-warning);
330
-
331
- .node-icon {
332
- color: var(--color-warning);
333
- }
334
- }
335
-
336
- &.loop_start,
337
- &.loop_end {
338
- border-left: 4px solid var(--color-secondary);
339
-
340
- .node-icon {
341
- color: var(--color-secondary);
342
- }
343
- }
344
-
345
- &.fork,
346
- &.join {
347
- border-left: 4px solid var(--color-tertiary);
348
-
349
- .node-icon {
350
- color: var(--color-tertiary);
351
- }
352
- }
353
-
354
- // Selection state
355
- &[selected] {
356
- border-color: var(--color-primary);
357
- border-width: 2px;
358
- box-shadow: 0 0 8px rgba(var(--color-primary-rgb), 0.3);
359
- }
360
-
361
- // Editing state
362
- &[editing] {
363
- background: var(--color-surface-container-highest);
364
- border-color: var(--color-primary);
365
- }
366
-
367
- // Hover state
368
- &:not([disabled]):hover {
369
- border-color: var(--color-primary);
370
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
371
- }
372
-
373
- // Disabled state
374
- &[disabled] {
375
- opacity: 0.5;
376
- cursor: not-allowed;
377
- }
378
- }
379
-
380
- // Positioned node wrapper
381
- .positioned-node {
382
- position: absolute;
383
- pointer-events: auto;
384
- }
385
-
386
- // Empty state
387
- .empty-state {
388
- display: flex;
389
- align-items: center;
390
- justify-content: center;
391
- height: 100%;
392
- color: var(--color-on-surface-variant);
393
- font-size: 14px;
394
- }
395
-
396
- // Host disabled state
397
- :host([disabled]) {
398
- pointer-events: none;
399
- opacity: 0.38;
400
- }
401
-
402
- // Responsive adjustments
403
- @media (max-width: 768px) {
404
- .editor-toolbar {
405
- top: 0.5rem;
406
- right: 0.5rem;
407
- }
408
-
409
- .node-card {
410
- padding: 0.75rem;
411
-
412
- .node-header {
413
- .node-icon {
414
- --icon-size: 18px;
415
- }
416
-
417
- .node-title {
418
- font-size: 12px;
419
- }
420
- }
421
-
422
- .node-body {
423
- .node-description {
424
- font-size: 11px;
425
- }
426
- }
427
- }
428
- }
429
-
430
- // Animation for node appearance
431
- @keyframes slideIn {
432
- from {
433
- opacity: 0;
434
- transform: scale(0.9);
435
- }
436
- to {
437
- opacity: 1;
438
- transform: scale(1);
439
- }
440
- }
441
-
442
- .node-card {
443
- animation: slideIn 200ms ease-out;
444
- }
445
-
446
- // Print styles
447
- @media print {
448
- .editor-toolbar,
449
- .validation-panel {
450
- display: none;
451
- }
452
-
453
- .flow-designer {
454
- border: none;
455
- overflow: visible;
456
- }
457
- }