@kestra-io/ui-libs 0.0.8 → 0.0.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kestra-io/ui-libs",
3
- "version": "0.0.8",
3
+ "version": "v0.0.10",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "src",
@@ -96,6 +96,7 @@
96
96
  <style scoped>
97
97
  .content {
98
98
  display: flex;
99
+ color: var(--bs-gray-700);
99
100
 
100
101
  *:not(:first-child)::before {
101
102
  content: "";
@@ -118,4 +119,4 @@
118
119
  cursor: default;
119
120
  font-size: 0.70rem;
120
121
  }
121
- </style>
122
+ </style>
@@ -75,7 +75,4 @@
75
75
  height: 25px;
76
76
  border: 0.4px solid var(--bs-border-color);
77
77
  }
78
- .bg-white {
79
- background-color: var(--bs-white);
80
- }
81
78
  </style>
@@ -1,41 +1,41 @@
1
1
  <template>
2
2
  <div
3
- :class="[`border-${borderColor}`]"
3
+ :class="classes"
4
4
  class="node-wrapper rounded-3 border"
5
5
  @mouseover="mouseover"
6
6
  @mouseleave="mouseleave"
7
7
  >
8
- <div v-if="state" class="status-div" :class="[`bg-${stateColor}`]"/>
8
+ <div v-if="state" class="status-div" :class="[`bg-${stateColor}`]" />
9
9
  <div>
10
- <TaskIcon :icon="data.icon" :cls="cls" :class="taskIconBg"/>
10
+ <TaskIcon :icon="data.icon" :cls="cls" :class="taskIconBg" />
11
11
  </div>
12
12
  <div class="node-content">
13
- <div class="d-flex justify-content-around">
13
+ <div class="d-flex node-title">
14
14
  <div
15
15
  class="text-truncate task-title"
16
16
  data-bs-toggle="tooltip"
17
17
  data-bs-placement="top"
18
18
  :title="id"
19
19
  >
20
- <span> {{ id }} </span>
20
+ <span>{{ id }}</span>
21
21
  </div>
22
22
  <span
23
23
  class="d-flex"
24
+ v-if="description"
24
25
  data-bs-toggle="tooltip"
25
26
  data-bs-placement="top"
26
27
  :title="$t('show description')"
27
28
  >
28
29
  <InformationOutline
29
- v-if="description"
30
30
  @click="$emit(EVENTS.SHOW_DESCRIPTION, {id: id, description:description})"
31
- class="description-button mx-2"
31
+ class="description-button ms-2"
32
32
  />
33
33
  </span>
34
34
  </div>
35
- <slot name="content"/>
35
+ <slot name="content" />
36
36
  </div>
37
37
  <div class="position-absolute top-0 text-white d-flex top-button-div">
38
- <slot name="badge-button-before"/>
38
+ <slot name="badge-button-before" />
39
39
  <span
40
40
  v-if="link"
41
41
  class="rounded-button"
@@ -45,7 +45,7 @@
45
45
  data-bs-placement="top"
46
46
  :title="$t('open')"
47
47
  >
48
- <OpenInNew class="button-icon" alt="Open in new tab"/>
48
+ <OpenInNew class="button-icon" alt="Open in new tab" />
49
49
  </span>
50
50
  <span
51
51
  v-if="expandable"
@@ -56,9 +56,9 @@
56
56
  data-bs-placement="top"
57
57
  :title="$t('expand')"
58
58
  >
59
- <ArrowExpand class="button-icon" alt="Expand task"/>
59
+ <ArrowExpand class="button-icon" alt="Expand task" />
60
60
  </span>
61
- <slot name="badge-button-after"/>
61
+ <slot name="badge-button-after" />
62
62
  </div>
63
63
  </div>
64
64
  </template>
@@ -105,7 +105,8 @@
105
105
  EVENTS.ADD_ERROR,
106
106
  EVENTS.EDIT,
107
107
  EVENTS.DELETE,
108
- EVENTS.ADD_TASK
108
+ EVENTS.ADD_TASK,
109
+ EVENTS.SHOW_DESCRIPTION
109
110
  ],
110
111
  inheritAttrs: false,
111
112
  props: {
@@ -188,6 +189,13 @@
188
189
  return null;
189
190
  }
190
191
  },
