@ship-ui/core 0.19.4 → 0.22.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 (153) hide show
  1. package/README.md +3 -0
  2. package/assets/mcp/components.json +32 -4212
  3. package/bin/mcp/index.js +6544 -444
  4. package/bin/ship-fg-scanner +0 -0
  5. package/bin/ship-fg.mjs +18 -16
  6. package/bin/src/subset.ts +3 -1
  7. package/fesm2022/ship-ui-core-sh-form-field-experimental.mjs +42 -0
  8. package/fesm2022/ship-ui-core-sh-form-field-experimental.mjs.map +1 -0
  9. package/fesm2022/ship-ui-core-ship-accordion.mjs +127 -0
  10. package/fesm2022/ship-ui-core-ship-accordion.mjs.map +1 -0
  11. package/fesm2022/ship-ui-core-ship-alert.mjs +305 -0
  12. package/fesm2022/ship-ui-core-ship-alert.mjs.map +1 -0
  13. package/fesm2022/ship-ui-core-ship-blueprint.mjs +1156 -0
  14. package/fesm2022/ship-ui-core-ship-blueprint.mjs.map +1 -0
  15. package/fesm2022/ship-ui-core-ship-button-group.mjs +41 -0
  16. package/fesm2022/ship-ui-core-ship-button-group.mjs.map +1 -0
  17. package/fesm2022/ship-ui-core-ship-button.mjs +38 -0
  18. package/fesm2022/ship-ui-core-ship-button.mjs.map +1 -0
  19. package/fesm2022/ship-ui-core-ship-card.mjs +35 -0
  20. package/fesm2022/ship-ui-core-ship-card.mjs.map +1 -0
  21. package/fesm2022/ship-ui-core-ship-checkbox.mjs +113 -0
  22. package/fesm2022/ship-ui-core-ship-checkbox.mjs.map +1 -0
  23. package/fesm2022/ship-ui-core-ship-chip.mjs +44 -0
  24. package/fesm2022/ship-ui-core-ship-chip.mjs.map +1 -0
  25. package/fesm2022/ship-ui-core-ship-color-picker.mjs +947 -0
  26. package/fesm2022/ship-ui-core-ship-color-picker.mjs.map +1 -0
  27. package/fesm2022/ship-ui-core-ship-datepicker.mjs +951 -0
  28. package/fesm2022/ship-ui-core-ship-datepicker.mjs.map +1 -0
  29. package/fesm2022/ship-ui-core-ship-dialog.mjs +263 -0
  30. package/fesm2022/ship-ui-core-ship-dialog.mjs.map +1 -0
  31. package/fesm2022/ship-ui-core-ship-divider.mjs +22 -0
  32. package/fesm2022/ship-ui-core-ship-divider.mjs.map +1 -0
  33. package/fesm2022/ship-ui-core-ship-event-card.mjs +50 -0
  34. package/fesm2022/ship-ui-core-ship-event-card.mjs.map +1 -0
  35. package/fesm2022/ship-ui-core-ship-file-upload.mjs +112 -0
  36. package/fesm2022/ship-ui-core-ship-file-upload.mjs.map +1 -0
  37. package/fesm2022/ship-ui-core-ship-form-field.mjs +310 -0
  38. package/fesm2022/ship-ui-core-ship-form-field.mjs.map +1 -0
  39. package/fesm2022/ship-ui-core-ship-icon.mjs +81 -0
  40. package/fesm2022/ship-ui-core-ship-icon.mjs.map +1 -0
  41. package/fesm2022/ship-ui-core-ship-list.mjs +22 -0
  42. package/fesm2022/ship-ui-core-ship-list.mjs.map +1 -0
  43. package/fesm2022/ship-ui-core-ship-menu.mjs +545 -0
  44. package/fesm2022/ship-ui-core-ship-menu.mjs.map +1 -0
  45. package/fesm2022/ship-ui-core-ship-popover.mjs +286 -0
  46. package/fesm2022/ship-ui-core-ship-popover.mjs.map +1 -0
  47. package/fesm2022/ship-ui-core-ship-progress-bar.mjs +37 -0
  48. package/fesm2022/ship-ui-core-ship-progress-bar.mjs.map +1 -0
  49. package/fesm2022/ship-ui-core-ship-radio.mjs +102 -0
  50. package/fesm2022/ship-ui-core-ship-radio.mjs.map +1 -0
  51. package/fesm2022/ship-ui-core-ship-range-slider.mjs +277 -0
  52. package/fesm2022/ship-ui-core-ship-range-slider.mjs.map +1 -0
  53. package/fesm2022/ship-ui-core-ship-select.mjs +971 -0
  54. package/fesm2022/ship-ui-core-ship-select.mjs.map +1 -0
  55. package/fesm2022/ship-ui-core-ship-sidenav.mjs +248 -0
  56. package/fesm2022/ship-ui-core-ship-sidenav.mjs.map +1 -0
  57. package/fesm2022/ship-ui-core-ship-sortable.mjs +485 -0
  58. package/fesm2022/ship-ui-core-ship-sortable.mjs.map +1 -0
  59. package/fesm2022/ship-ui-core-ship-spinner.mjs +28 -0
  60. package/fesm2022/ship-ui-core-ship-spinner.mjs.map +1 -0
  61. package/fesm2022/ship-ui-core-ship-stepper.mjs +76 -0
  62. package/fesm2022/ship-ui-core-ship-stepper.mjs.map +1 -0
  63. package/fesm2022/ship-ui-core-ship-table-filter-bar.mjs +28 -0
  64. package/fesm2022/ship-ui-core-ship-table-filter-bar.mjs.map +1 -0
  65. package/fesm2022/ship-ui-core-ship-table.mjs +442 -0
  66. package/fesm2022/ship-ui-core-ship-table.mjs.map +1 -0
  67. package/fesm2022/ship-ui-core-ship-tabs.mjs +38 -0
  68. package/fesm2022/ship-ui-core-ship-tabs.mjs.map +1 -0
  69. package/fesm2022/ship-ui-core-ship-theme-toggle.mjs +119 -0
  70. package/fesm2022/ship-ui-core-ship-theme-toggle.mjs.map +1 -0
  71. package/fesm2022/ship-ui-core-ship-toggle-card.mjs +75 -0
  72. package/fesm2022/ship-ui-core-ship-toggle-card.mjs.map +1 -0
  73. package/fesm2022/ship-ui-core-ship-toggle.mjs +105 -0
  74. package/fesm2022/ship-ui-core-ship-toggle.mjs.map +1 -0
  75. package/fesm2022/ship-ui-core-ship-virtual-scroll.mjs +186 -0
  76. package/fesm2022/ship-ui-core-ship-virtual-scroll.mjs.map +1 -0
  77. package/fesm2022/ship-ui-core.mjs +880 -8782
  78. package/fesm2022/ship-ui-core.mjs.map +1 -1
  79. package/package.json +147 -3
  80. package/styles/core.scss +43 -0
  81. package/styles/helpers.scss +2 -0
  82. package/styles/index.scss +12 -123
  83. package/types/ship-ui-core-sh-form-field-experimental.d.ts +11 -0
  84. package/types/ship-ui-core-ship-accordion.d.ts +19 -0
  85. package/types/ship-ui-core-ship-alert.d.ts +68 -0
  86. package/types/ship-ui-core-ship-blueprint.d.ts +112 -0
  87. package/types/ship-ui-core-ship-button-group.d.ts +15 -0
  88. package/types/ship-ui-core-ship-button.d.ts +13 -0
  89. package/types/ship-ui-core-ship-card.d.ts +11 -0
  90. package/types/ship-ui-core-ship-checkbox.d.ts +22 -0
  91. package/types/ship-ui-core-ship-chip.d.ts +15 -0
  92. package/types/ship-ui-core-ship-color-picker.d.ts +105 -0
  93. package/types/ship-ui-core-ship-datepicker.d.ts +96 -0
  94. package/types/ship-ui-core-ship-dialog.d.ts +76 -0
  95. package/types/ship-ui-core-ship-divider.d.ts +8 -0
  96. package/types/ship-ui-core-ship-event-card.d.ts +11 -0
  97. package/types/ship-ui-core-ship-file-upload.d.ts +20 -0
  98. package/types/ship-ui-core-ship-form-field.d.ts +32 -0
  99. package/types/ship-ui-core-ship-icon.d.ts +18 -0
  100. package/types/ship-ui-core-ship-list.d.ts +8 -0
  101. package/types/ship-ui-core-ship-menu.d.ts +49 -0
  102. package/types/ship-ui-core-ship-popover.d.ts +40 -0
  103. package/types/ship-ui-core-ship-progress-bar.d.ts +14 -0
  104. package/types/ship-ui-core-ship-radio.d.ts +22 -0
  105. package/types/ship-ui-core-ship-range-slider.d.ts +31 -0
  106. package/types/ship-ui-core-ship-select.d.ts +81 -0
  107. package/types/ship-ui-core-ship-sidenav.d.ts +36 -0
  108. package/types/ship-ui-core-ship-sortable.d.ts +72 -0
  109. package/types/ship-ui-core-ship-spinner.d.ts +10 -0
  110. package/types/ship-ui-core-ship-stepper.d.ts +13 -0
  111. package/types/ship-ui-core-ship-table-filter-bar.d.ts +8 -0
  112. package/types/ship-ui-core-ship-table.d.ts +69 -0
  113. package/types/ship-ui-core-ship-tabs.d.ts +14 -0
  114. package/types/ship-ui-core-ship-theme-toggle.d.ts +28 -0
  115. package/types/ship-ui-core-ship-toggle-card.d.ts +15 -0
  116. package/types/ship-ui-core-ship-toggle.d.ts +21 -0
  117. package/types/ship-ui-core-ship-virtual-scroll.d.ts +22 -0
  118. package/types/ship-ui-core.d.ts +88 -1070
  119. package/styles/components/ship-accordion.scss +0 -113
  120. package/styles/components/ship-alert-container.scss +0 -49
  121. package/styles/components/ship-alert.scss +0 -177
  122. package/styles/components/ship-blueprint.scss +0 -242
  123. package/styles/components/ship-button-group.scss +0 -165
  124. package/styles/components/ship-button.scss +0 -141
  125. package/styles/components/ship-card.scss +0 -56
  126. package/styles/components/ship-checkbox.scss +0 -116
  127. package/styles/components/ship-chip.scss +0 -104
  128. package/styles/components/ship-color-picker.scss +0 -150
  129. package/styles/components/ship-datepicker.scss +0 -317
  130. package/styles/components/ship-dialog.scss +0 -152
  131. package/styles/components/ship-divider.scss +0 -27
  132. package/styles/components/ship-event-card.scss +0 -51
  133. package/styles/components/ship-file-upload.scss +0 -47
  134. package/styles/components/ship-form-field.scss +0 -408
  135. package/styles/components/ship-icon.scss +0 -54
  136. package/styles/components/ship-list.scss +0 -165
  137. package/styles/components/ship-menu.scss +0 -237
  138. package/styles/components/ship-popover.scss +0 -205
  139. package/styles/components/ship-progress-bar.scss +0 -173
  140. package/styles/components/ship-radio.scss +0 -113
  141. package/styles/components/ship-range-slider.scss +0 -421
  142. package/styles/components/ship-select.scss +0 -153
  143. package/styles/components/ship-sidenav.scss +0 -195
  144. package/styles/components/ship-sortable.scss +0 -45
  145. package/styles/components/ship-spinner.scss +0 -53
  146. package/styles/components/ship-stepper.scss +0 -158
  147. package/styles/components/ship-table.scss +0 -443
  148. package/styles/components/ship-tabs.scss +0 -125
  149. package/styles/components/ship-theme-toggle.scss +0 -41
  150. package/styles/components/ship-toggle-card.scss +0 -69
  151. package/styles/components/ship-toggle.scss +0 -255
  152. package/styles/components/ship-tooltip.scss +0 -151
  153. package/styles/components/ship-virtual-scroll.scss +0 -12
