@medalsocial/meda 2.8.1 → 3.2.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 (103) hide show
  1. package/README.md +130 -1
  2. package/dist/booking/add-child-sheet.d.ts +38 -0
  3. package/dist/booking/add-child-sheet.js +88 -0
  4. package/dist/booking/booking-skeleton.d.ts +24 -0
  5. package/dist/booking/booking-skeleton.js +17 -0
  6. package/dist/booking/confirmation.d.ts +85 -0
  7. package/dist/booking/confirmation.js +102 -0
  8. package/dist/booking/details-screen.d.ts +118 -0
  9. package/dist/booking/details-screen.js +314 -0
  10. package/dist/booking/format.d.ts +64 -0
  11. package/dist/booking/format.js +1 -0
  12. package/dist/booking/index.d.ts +35 -0
  13. package/dist/booking/index.js +40 -0
  14. package/dist/booking/internal/label-parts.d.ts +8 -0
  15. package/dist/booking/internal/label-parts.js +19 -0
  16. package/dist/booking/internal/ui.d.ts +33 -0
  17. package/dist/booking/internal/ui.js +35 -0
  18. package/dist/booking/label-keys.d.ts +34 -0
  19. package/dist/booking/label-keys.js +56 -0
  20. package/dist/booking/labels.d.ts +15 -0
  21. package/dist/booking/labels.js +17 -0
  22. package/dist/booking/live-status.d.ts +14 -0
  23. package/dist/booking/live-status.js +17 -0
  24. package/dist/booking/login-panel.d.ts +108 -0
  25. package/dist/booking/login-panel.js +239 -0
  26. package/dist/booking/login-sheet.d.ts +41 -0
  27. package/dist/booking/login-sheet.js +49 -0
  28. package/dist/booking/manage-screen.d.ts +113 -0
  29. package/dist/booking/manage-screen.js +369 -0
  30. package/dist/booking/otp-slots.d.ts +42 -0
  31. package/dist/booking/otp-slots.js +109 -0
  32. package/dist/booking/portal/account-card.d.ts +24 -0
  33. package/dist/booking/portal/account-card.js +18 -0
  34. package/dist/booking/portal/action-result.d.ts +30 -0
  35. package/dist/booking/portal/action-result.js +18 -0
  36. package/dist/booking/portal/age-confirm-card.d.ts +39 -0
  37. package/dist/booking/portal/age-confirm-card.js +42 -0
  38. package/dist/booking/portal/child-cards.d.ts +65 -0
  39. package/dist/booking/portal/child-cards.js +59 -0
  40. package/dist/booking/portal/data-controls.d.ts +48 -0
  41. package/dist/booking/portal/data-controls.js +103 -0
  42. package/dist/booking/portal/family-editor.d.ts +141 -0
  43. package/dist/booking/portal/family-editor.js +422 -0
  44. package/dist/booking/portal/logout-button.d.ts +21 -0
  45. package/dist/booking/portal/logout-button.js +27 -0
  46. package/dist/booking/portal/portal-shell.d.ts +71 -0
  47. package/dist/booking/portal/portal-shell.js +38 -0
  48. package/dist/booking/portal/portal-unreachable.d.ts +31 -0
  49. package/dist/booking/portal/portal-unreachable.js +19 -0
  50. package/dist/booking/portal/profile-form.d.ts +75 -0
  51. package/dist/booking/portal/profile-form.js +144 -0
  52. package/dist/booking/portal/rebook-cards.d.ts +44 -0
  53. package/dist/booking/portal/rebook-cards.js +35 -0
  54. package/dist/booking/portal/upcoming-bookings.d.ts +65 -0
  55. package/dist/booking/portal/upcoming-bookings.js +88 -0
  56. package/dist/booking/portal/vipps-link-row.d.ts +54 -0
  57. package/dist/booking/portal/vipps-link-row.js +80 -0
  58. package/dist/booking/portal/visit-history.d.ts +63 -0
  59. package/dist/booking/portal/visit-history.js +73 -0
  60. package/dist/booking/service-screen.d.ts +137 -0
  61. package/dist/booking/service-screen.js +233 -0
  62. package/dist/booking/slots.d.ts +12 -0
  63. package/dist/booking/slots.js +5 -0
  64. package/dist/booking/stylist-screen.d.ts +117 -0
  65. package/dist/booking/stylist-screen.js +226 -0
  66. package/dist/booking/summary-bar.d.ts +26 -0
  67. package/dist/booking/summary-bar.js +32 -0
  68. package/dist/booking/time-screen.d.ts +191 -0
  69. package/dist/booking/time-screen.js +418 -0
  70. package/dist/booking/types.d.ts +284 -0
  71. package/dist/booking/types.js +15 -0
  72. package/dist/booking/vipps-button.d.ts +49 -0
  73. package/dist/booking/vipps-button.js +33 -0
  74. package/dist/booking/who-screen.d.ts +121 -0
  75. package/dist/booking/who-screen.js +164 -0
  76. package/dist/primitives/avatar.d.ts +24 -0
  77. package/dist/primitives/avatar.js +44 -0
  78. package/dist/primitives/button.d.ts +21 -0
  79. package/dist/primitives/button.js +51 -0
  80. package/dist/primitives/checkbox.d.ts +23 -0
  81. package/dist/primitives/checkbox.js +20 -0
  82. package/dist/primitives/field.d.ts +47 -0
  83. package/dist/primitives/field.js +48 -0
  84. package/dist/primitives/index.d.ts +16 -0
  85. package/dist/primitives/index.js +8 -0
  86. package/dist/primitives/input.d.ts +10 -0
  87. package/dist/primitives/input.js +9 -0
  88. package/dist/primitives/sheet.d.ts +68 -0
  89. package/dist/primitives/sheet.js +303 -0
  90. package/dist/primitives/textarea.d.ts +14 -0
  91. package/dist/primitives/textarea.js +13 -0
  92. package/dist/primitives/toggle-group.d.ts +46 -0
  93. package/dist/primitives/toggle-group.js +148 -0
  94. package/dist/styles/base.css +40 -0
  95. package/dist/styles/booking.css +10 -0
  96. package/dist/styles/bridge.css +159 -0
  97. package/dist/styles/calendar.css +8 -0
  98. package/dist/styles/primitives.css +10 -0
  99. package/dist/styles/theme.css +12 -162
  100. package/dist/styles/vendor/xyflow.css +626 -0
  101. package/dist/styles/workflow-builder.css +17 -0
  102. package/package.json +45 -9
  103. package/skills/components/SKILL.md +53 -0