192
+ classes() {
193
+ return {
194
+ [`border-${this.borderColor}`]: this.borderColor,
195
+ "disabled": this.data.node.task?.disabled,
196
+ [this.$attrs.class]: true
197
+ }
198
+ },
191
199
  linkData() {
192
200
  if(this.data.node.task) {
193
201
  return {link: VueFlowUtils.linkDatas(this.data.node.task, this.execution)}
@@ -206,7 +214,7 @@
206
214
  background-color: var(--bs-white);
207
215
 
208
216
  html.dark & {
209
- background-color: var(--card-bg);
217
+ background-color: var(--bs-gray-300);
210
218
  }
211
219
 
212
220
  width: 184px;
@@ -217,6 +225,23 @@
217
225
  z-index: 150000;
218
226
  align-items: center;
219
227
  box-shadow: 0 12px 12px 0 rgba(130, 103, 158, 0.10);
228
+
229
+ &.execution-no-taskrun {
230
+ opacity: 0.6;
231
+ }
232
+
233
+ &.disabled {
234
+ .task-title {
235
+ color: var(--bs-gray-500);
236
+ text-decoration: line-through;
237
+
238
+ html.dark & {
239
+ color: var(--bs-gray-600);
240
+ }
241
+ }
242
+
243
+ opacity: 0.4;
244
+ }
220
245
  }
221
246
 
222
247
  .node-content {
@@ -224,12 +249,15 @@
224
249
  flex-direction: column;
225
250
  justify-content: center;
226
251
  margin-left: 0.7rem;
252
+
253
+ > .node-title {
254
+ width: 125px;
255
+ }
227
256
  }
228
257
 
229
258
  .description-button {
230
259
  color: var(--bs-gray-700);
231
260
  cursor: pointer;
232
- width: 25px;
233
261
  }
234
262
 
235
263
  .material-design-icon.icon-rounded {
@@ -254,16 +282,18 @@
254
282
  .task-title {
255
283
  font-size: 0.75rem;
256
284
  font-weight: 700;
257
- line-height: 1.5rem;
258
285
  color: var(--bs-black);
259
286
 
260
287
  html.dark & {
261
288
  color: var(--bs-white);
262
289
  }
263
-
264
- width: 6rem;
265
290
  }
266
291
 
292
+ .top-button-div {
293
+ width: 100%;
294
+ justify-content: end;
295
+ transform: translate(-5%, -50%) !important;
296
+ }
267
297
 
268
298
  .status-div {
269
299
  width: 8px;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <span class="badge rounded-pill text-color" :class="[`bg-${data.color}`]">{{ id }}</span>
2
+ <span class="badge rounded-pill text-color" :class="[`bg-${data.color}`]">{{ id.replace("cluster_", "") }}</span>
3
3
  <div class="position-absolute top-0 start-100 translate-middle text-white d-flex">
4
4
  <span
5
5
  v-if="data.collapsable"
@@ -69,9 +69,15 @@
69
69
  font-size: 0.75rem;
70
70
  }
71
71
 
72
+ .badge {
73
+ top: -10px;
74
+ position: relative;
75
+ left: -3px;
76
+ }
77
+
72
78
  .text-color {
73
79
  color: var(--bs-white);
74
- font-size: 0.625rem;
80
+ font-size: 0.5rem;
75
81
  font-weight: 700;
76
82
  padding: 0.25rem 0.5rem;
77
83
  }
@@ -33,9 +33,6 @@
33
33
  ArrowExpand,
34
34
  Webhook
35
35
  },
36
- created(){
37
- console.log(this.data)
38
- },
39
36
  inheritAttrs: false,
40
37
  props: {
41
38
  id: {
@@ -109,4 +106,4 @@
109
106
  }
110
107
 
111
108
 
112
- </style>
109
+ </style>
@@ -4,6 +4,7 @@
4
4
  :id="id"
5
5
  :data="data"
6
6
  :state="state"
7
+ :class="classes"
7
8
  @show-description="forwardEvent(EVENTS.SHOW_DESCRIPTION, $event)"
8
9
  @expand="forwardEvent(EVENTS.EXPAND, id)"
9
10
  @open-link="forwardEvent(EVENTS.OPEN_LINK, $event)"
@@ -152,6 +153,11 @@
152
153
  .map((j) => j[1])
153
154
  return result[0];
154
155
  },
156
+ classes() {
157
+ return {
158
+ "execution-no-taskrun": this.execution && this.taskRuns && this.taskRuns.length === 0,
159
+ }
160
+ },
155
161
  },