@@ -1,113 +0,0 @@
1
- @use '../helpers.scss' as *;
2
-
3
- $shipAccordion: true !default;
4
-
5
- @if $shipAccordion == true {
6
- sh-accordion {
7
- --acc-pad: #{p2r(16)};
8
- --acc-f: var(--paragraph-30);
9
- --acc-bc: var(--base-4);
10
- --acc-s: var(--shape-2);
11
-
12
- display: flex;
13
- flex-direction: column;
14
- border: var(--border-10);
15
- border-color: var(--acc-bc);
16
- border-radius: var(--acc-s);
17
- overflow: hidden;
18
- background: var(--base-1);
19
-
20
- &:empty {
21
- display: none;
22
- }
23
-
24
- &.small {
25
- --acc-pad: #{p2r(12)};
26
- --acc-f: var(--paragraph-40);
27
- }
28
-
29
- &.type-b {
30
- --acc-s: 0;
31
- width: 100%;
32
- height: 100%;
33
- border: 0;
34
- overflow: auto;
35
-
36
- > details:last-child {
37
- border-bottom: var(--border-10);
38
- }
39
- }
40
-
41
- details {
42
- width: 100%;
43
-
44
- &.disabled {
45
- opacity: 0.5;
46
- pointer-events: none;
47
-
48
- summary {
49
- cursor: not-allowed;
50
- }
51
- }
52
-
53
- // Hide standard browser marker
54
- > summary {
55
- list-style: none;
56
-
57
- &::-webkit-details-marker {
58
- display: none;
59
- }
60
- }
61
-
62
- > summary {
63
- display: flex;
64
- align-items: center;
65
- padding: var(--acc-pad);
66
- cursor: pointer;
67
- user-select: none;
68
- transition: background-color 0.2s;
69
- font-weight: 500;
70
- font-size: var(--acc-f);
71
- border-bottom: var(--border-10);
72
- border-color: var(--acc-bc);
73
-
74
- &:focus-visible {
75
- outline: 2px solid var(--primary-8);
76
- outline-offset: -2px;
77
- border-radius: var(--acc-s);
78
- }
79
-
80
- sh-icon {
81
- transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
82
- color: var(--mono-11);
83
- margin-left: auto;
84
- }
85
- }
86
-
87
- &:last-child > summary {
88
- border-bottom: 0;
89
- }
90
-
91
- &[open] {
92
- > summary {
93
- border-bottom: var(--border-10);
94
- border-color: var(--acc-bc);
95
-
96
- sh-icon {
97
- transform: rotate(180deg);
98
- }
99
- }
100
-
101
- + details {
102
- border-top: var(--border-10);
103
- border-color: var(--acc-bc);
104
- }
105
- }
106
-
107
- > .content {
108
- padding: var(--acc-pad);
109
- background: var(--base-2);
110
- }
111
- }
112
- }
113
- }
@@ -1,49 +0,0 @@
1
- @use '../helpers.scss' as *;
2
- $shipAlert: true !default;
3
-
4
- @if $shipAlert == true {
5
- sh-alert-container {
6
- width: 100%;
7
- position: relative;
8
-
9
- sh-alert {
10
- margin-bottom: p2r(8);
11
-
12
- &:first-of-type {
13
- margin-bottom: 0;
14
- }
15
-
16
- &.alert-is-hidden {
17
- margin-bottom: 0;
18
- }
19
- }
20
-
21
- .scroller {
22
- width: 100%;
23
- max-height: 50vh;
24
- overflow-y: auto;
25
- overflow-x: hidden;
26
- padding: p2r(8 16 16 8);
27
- }
28
-
29
- .container {
30
- flex-direction: column-reverse;
31
- display: flex;
32
- }
33
-
34
- .tray {
35
- display: flex;
36
- align-items: center;
37
- justify-content: center;
38
- width: p2r(24);
39
- height: p2r(24);
40
- background-color: var(--base-8);
41
- color: var(--base-1);
42
- position: absolute;
43
- bottom: 0;
44
- right: 0;
45
- border-radius: 50%;
46
- z-index: 1000;
47
- }
48
- }
49
- }
@@ -1,177 +0,0 @@
1
- @use '../helpers.scss' as *;
2
- $shipAlert: true !default;
3
-
4
- @if $shipAlert == true {
5
- sh-alert {
6
- --alert-ad: 400ms;
7
- --alert-bs: var(--box-shadow-10);
8
- --alert-p: #{p2r(8)};
9
-
10
- max-height: #{p2r(300)};
11
- padding-top: 0;
12
- padding-bottom: 0;
13
- margin-bottom: 0;
14
- opacity: 1;
15
- overflow: hidden;
16
- display: block;
17
- transition:
18
- max-height var(--alert-ad) ease-in-out,
19
- transform var(--alert-ad) ease-in-out,
20
- opacity var(--alert-ad) ease-in-out,
21
- margin-bottom var(--alert-ad) ease-in-out,
22
- padding-top var(--alert-ad) ease-in-out,
23
- padding-bottom var(--alert-ad) ease-in-out;
24
- transform: translateY(0);
25
- box-shadow: var(--alert-bs);
26
-
27
- &.simple {
28
- .content > * {
29
- color: var(--sheet-c);
30
- opacity: 0.7;
31
- }
32
- }
33
-
34
- &.flat,
35
- &.raised {
36
- --sheet-c: #fff;
37
-
38
- .content > * {
39
- color: var(--sheet-c);
40
- opacity: 0.8;
41
- }
42
- }
43
-
44
- .alert {
45
- display: grid;
46
- grid-template-columns: auto 1fr 1fr;
47
- grid-template-rows: auto auto;
48
- grid-template-areas:
49
- 'stateIcon title closeIcon'
50
- '. content .';
51
- padding: var(--alert-p);
52
- align-items: flex-start;
53
- gap: p2r(4 8);
54
-
55
- .close-icon {
56
- display: none;
57
- }
58
-
59
- &:has(.actions:empty) {
60
- grid-template-columns: auto 1fr;
61
- grid-template-areas:
62
- 'stateIcon title'
63
- '. content';
64
-
65
- .actions {
66
- display: none;
67
- }
68
-
69
- .close-icon {
70
- display: block;
71
- }
72
- }
73
-
74
- &:has(.content:empty) {
75
- grid-template-rows: auto;
76
- grid-template-areas: 'stateIcon title closeIcon';
77
- }
78
-
79
- &:has(.actions:empty):has(.content:empty) {
80
- grid-template-columns: auto 1fr;
81
- grid-template-areas: 'stateIcon title';
82
- }
83
- }
84
-
85
- .actions {
86
- grid-area: closeIcon;
87
- display: flex;
88
- align-items: center;
89
- justify-content: flex-end;
90
- gap: p2r(4);
91
- }
92
-
93
- .icon {
94
- grid-area: stateIcon;
95
- height: p2r(20);
96
- width: p2r(20);
97
- display: flex;
98
- align-items: center;
99
- justify-content: center;
100
-
101
- &:first-of-type:not(:empty) + .icon {
102
- display: none;
103
- }
104
- }
105
-
106
- [icon],
107
- .state-icon {
108
- color: var(--alert-state-ic);
109
- }
110
-
111
- .close-icon {
112
- grid-area: closeIcon;
113
- color: var(--alert-close-ic);
114
- transform: rotate(45deg);
115
- transform-origin: center;
116
- }
117
-
118
- .title {
119
- grid-area: title;
120
- padding-top: p2r(2);
121
- font-weight: 500;
122
- }
123
-
124
- .content {
125
- grid-area: content;
126
-
127
- &:empty {
128
- display: none;
129
- }
130
- }
131
-
132
- &.is-hidden {
133
- max-height: 0;
134
- padding-top: 0;
135
- padding-bottom: 0;
136
- opacity: 0;
137
- margin-bottom: 0;
138
- overflow: hidden;
139
- transform: translateY(-40px);
140
-
141
- &::before {
142
- opacity: 0;
143
- }
144
- }
145
-
146
- &.animate-in {
147
- transition: none;
148
- max-height: 0;
149
- margin-bottom: 0;
150
- padding-top: 0;
151
- padding-bottom: 0;
152
- opacity: 0;
153
- overflow: hidden;
154
- transform: translateY(0px);
155
-
156
- &::before {
157
- opacity: 0;
158
- }
159
- }
160
-
161
- &.animate-out {
162
- max-height: 0;
163
- padding: 0;
164
- opacity: 0;
165
- overflow: hidden;
166
- transform: translateY(-40px);
167
-
168
- &::before {
169
- opacity: 0;
170
- }
171
- }
172
-
173
- &:has([content]) .alert {
174
- --alert-p: #{p2r(12)};
175
- }
176
- }
177
- }
@@ -1,242 +0,0 @@
1
- @use '../helpers.scss' as *;
2
- $shipBlueprint: true !default;
3
-
4
- @if $shipBlueprint == true {
5
- sh-blueprint {
6
- --bp-bg: var(--base-1);
7
- --bp-icon-c: var(--base-6);
8
- --bp-stroke-c: var(--base-7);
9
- --bp-stroke-ca: var(--primary-8);
10
-
11
- display: flex;
12
- position: relative;
13
- width: 100%;
14
- height: 100%;
15
-
16
- > * {
17
- box-sizing: border-box;
18
- }
19
-
20
- sh-icon {
21
- font-size: p2r(16);
22
- color: var(--bp-icon-c);
23
- }
24
-
25
- sh-card.type-c {
26
- --card-bg: var(--base-1);
27
- }
28
-
29
- .validation-errors {
30
- position: absolute;
31
- top: 50%;
32
- left: 50%;
33
- transform: translate(-50%, -50%);
34
- padding: p2r(16);
35
- }
36
-
37
- .midpoint-div {
38
- position: absolute;
39
- background-color: var(--base-2);
40
- border: var(--border-10);
41
- padding: p2r(8);
42
- gap: p2r(8);
43
- border-radius: var(--shape-2);
44
- transform: translate(-50%, -50%);
45
- z-index: 100;
46
- display: flex;
47
- align-items: center;
48
- cursor: pointer;
49
-
50
- sh-icon {
51
- color: var(--base-12);
52
- }
53
- }
54
-
55
- .canvas-container {
56
- position: relative;
57
- width: 100%;
58
- height: 100%;
59
- overflow: hidden;
60
-
61
- &.hovering-connection {
62
- cursor: pointer;
63
- }
64
-
65
- &.locked {
66
- .node {
67
- pointer-events: none;
68
- }
69
- }
70
- }
71
-
72
- .action-panel {
73
- position: absolute;
74
- top: p2r(8);
75
- right: p2r(8);
76
- gap: p2r(8);
77
- display: flex;
78
- align-items: center;
79
- z-index: 1000;
80
- }
81
-
82
- canvas {
83
- position: absolute;
84
- top: 0;
85
- left: 0;
86
- width: 100%;
87
- height: 100%;
88
- }
89
- .nodes-wrapper {
90
- position: absolute;
91
- top: 0;
92
- left: 0;
93
- width: 100%;
94
- height: 100%;
95
- will-change: transform;
96
- }
97
- .canvas {
98
- height: 100%;
99
- width: 100%;
100
- background-color: var(--bp-bg);
101
- overflow: hidden;
102
- touch-action: none;
103
- position: relative;
104
- }
105
-
106
- .grid {
107
- position: absolute;
108
- inset: 0;
109
- will-change: transform;
110
- }
111
-
112
- .tile {
113
- position: absolute;
114
- box-sizing: border-box;
115
- width: 800px;
116
- height: 800px;
117
- background-image:
118
- repeating-linear-gradient(0deg, var(--bp-grid-c) 0 2px, transparent 2px 100%),
119
- repeating-linear-gradient(90deg, var(--bp-grid-c) 0 2px, transparent 2px 100%);
120
- background-size: 20px 20px;
121
- }
122
-
123
- .node {
124
- position: absolute;
125
- min-width: 150px;
126
- // min-height: 100px;
127
- padding: 0;
128
- transition: box-shadow 0.2s ease-in-out;
129
- box-shadow: var(--box-shadow-10);
130
- will-change: transform;
131
-
132
- display: flex;
133
- flex-direction: column;
134
-
135
- header {
136
- padding: p2r(8);
137
- display: flex;
138
- align-items: center;
139
- justify-content: space-between;
140
- background-color: var(--base-2);
141
- border-bottom: var(--border-10);
142
- cursor: grab;
143
- user-select: none;
144
-
145
- &:active {
146
- cursor: grabbing;
147
- }
148
- }
149
-
150
- &:has(header:hover) {
151
- box-shadow: 0 0 10px 2px var(--primary-6);
152
- }
153
- }
154
-
155
- .ports {
156
- padding: p2r(8 0);
157
- display: flex;
158
- gap: p2r(8);
159
- }
160
-
161
- .inputs,
162
- .outputs {
163
- display: flex;
164
- flex-direction: column;
165
- justify-content: space-around;
166
- flex: 1 0;
167
- height: 100%;
168
- }
169
-
170
- .inputs {
171
- .port {
172
- border-radius: 0 50% 50% 0;
173
- border-left-width: 0;
174
- }
175
- }
176
-
177
- .outputs {
178
- align-items: flex-end;
179
-
180
- .port {
181
- border-radius: 50% 0 0 50%;
182
- border-right-width: 0;
183
- }
184
- }
185
-
186
- .port-wrap {
187
- display: flex;
188
- gap: p2r(4);
189
- align-items: center;
190
- }
191
-
192
- .port {
193
- width: p2r(12);
194
- height: p2r(12);
195
- background-color: var(--bp-stroke-c);
196
- border-radius: 50%;
197
- border: var(--border-20);
198
- cursor: pointer;
199
- position: relative;
200
- }
201
-
202
- .port:hover {
203
- background-color: var(--bp-stroke-ca);
204
- }
205
-
206
- .port-name {
207
- font: var(--paragraph-40);
208
- color: var(--base-12);
209
- white-space: nowrap;
210
- }
211
-
212
- .svg-wrap {
213
- position: absolute;
214
- top: 0;
215
- left: 0;
216
- width: 100%;
217
- height: 100%;
218
- pointer-events: none;
219
- }
220
-
221
- .connections-svg {
222
- width: 100%;
223
- height: 100%;
224
- pointer-events: none;
225
- }
226
-
227
- .connection-path {
228
- stroke: var(--bp-stroke-c);
229
- stroke-width: 3;
230
- fill: none;
231
- pointer-events: none;
232
- }
233
-
234
- .drag-path {
235
- stroke: var(--bp-stroke-ca);
236
- stroke-width: 3;
237
- fill: none;
238
- stroke-dasharray: 5, 5;
239
- pointer-events: none;
240
- }
241
- }
242
- }