@@ -0,0 +1,626 @@
1
+ /*! Vendored from @xyflow/react@12.11.6 dist/style.css — MIT License, (c) webkid GmbH. https://github.com/xyflow/xyflow */
2
+ /* this gets exported as style.css and can be used for the default theming */
3
+ /* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */
4
+ .react-flow {
5
+ direction: ltr;
6
+
7
+ --xy-edge-stroke-default: #b1b1b7;
8
+ --xy-edge-stroke-width-default: 1;
9
+ --xy-edge-stroke-selected-default: #555;
10
+
11
+ --xy-connectionline-stroke-default: #b1b1b7;
12
+ --xy-connectionline-stroke-width-default: 1;
13
+
14
+ --xy-attribution-background-color-default: rgba(255, 255, 255, 0.5);
15
+
16
+ --xy-minimap-background-color-default: #fff;
17
+ --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.6);
18
+ --xy-minimap-mask-stroke-color-default: transparent;
19
+ --xy-minimap-mask-stroke-width-default: 1;
20
+ --xy-minimap-node-background-color-default: #e2e2e2;
21
+ --xy-minimap-node-stroke-color-default: transparent;
22
+ --xy-minimap-node-stroke-width-default: 2;
23
+
24
+ --xy-background-color-default: transparent;
25
+ --xy-background-pattern-dots-color-default: #91919a;
26
+ --xy-background-pattern-lines-color-default: #eee;
27
+ --xy-background-pattern-cross-color-default: #e2e2e2;
28
+ background-color: var(--xy-background-color, var(--xy-background-color-default));
29
+ --xy-node-color-default: inherit;
30
+ --xy-node-border-default: 1px solid #1a192b;
31
+ --xy-node-background-color-default: #fff;
32
+ --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
33
+ --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);
34
+ --xy-node-boxshadow-selected-default: 0 0 0 0.5px #1a192b;
35
+ --xy-node-border-radius-default: 3px;
36
+
37
+ --xy-handle-background-color-default: #1a192b;
38
+ --xy-handle-border-color-default: #fff;
39
+
40
+ --xy-selection-background-color-default: rgba(0, 89, 220, 0.08);
41
+ --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.8);
42
+
43
+ --xy-controls-button-background-color-default: #fefefe;
44
+ --xy-controls-button-background-color-hover-default: #f4f4f4;
45
+ --xy-controls-button-color-default: inherit;
46
+ --xy-controls-button-color-hover-default: inherit;
47
+ --xy-controls-button-border-color-default: #eee;
48
+ --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
49
+
50
+ --xy-edge-label-background-color-default: #ffffff;
51
+ --xy-edge-label-color-default: inherit;
52
+ --xy-resize-background-color-default: #3367d9;
53
+ }
54
+ .react-flow.dark {
55
+ --xy-edge-stroke-default: #3e3e3e;
56
+ --xy-edge-stroke-width-default: 1;
57
+ --xy-edge-stroke-selected-default: #727272;
58
+
59
+ --xy-connectionline-stroke-default: #b1b1b7;
60
+ --xy-connectionline-stroke-width-default: 1;
61
+
62
+ --xy-attribution-background-color-default: rgba(150, 150, 150, 0.25);
63
+
64
+ --xy-minimap-background-color-default: #141414;
65
+ --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.6);
66
+ --xy-minimap-mask-stroke-color-default: transparent;
67
+ --xy-minimap-mask-stroke-width-default: 1;
68
+ --xy-minimap-node-background-color-default: #2b2b2b;
69
+ --xy-minimap-node-stroke-color-default: transparent;
70
+ --xy-minimap-node-stroke-width-default: 2;
71
+
72
+ --xy-background-color-default: #141414;
73
+ --xy-background-pattern-dots-color-default: #555;
74
+ --xy-background-pattern-lines-color-default: #333;
75
+ --xy-background-pattern-cross-color-default: #333;
76
+ --xy-node-color-default: #f8f8f8;
77
+ --xy-node-border-default: 1px solid #3c3c3c;
78
+ --xy-node-background-color-default: #1e1e1e;
79
+ --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);
80
+ --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);
81
+ --xy-node-boxshadow-selected-default: 0 0 0 0.5px #999;
82
+
83
+ --xy-handle-background-color-default: #bebebe;
84
+ --xy-handle-border-color-default: #1e1e1e;
85
+
86
+ --xy-selection-background-color-default: rgba(200, 200, 220, 0.08);
87
+ --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.8);
88
+
89
+ --xy-controls-button-background-color-default: #2b2b2b;
90
+ --xy-controls-button-background-color-hover-default: #3e3e3e;
91
+ --xy-controls-button-color-default: #f8f8f8;
92
+ --xy-controls-button-color-hover-default: #fff;
93
+ --xy-controls-button-border-color-default: #5b5b5b;
94
+ --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);
95
+
96
+ --xy-edge-label-background-color-default: #141414;
97
+ --xy-edge-label-color-default: #f8f8f8;
98
+ }
99
+ .react-flow__background {
100
+ background-color: var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));
101
+ pointer-events: none;
102
+ z-index: -1;
103
+ }
104
+ .react-flow__container {
105
+ position: absolute;
106
+ width: 100%;
107
+ height: 100%;
108
+ top: 0;
109
+ left: 0;
110
+ }
111
+ .react-flow__pane {
112
+ z-index: 1;
113
+ touch-action: none;
114
+ }
115
+ .react-flow__pane.draggable {
116
+ cursor: grab;
117
+ }
118
+ .react-flow__pane.dragging {
119
+ cursor: grabbing;
120
+ }
121
+ .react-flow__pane.selection {
122
+ cursor: pointer;
123
+ }
124
+ .react-flow__viewport {
125
+ transform-origin: 0 0;
126
+ z-index: 2;
127
+ pointer-events: none;
128
+ }
129
+ .react-flow__renderer {
130
+ z-index: 4;
131
+ }
132
+ .react-flow__selection {
133
+ z-index: 6;
134
+ }
135
+ .react-flow__nodesselection-rect:focus,
136
+ .react-flow__nodesselection-rect:focus-visible {
137
+ outline: none;
138
+ }
139
+ .react-flow__edge-path {
140
+ stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
141
+ stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));
142
+ fill: none;
143
+ }
144
+ .react-flow__connection-path {
145
+ stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));
146
+ stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));
147
+ fill: none;
148
+ }
149
+ .react-flow .react-flow__edges {
150
+ position: absolute;
151
+ }
152
+ .react-flow .react-flow__edges svg {
153
+ overflow: visible;
154
+ position: absolute;
155
+ pointer-events: none;
156
+ }
157
+ .react-flow__edge {
158
+ pointer-events: visibleStroke;
159
+ }
160
+ .react-flow__edge.selectable {
161
+ cursor: pointer;
162
+ }
163
+ .react-flow__edge.animated path {
164
+ stroke-dasharray: 5;
165
+ animation: dashdraw 0.5s linear infinite;
166
+ }
167
+ .react-flow__edge.animated path.react-flow__edge-interaction {
168
+ stroke-dasharray: none;
169
+ animation: none;
170
+ }
171
+ .react-flow__edge.inactive {
172
+ pointer-events: none;
173
+ }
174
+ .react-flow__edge.selected,
175
+ .react-flow__edge:focus,
176
+ .react-flow__edge:focus-visible {
177
+ outline: none;
178
+ }
179
+ .react-flow__edge.selected .react-flow__edge-path,
180
+ .react-flow__edge.selectable:focus .react-flow__edge-path,
181
+ .react-flow__edge.selectable:focus-visible .react-flow__edge-path {
182
+ stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));
183
+ }
184
+ .react-flow__edge-textwrapper {
185
+ pointer-events: all;
186
+ }
187
+ .react-flow__edge .react-flow__edge-text {
188
+ pointer-events: none;
189
+ -webkit-user-select: none;
190
+ -moz-user-select: none;
191
+ user-select: none;
192
+ }
193
+ /* Arrowhead marker styles - use CSS custom properties as default */
194
+ .react-flow__arrowhead polyline {
195
+ stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
196
+ }
197
+ .react-flow__arrowhead polyline.arrowclosed {
198
+ fill: var(--xy-edge-stroke, var(--xy-edge-stroke-default));
199
+ }
200
+ .react-flow__connection {
201
+ pointer-events: none;
202
+ }
203
+ .react-flow__connection .animated {
204
+ stroke-dasharray: 5;
205
+ animation: dashdraw 0.5s linear infinite;
206
+ }
207
+ svg.react-flow__connectionline {
208
+ z-index: 1001;
209
+ overflow: visible;
210
+ position: absolute;
211
+ }
212
+ .react-flow__nodes {
213
+ pointer-events: none;
214
+ transform-origin: 0 0;
215
+ }
216
+ .react-flow__node {
217
+ position: absolute;
218
+ -webkit-user-select: none;
219
+ -moz-user-select: none;
220
+ user-select: none;
221
+ pointer-events: all;
222
+ transform-origin: 0 0;
223
+ box-sizing: border-box;
224
+ cursor: default;
225
+ }
226
+ .react-flow__node.selectable {
227
+ cursor: pointer;
228
+ }
229
+ .react-flow__node.draggable {
230
+ cursor: grab;
231
+ pointer-events: all;
232
+ }
233
+ .react-flow__node.draggable.dragging {
234
+ cursor: grabbing;
235
+ }
236
+ .react-flow__nodesselection {
237
+ z-index: 3;
238
+ transform-origin: left top;
239
+ pointer-events: none;
240
+ }
241
+ .react-flow__nodesselection-rect {
242
+ position: absolute;
243
+ pointer-events: all;
244
+ cursor: grab;
245
+ }
246
+ .react-flow__handle {
247
+ position: absolute;
248
+ pointer-events: none;
249
+ min-width: 5px;
250
+ min-height: 5px;
251
+ width: 6px;
252
+ height: 6px;
253
+ background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));
254
+ border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));
255
+ border-radius: 100%;
256
+ }
257
+ .react-flow__handle.connectingfrom {
258
+ pointer-events: all;
259
+ }
260
+ .react-flow__handle.connectionindicator {
261
+ pointer-events: all;
262
+ cursor: crosshair;
263
+ }
264
+ .react-flow__handle-bottom {
265
+ top: auto;
266
+ left: 50%;
267
+ bottom: 0;
268
+ transform: translate(-50%, 50%);
269
+ }
270
+ .react-flow__handle-top {
271
+ top: 0;
272
+ left: 50%;
273
+ transform: translate(-50%, -50%);
274
+ }
275
+ .react-flow__handle-left {
276
+ top: 50%;
277
+ left: 0;
278
+ transform: translate(-50%, -50%);
279
+ }
280
+ .react-flow__handle-right {
281
+ top: 50%;
282
+ right: 0;
283
+ transform: translate(50%, -50%);
284
+ }
285
+ .react-flow__edgeupdater {
286
+ cursor: move;
287
+ pointer-events: all;
288
+ }
289
+ .react-flow__pane.selection .react-flow__panel {
290
+ pointer-events: none;
291
+ }
292
+ .react-flow__panel {
293
+ position: absolute;
294
+ z-index: 5;
295
+ margin: 15px;
296
+ }
297
+ .react-flow__panel.top {
298
+ top: 0;
299
+ }
300
+ .react-flow__panel.bottom {
301
+ bottom: 0;
302
+ }
303
+ .react-flow__panel.top.center, .react-flow__panel.bottom.center {
304
+ left: 50%;
305
+ transform: translateX(-15px) translateX(-50%);
306
+ }
307
+ .react-flow__panel.left {
308
+ left: 0;
309
+ }
310
+ .react-flow__panel.right {
311
+ right: 0;
312
+ }
313
+ .react-flow__panel.left.center, .react-flow__panel.right.center {
314
+ top: 50%;
315
+ transform: translateY(-15px) translateY(-50%);
316
+ }
317
+ .react-flow__attribution {
318
+ font-size: 10px;
319
+ background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));
320
+ padding: 2px 3px;
321
+ margin: 0;
322
+ }
323
+ .react-flow__attribution a {
324
+ text-decoration: none;
325
+ color: #999;
326
+ }
327
+ @keyframes dashdraw {
328
+ from {
329
+ stroke-dashoffset: 10;
330
+ }
331
+ }
332
+ .react-flow__edgelabel-renderer {
333
+ position: absolute;
334
+ width: 100%;
335
+ height: 100%;
336
+ pointer-events: none;
337
+ -webkit-user-select: none;
338
+ -moz-user-select: none;
339
+ user-select: none;
340
+ left: 0;
341
+ top: 0;
342
+ }
343
+ .react-flow__viewport-portal {
344
+ position: absolute;
345
+ width: 100%;
346
+ height: 100%;
347
+ left: 0;
348
+ top: 0;
349
+ -webkit-user-select: none;
350
+ -moz-user-select: none;
351
+ user-select: none;
352
+ }
353
+ .react-flow__minimap {
354
+ background: var(
355
+ --xy-minimap-background-color-props,
356
+ var(--xy-minimap-background-color, var(--xy-minimap-background-color-default))
357
+ );
358
+ }
359
+ .react-flow__minimap-svg {
360
+ display: block;
361
+ }
362
+ .react-flow__minimap-mask {
363
+ fill: var(
364
+ --xy-minimap-mask-background-color-props,
365
+ var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default))
366
+ );
367
+ stroke: var(
368
+ --xy-minimap-mask-stroke-color-props,
369
+ var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default))
370
+ );
371
+ stroke-width: var(
372
+ --xy-minimap-mask-stroke-width-props,
373
+ var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default))
374
+ );
375
+ }
376
+ .react-flow__minimap-node {
377
+ fill: var(
378
+ --xy-minimap-node-background-color-props,
379
+ var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default))
380
+ );
381
+ stroke: var(
382
+ --xy-minimap-node-stroke-color-props,
383
+ var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default))
384
+ );
385
+ stroke-width: var(
386
+ --xy-minimap-node-stroke-width-props,
387
+ var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default))
388
+ );
389
+ }
390
+ .react-flow__background-pattern.dots {
391
+ fill: var(
392
+ --xy-background-pattern-color-props,
393
+ var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default))
394
+ );
395
+ }
396
+ .react-flow__background-pattern.lines {
397
+ stroke: var(
398
+ --xy-background-pattern-color-props,
399
+ var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default))
400
+ );
401
+ }
402
+ .react-flow__background-pattern.cross {
403
+ stroke: var(
404
+ --xy-background-pattern-color-props,
405
+ var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default))
406
+ );
407
+ }
408
+ .react-flow__controls {
409
+ display: flex;
410
+ flex-direction: column;
411
+ box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));
412
+ }
413
+ .react-flow__controls.horizontal {
414
+ flex-direction: row;
415
+ }
416
+ .react-flow__controls-button {
417
+ display: flex;
418
+ justify-content: center;
419
+ align-items: center;
420
+ height: 26px;
421
+ width: 26px;
422
+ padding: 4px;
423
+ border: none;
424
+ background: var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));
425
+ border-bottom: 1px solid
426
+ var(
427
+ --xy-controls-button-border-color-props,
428
+ var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
429
+ );
430
+ color: var(
431
+ --xy-controls-button-color-props,
432
+ var(--xy-controls-button-color, var(--xy-controls-button-color-default))
433
+ );
434
+ cursor: pointer;
435
+ -webkit-user-select: none;
436
+ -moz-user-select: none;
437
+ user-select: none;
438
+ }
439
+ .react-flow__controls-button svg {
440
+ width: 100%;
441
+ max-width: 12px;
442
+ max-height: 12px;
443
+ fill: currentColor;
444
+ }
445
+ .react-flow__edge.updating .react-flow__edge-path {
446
+ stroke: #777;
447
+ }
448
+ .react-flow__edge-text {
449
+ font-size: 10px;
450
+ }
451
+ .react-flow__node.selectable:focus,
452
+ .react-flow__node.selectable:focus-visible {
453
+ outline: none;
454
+ }
455
+ .react-flow__node-input,
456
+ .react-flow__node-default,
457
+ .react-flow__node-output,
458
+ .react-flow__node-group {
459
+ padding: 10px;
460
+ border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));
461
+ width: 150px;
462
+ font-size: 12px;
463
+ color: var(--xy-node-color, var(--xy-node-color-default));
464
+ text-align: center;
465
+ border: var(--xy-node-border, var(--xy-node-border-default));
466
+ background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));
467
+ }
468
+ .react-flow__node-input.selectable:hover, .react-flow__node-default.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {
469
+ box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));
470
+ }
471
+ .react-flow__node-input.selectable.selected,
472
+ .react-flow__node-input.selectable:focus,
473
+ .react-flow__node-input.selectable:focus-visible,
474
+ .react-flow__node-default.selectable.selected,
475
+ .react-flow__node-default.selectable:focus,
476
+ .react-flow__node-default.selectable:focus-visible,
477
+ .react-flow__node-output.selectable.selected,
478
+ .react-flow__node-output.selectable:focus,
479
+ .react-flow__node-output.selectable:focus-visible,
480
+ .react-flow__node-group.selectable.selected,
481
+ .react-flow__node-group.selectable:focus,
482
+ .react-flow__node-group.selectable:focus-visible {
483
+ box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));
484
+ }
485
+ .react-flow__node-group {
486
+ background-color: var(--xy-node-group-background-color, var(--xy-node-group-background-color-default));
487
+ }
488
+ .react-flow__nodesselection-rect,
489
+ .react-flow__selection {
490
+ background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));
491
+ border: var(--xy-selection-border, var(--xy-selection-border-default));
492
+ }
493
+ .react-flow__nodesselection-rect:focus,
494
+ .react-flow__nodesselection-rect:focus-visible,
495
+ .react-flow__selection:focus,
496
+ .react-flow__selection:focus-visible {
497
+ outline: none;
498
+ }
499
+ .react-flow__controls-button:hover {
500
+ background: var(
501
+ --xy-controls-button-background-color-hover-props,
502
+ var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default))
503
+ );
504
+ color: var(
505
+ --xy-controls-button-color-hover-props,
506
+ var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default))
507
+ );
508
+ }
509
+ .react-flow__controls-button:disabled {
510
+ pointer-events: none;
511
+ }
512
+ .react-flow__controls-button:disabled svg {
513
+ fill-opacity: 0.4;
514
+ }
515
+ .react-flow__controls-button:last-child {
516
+ border-bottom: none;
517
+ }
518
+ .react-flow__controls.horizontal .react-flow__controls-button {
519
+ border-bottom: none;
520
+ border-right: 1px solid
521
+ var(
522
+ --xy-controls-button-border-color-props,
523
+ var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))
524
+ );
525
+ }
526
+ .react-flow__controls.horizontal .react-flow__controls-button:last-child {
527
+ border-right: none;
528
+ }
529
+ .react-flow__resize-control {
530
+ position: absolute;
531
+ }
532
+ .react-flow__resize-control.left,
533
+ .react-flow__resize-control.right {
534
+ cursor: ew-resize;
535
+ }
536
+ .react-flow__resize-control.top,
537
+ .react-flow__resize-control.bottom {
538
+ cursor: ns-resize;
539
+ }
540
+ .react-flow__resize-control.top.left,
541
+ .react-flow__resize-control.bottom.right {
542
+ cursor: nwse-resize;
543
+ }
544
+ .react-flow__resize-control.bottom.left,
545
+ .react-flow__resize-control.top.right {
546
+ cursor: nesw-resize;
547
+ }
548
+ /* handle styles */
549
+ .react-flow__resize-control.handle {
550
+ width: 5px;
551
+ height: 5px;
552
+ border: 1px solid #fff;
553
+ border-radius: 1px;
554
+ background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
555
+ translate: -50% -50%;
556
+ }
557
+ .react-flow__resize-control.handle.left {
558
+ left: 0;
559
+ top: 50%;
560
+ }
561
+ .react-flow__resize-control.handle.right {
562
+ left: 100%;
563
+ top: 50%;
564
+ }
565
+ .react-flow__resize-control.handle.top {
566
+ left: 50%;
567
+ top: 0;
568
+ }
569
+ .react-flow__resize-control.handle.bottom {
570
+ left: 50%;
571
+ top: 100%;
572
+ }
573
+ .react-flow__resize-control.handle.top.left {
574
+ left: 0;
575
+ }
576
+ .react-flow__resize-control.handle.bottom.left {
577
+ left: 0;
578
+ }
579
+ .react-flow__resize-control.handle.top.right {
580
+ left: 100%;
581
+ }
582
+ .react-flow__resize-control.handle.bottom.right {
583
+ left: 100%;
584
+ }
585
+ /* line styles */
586
+ .react-flow__resize-control.line {
587
+ border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));
588
+ border-width: 0;
589
+ border-style: solid;
590
+ }
591
+ .react-flow__resize-control.line.left,
592
+ .react-flow__resize-control.line.right {
593
+ width: 1px;
594
+ transform: translate(-50%, 0);
595
+ top: 0;
596
+ height: 100%;
597
+ }
598
+ .react-flow__resize-control.line.left {
599
+ left: 0;
600
+ border-left-width: 1px;
601
+ }
602
+ .react-flow__resize-control.line.right {
603
+ left: 100%;
604
+ border-right-width: 1px;
605
+ }
606
+ .react-flow__resize-control.line.top,
607
+ .react-flow__resize-control.line.bottom {
608
+ height: 1px;
609
+ transform: translate(0, -50%);
610
+ left: 0;
611
+ width: 100%;
612
+ }
613
+ .react-flow__resize-control.line.top {
614
+ top: 0;
615
+ border-top-width: 1px;
616
+ }
617
+ .react-flow__resize-control.line.bottom {
618
+ border-bottom-width: 1px;
619
+ top: 100%;
620
+ }
621
+ .react-flow__edge-textbg {
622
+ fill: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));
623
+ }
624
+ .react-flow__edge-text {
625
+ fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));
626
+ }
@@ -0,0 +1,17 @@
1
+ /* @medalsocial/meda/workflow-builder/styles.css
2
+ *
3
+ * @xyflow/react's base stylesheet + the Tailwind utilities used by
4
+ * `@medalsocial/meda/workflow-builder`. This is the ONLY lean entry that pulls
5
+ * in xyflow's CSS, so sites that never render a workflow canvas don't pay for
6
+ * it. Requires the theme bridge: import `@medalsocial/meda/styles/base.css`
7
+ * or `.../styles/bridge.css` once, before this file. theme.css imports this
8
+ * file, so `@medalsocial/meda/styles.css` consumers keep getting xyflow's CSS.
9
+ * Paths resolve relative to dist/styles/.
10
+ *
11
+ * The build rewrites the xyflow import below to a vendored copy
12
+ * (dist/styles/vendor/xyflow.css), so the shipped sheet compiles even when
13
+ * the optional @xyflow/react peer is not installed.
14
+ */
15
+ @import "./vendor/xyflow.css";
16
+
17
+ @source "../workflow-builder/**/*.js";