156
162
  emits: [
157
163
  EVENTS.EXPAND,
@@ -4,7 +4,7 @@
4
4
  :id="id"
5
5
  :data="data"
6
6
  :color="color"
7
- @showDescription="forwardEvent(EVENTS.SHOW_DESCRIPTION, id)"
7
+ @show-description="forwardEvent(EVENTS.SHOW_DESCRIPTION, $event)"
8
8
  @expand="forwardEvent(EVENTS.EXPAND, id)"
9
9
  >
10
10
  <template #badge-button-before>
@@ -78,7 +78,8 @@
78
78
  },
79
79
  emits: [
80
80
  EVENTS.DELETE,
81
- EVENTS.EDIT
81
+ EVENTS.EDIT,
82
+ EVENTS.SHOW_DESCRIPTION
82
83
  ],
83
84
  components: {
84
85
  Delete, Pencil,
@@ -108,4 +109,4 @@
108
109
  }
109
110
  }
110
111
  }
111
- </script>
112
+ </script>
@@ -21,7 +21,7 @@
21
21
  import {VueFlowUtils, YamlUtils} from "../../index.js";
22
22
  import Utils from "../../utils/Utils.js";
23
23
  import VueflowUtils from "../../utils/VueFlowUtils.js";
24
- import {CLUSTER_UID_SEPARATOR} from "../../utils/constants.js";
24
+ import {CLUSTER_UID_SEPARATOR, EVENTS} from "../../utils/constants.js";
25
25
  import {Background} from "@vue-flow/background";
26
26
 
27
27
  const props = defineProps({
@@ -80,13 +80,13 @@
80
80
 
81
81
  const emit = defineEmits(
82
82
  [
83
- "edit",
84
- "delete",
85
- "open-link",
86
- "show-logs",
87
- "show-description",
83
+ EVENTS.EDIT,
84
+ EVENTS.DELETE,
85
+ EVENTS.OPEN_LINK,
86
+ EVENTS.SHOW_LOGS,
87
+ EVENTS.SHOW_DESCRIPTION,
88
88
  "on-add-flowable-error",
89
- "add-task",
89
+ EVENTS.ADD_TASK,
90
90
  "toggle-orientation",
91
91
  "loading",
92
92
  "swapped-task",
@@ -326,6 +326,7 @@
326
326
  :is-allowed-edit="isAllowedEdit"
327
327
  @delete="forwardEvent('delete', $event)"
328
328
  @edit="forwardEvent('edit', $event)"
329
+ @show-description="forwardEvent('show-description', $event)"
329
330
  />
330
331
  </template>
331
332
 
@@ -358,4 +359,4 @@
358
359
 
359
360
  <style scoped lang="scss">
360
361
 
361
- </style>
362
+ </style>
@@ -16,18 +16,17 @@ $green: #03DABA !default;
16
16
  $teal: #03D87F !default;
17
17
  $cyan: #60C5FE !default;
18
18
 
19
-
20
19
  // gray
21
20
  $white: #FFF !default;
22
21
  $gray-100: #F5F5FF !default;
23
- $gray-200: #F0F0FF !default;
22
+ $gray-200: #f1f5fa !default;
24
23
  $gray-300: #E5E4F7 !default;
25
- $gray-400: #D1CFE9 !default;
26
- $gray-500: #B8B6D9 !default;
27
- $gray-600: #A6A4CA !default;
28
- $gray-700: #9A8EB4 !default;
29
- $gray-800: #7E719F !default;
30
- $gray-900: #564A75 !default;
24
+ $gray-400: #b6c2e4 !default;
25
+ $gray-500: #8997bd !default;
26
+ $gray-600: #7081b9 !default;
27
+ $gray-700: #303e67 !default;
28
+ $gray-800: #2c3652 !default;
29
+ $gray-900: #1d2c48 !default;
31
30
  $black: #26282D !default;
32
31
 
33
32
  $light: $gray-200 !default;
@@ -35,21 +34,10 @@ $dark: $gray-900 !default;
35
34
 
36
35
  // fonts
37
36
  $font-size-base: 1rem !default;
38
- $font-size-xs: $font-size-base * .75;
39
- $font-size-sm: $font-size-base * .875;
40
- $font-size-lg: $font-size-base * 1.25;
41
- $font-size-xl: $font-size-base * 1.375;
42
37
  $font-family-sans-serif: "Public Sans", sans-serif;
43
38
  $font-family-monospace: "Source Code Pro", monospace;
44
39
  $font-size-xs: $font-size-base * 0.75 !default;
45
40
 
46
- $h1-font-size: $font-size-base * 3.375;
47
- $h2-font-size: $font-size-base * 2.5;
48
- $h3-font-size: $font-size-base * 2;
49
- $h4-font-size: $font-size-base * 1.375;
50
- $h5-font-size: $font-size-base * 1.25;
51
- $h6-font-size: $font-size-base * 1.125;
52
-
53
41
  // border radius
54
42
  $border-radius: 0.25rem !default;
55
43
  $border-radius-lg: 0.5rem !default;
@@ -81,45 +69,6 @@ $box-shadow-sm: 0 .125rem .25rem rgba($black, .075);
81
69
  $box-shadow: 0 .5rem 1rem rgba($black, .15);
82
70
  $box-shadow-lg: 0 1rem 3rem rgba($black, .175);
83
71
 
84
- // button
85
- $btn-font-size-lg: 18px;
86
-
87
- // grid
88
- $grid-gutter-width: 1.75rem;
89
-
90
- // nav
91
- $nav-pills-border-radius: 50rem;
92
-
93
- // accordion
94
- $accordion-icon-color: $white;
95
- $accordion-icon-active-color: $white;
96
-
97
- // purples
98
- $purple-1: #382369;
99
- $purple-2: #FBC7F4;
100
- $purple-3: #9580EE;
101
- $purple-4: linear-gradient(160.34deg, rgba(130, 0, 255, 0.12) 5.3%, rgba(130, 0, 255, 0) 75.43%), #201838;
102
- $purple-5: #362762;
103
- $purple-6: #6113BC;
104
- $purple-7: #1A1223;
105
- $purple-8: #EEEDFF;
106
- $purple-9: 0px 12.972px 39.7269px rgba(90, 0, 176, 0.1);
107
- $purple-10: #150E1C;
108
- $purple-11: #332C3B;
109
- $purple-12: #432A71;
110
- $purple-16: #281A35;
111
- $purple-19: conic-gradient(from 90deg at 50% 50%, #BE79FF 0deg, #7136F6 360deg);
112
- $purple-20: #291E39;
113
- $purple-21: #A42DCD;
114
- $purple-22: #FCF7FE;
115
- $purple-23: #EDE8F3;
116
- $purple-24: #15023F;
117
- $purple-26: #DCCDEB;
118
- $purple-27: #8200FF;
119
- $purple-28: #2D313E;
120
- $purple-29: #F1F5FF;
121
- $purple-30: rgba(255, 255, 255, 0.1);
122
-
123
72
  // boostrap flags
124
73
  $enable-reduced-motion: false;
125
74
 
package/src/scss/app.scss CHANGED
@@ -1,51 +1,44 @@
1
1
  @import "variables";
2
2
 
3
3
  .material-design-icon > .material-design-icon__svg {
4
- bottom: 0;
4
+ bottom: 0;
5
5
  }
6
6
 
7
7
  .vue-flow__node-cluster {
8
- pointer-events: none !important;
8
+ pointer-events: none !important;
9
9
  }
10
10
 
11
11
  marker[id*='id=marker-custom&type=arrowclosed'] polyline {
12
- stroke: $gray-700;
13
- fill: $gray-700;
12
+ stroke: $gray-700;
13
+ fill: $gray-700;
14
14
  }
15
15
 
16
16
  marker[id*='id=marker-danger&type=arrowclosed'] polyline {
17
- stroke: $danger;
18
- fill: $danger;
17
+ stroke: $danger;
18
+ fill: $danger;
19
19
  }
20
20
 
21
21
  .vue-flow__handle {
22
- opacity: 0 !important;
22
+ opacity: 0 !important;
23
23
  }
24
24
 
25
25
  .vue-flow__edge-path {
26
- stroke: $gray-700;
27
- }
28
-
29
-
30
- .top-button-div {
31
- width: 100%;
32
- justify-content: end;
33
- transform: translate(-5%, -50%) !important;
26
+ stroke: $gray-700;
34
27
  }
35
28
 
36
29
  .rounded-button {
37
- border-radius: 1rem;
38
- width: 1rem;
39
- height: 1rem;
40
- display: flex;
41
- justify-content: center;
42
- align-items: center;
43
- margin-left: 0.25rem;
44
- z-index: 2000;
30
+ border-radius: 1rem;
31
+ width: 1rem;
32
+ height: 1rem;
33
+ display: flex;
34
+ justify-content: center;
35
+ align-items: center;
36
+ margin-left: 0.25rem;
37
+ z-index: 2000;
45
38
  }
46
39
 
47
40
  .button-icon {
48
- font-size: 0.66rem;
41
+ font-size: 0.66rem;
49
42
  }
50
43
 
51
44
 
@@ -16,46 +16,29 @@ $custom-colors: (
16
16
  $theme-colors: map-merge($theme-colors, $custom-colors);
17
17
 
18
18
  @each $color, $value in $theme-colors {
19
- html.dark {
20
- .border-#{$color} {
21
- border-color: $color;
22
- }
19
+ html.dark {
20
+ .border-#{$color} {
21
+ border-color: $color;
22
+ }
23
23
 
24
- .bg-#{$color} {
25
- background-color: $value;
26
- }
24
+ .bg-#{$color} {
25
+ background-color: $value;
26
+ }
27
27
 
28
- .bg-light-#{$color}-border {
29
- background-color: rgba($value, 0.05);
30
- border: 1px solid $value;
31
- }
28
+ .bg-light-#{$color}-border {
29
+ background-color: rgba($value, 0.05);
30
+ border: 1px solid $value;
31
+ }
32
32
 
33
- .border-execution-#{$color} {
34
- border-left: 0.8125rem;
35
- border-color: $value;
33
+ .border-execution-#{$color} {
34
+ border-left: 0.8125rem;
35
+ border-color: $value;
36
36
 
37
- }
37
+ }
38
38
 
39
- .stroke-#{$color} {
40
- stroke: $value;
39
+ .stroke-#{$color} {
40
+ stroke: $value;
41
+ }
41
42
  }
42
- }
43
43
  }
44
44
 
45
-
46
- .tooltip {
47
- html.dark & {
48
- color: $white;
49
- background-color: $card-bg;
50
- border-radius: $border-radius;
51
- padding: calc($spacer / 3);
52
- font-size: $font-size-xs;
53
- border: 1px solid $border-color;
54
- }
55
- }
56
-
57
-
58
- // overload
59
- .font-monospace {
60
- font-size: $font-size-base * 0.7;
61
- }
@@ -27,6 +27,7 @@ $include-column-box-sizing: true !default;
27
27
 
28
28
  @import "bootstrap/scss/progress";
29
29
  @import "bootstrap/scss/type";
30
+ @import "bootstrap/scss/tooltip";
30
31
 
31
32
  @import "bootstrap/scss/helpers/text-truncation";
32
33
 
@@ -41,42 +42,46 @@ $custom-colors: (
41
42
  $theme-colors: map-merge($theme-colors, $custom-colors);
42
43
 
43
44
  @each $color, $value in $theme-colors {
44
- .border-#{$color} {
45
- border-color: $value !important;
46
- }
45
+ .border-#{$color} {
46
+ border-color: $value !important;
47
+ }
47
48
 
48
- .bg-#{$color} {
49
- background-color: $value;
50
- }
49
+ .bg-#{$color} {
50
+ background-color: $value;
51
+ }
51
52
 
52
- .bg-light-#{$color}-border {
53
- background-color: rgba($value, 0.05);
54
- border: 1px solid $value;
55
- }
53
+ .bg-light-#{$color}-border {
54
+ background-color: rgba($value, 0.05);
55
+ border: 1px solid $value;
56
+ }
56
57
 
57
- .border-execution-#{$color} {
58
- border-left: 0.8125rem !important;
59
- border-color: $value !important;
58
+ .border-execution-#{$color} {
59
+ border-left: 0.8125rem !important;
60
+ border-color: $value !important;
60
61
 
61
- }
62
+ }
62
63
 
63
- .stroke-#{$color} {
64
- stroke: $value;
65
- }
66
- }
67
-
68
-
69
- .tooltip {
70
- color: $black;
71
- background-color: $card-bg;
72
- border-radius: $border-radius-lg;
73
- padding: calc($spacer/3);
74
- font-size: $font-size-xs;
75
- border: 1px solid $border-color;
64
+ .stroke-#{$color} {
65
+ stroke: $value;
66
+ }
76
67
  }
77
68
 
78
69
 
79
70
  // overload
80
71
  .font-monospace {
81
- font-size: $font-size-base * 0.7;
72
+ font-size: $font-size-base * 0.7;
73
+ }
74
+
75
+ // tooltip
76
+ .tooltip {
77
+ font-size: 12px;
78
+ line-height: 20px;
79
+ --bs-tooltip-bg: var(--bs-gray-900);
80
+ --bs-tooltip-color: var(--bs-gray-100);
81
+ --bs-tooltip-opacity: 1;
82
+
83
+ html.dark & {
84
+ --bs-tooltip-color: var(--bs-gray-900);
85
+ --bs-tooltip-bg: var(--bs-gray-100);
86
+ }
82
87
  }