@w6w/ui 0.1.1 → 0.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.
- package/CHANGELOG.md +20 -0
- package/README.md +7 -5
- package/dist/AppPicker.d.ts +1 -0
- package/dist/ConfirmModal-ChoiGy2K.cjs +11 -0
- package/dist/ConfirmModal-ChoiGy2K.cjs.map +1 -0
- package/dist/{ConfirmModal-CD-P8mhN.js → ConfirmModal-Wx3i8F1n.js} +1588 -1564
- package/dist/ConfirmModal-Wx3i8F1n.js.map +1 -0
- package/dist/ConnectionHeader.d.ts +19 -0
- package/dist/EditConnectionModal.d.ts +21 -0
- package/dist/app-pages.d.ts +3 -0
- package/dist/components/AuthFieldsForm.d.ts +8 -1
- package/dist/components/CallableList.d.ts +57 -0
- package/dist/components/ConnectionList.d.ts +44 -0
- package/dist/components/ListItem.d.ts +16 -6
- package/dist/components/ReliabilityChart.d.ts +10 -0
- package/dist/components/ReliabilityList.d.ts +47 -0
- package/dist/connection-app-meta.d.ts +32 -0
- package/dist/flow.cjs +1 -1
- package/dist/flow.mjs +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.mjs +1700 -891
- package/dist/index.mjs.map +1 -1
- package/dist/provider.d.ts +19 -0
- package/dist/reliability-board-layout.d.ts +121 -0
- package/dist/types.d.ts +8 -0
- package/package.json +2 -2
- package/src/styles/_callable-list.scss +60 -0
- package/src/styles/_connections.scss +100 -0
- package/src/styles/_lists.scss +4 -0
- package/src/styles/_reliability.scss +339 -0
- package/src/styles.css +592 -0
- package/src/styles.scss +3 -0
- package/dist/ConfirmModal-8avl9Nv8.cjs +0 -11
- package/dist/ConfirmModal-8avl9Nv8.cjs.map +0 -1
- package/dist/ConfirmModal-CD-P8mhN.js.map +0 -1
package/src/styles.css
CHANGED
|
@@ -2378,6 +2378,11 @@ button.w6w-list-item {
|
|
|
2378
2378
|
font-size: var(--w6w-fs-sm);
|
|
2379
2379
|
}
|
|
2380
2380
|
|
|
2381
|
+
a.w6w-list-item {
|
|
2382
|
+
text-decoration: none;
|
|
2383
|
+
color: inherit;
|
|
2384
|
+
}
|
|
2385
|
+
|
|
2381
2386
|
.w6w-list-item:hover {
|
|
2382
2387
|
background: var(--w6w-panel-2);
|
|
2383
2388
|
}
|
|
@@ -4892,3 +4897,590 @@ dialog.w6w-modal.w6w-modal-fullscreen .w6w-modal-header {
|
|
|
4892
4897
|
font-size: var(--w6w-fs-xs);
|
|
4893
4898
|
white-space: nowrap;
|
|
4894
4899
|
}
|
|
4900
|
+
|
|
4901
|
+
/* --- ReliabilityList / ReliabilityChart ---------------------------------- */
|
|
4902
|
+
/* The service-reliability board: "needs attention" cards, a calls x p95
|
|
4903
|
+
scatter and the services table. State colour throughout comes from the
|
|
4904
|
+
shared `--w6w-health-*` tokens via HealthStatusPill and UptimeStrip (and,
|
|
4905
|
+
for the scatter, read directly) — never from a colour written here.
|
|
4906
|
+
Every navigation site (card, service cell, scatter point) may be an `<a>`,
|
|
4907
|
+
a `<button>` or a plain element, so the shared rules reset all three. */
|
|
4908
|
+
.w6w-rel-section {
|
|
4909
|
+
margin-bottom: var(--w6w-sp-6);
|
|
4910
|
+
}
|
|
4911
|
+
|
|
4912
|
+
.w6w-rel-heading {
|
|
4913
|
+
margin: 0 0 var(--w6w-sp-2);
|
|
4914
|
+
display: flex;
|
|
4915
|
+
align-items: baseline;
|
|
4916
|
+
justify-content: space-between;
|
|
4917
|
+
gap: var(--w6w-sp-3);
|
|
4918
|
+
}
|
|
4919
|
+
|
|
4920
|
+
.w6w-rel-intro {
|
|
4921
|
+
margin: 0 0 var(--w6w-sp-2);
|
|
4922
|
+
}
|
|
4923
|
+
|
|
4924
|
+
.w6w-rel-card {
|
|
4925
|
+
background: var(--w6w-panel);
|
|
4926
|
+
border: 1px solid var(--w6w-border);
|
|
4927
|
+
border-radius: var(--w6w-radius);
|
|
4928
|
+
padding: var(--w6w-sp-4);
|
|
4929
|
+
}
|
|
4930
|
+
|
|
4931
|
+
.w6w-rel-card h4 {
|
|
4932
|
+
margin: 0 0 var(--w6w-sp-2);
|
|
4933
|
+
}
|
|
4934
|
+
|
|
4935
|
+
.w6w-rel-tag {
|
|
4936
|
+
display: inline-block;
|
|
4937
|
+
background: var(--w6w-panel-2);
|
|
4938
|
+
border: 1px solid var(--w6w-border);
|
|
4939
|
+
border-radius: 999px;
|
|
4940
|
+
padding: var(--w6w-sp-0-5) var(--w6w-sp-2);
|
|
4941
|
+
font-size: var(--w6w-fs-xs);
|
|
4942
|
+
color: var(--w6w-muted);
|
|
4943
|
+
margin-right: var(--w6w-sp-1);
|
|
4944
|
+
}
|
|
4945
|
+
|
|
4946
|
+
.w6w-rel-group + .w6w-rel-group {
|
|
4947
|
+
margin-top: var(--w6w-sp-5);
|
|
4948
|
+
}
|
|
4949
|
+
|
|
4950
|
+
.w6w-rel-group-head {
|
|
4951
|
+
margin: 0 0 var(--w6w-sp-2);
|
|
4952
|
+
font-size: var(--w6w-fs-sm);
|
|
4953
|
+
}
|
|
4954
|
+
|
|
4955
|
+
/* The "N more — view all" line under a capped section. */
|
|
4956
|
+
.w6w-rel-more-note {
|
|
4957
|
+
margin: var(--w6w-sp-2) 0 0;
|
|
4958
|
+
}
|
|
4959
|
+
|
|
4960
|
+
/* --- "Needs attention" callout — a few dense cards, not table rows -------- */
|
|
4961
|
+
.w6w-rel-issues {
|
|
4962
|
+
display: grid;
|
|
4963
|
+
/* `auto-fit`, not `auto-fill`: with fewer cards than fit the row, `auto-fill`
|
|
4964
|
+
keeps empty width-reserving tracks and the cards stop short of the edge. */
|
|
4965
|
+
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
|
4966
|
+
gap: var(--w6w-sp-2);
|
|
4967
|
+
}
|
|
4968
|
+
|
|
4969
|
+
.w6w-rel-issue-card {
|
|
4970
|
+
display: flex;
|
|
4971
|
+
flex-direction: column;
|
|
4972
|
+
gap: var(--w6w-sp-2);
|
|
4973
|
+
padding: var(--w6w-sp-3);
|
|
4974
|
+
background: var(--w6w-panel);
|
|
4975
|
+
border: 1px solid var(--w6w-border);
|
|
4976
|
+
/* Same `--w6w-health-*` tokens as the pills inside, so the stripe cannot
|
|
4977
|
+
drift from the pill beside it. `down` on either signal escalates it. */
|
|
4978
|
+
border-left: 3px solid var(--w6w-health-degraded);
|
|
4979
|
+
border-radius: var(--w6w-radius);
|
|
4980
|
+
color: inherit;
|
|
4981
|
+
text-decoration: none;
|
|
4982
|
+
/* button reset (the card is a <button> when only `onOpen` is given) */
|
|
4983
|
+
font: inherit;
|
|
4984
|
+
text-align: left;
|
|
4985
|
+
width: 100%;
|
|
4986
|
+
cursor: pointer;
|
|
4987
|
+
}
|
|
4988
|
+
|
|
4989
|
+
div.w6w-rel-issue-card {
|
|
4990
|
+
cursor: default;
|
|
4991
|
+
}
|
|
4992
|
+
|
|
4993
|
+
.w6w-rel-issue-card:has(.w6w-health-pill-down) {
|
|
4994
|
+
border-left-color: var(--w6w-health-down);
|
|
4995
|
+
}
|
|
4996
|
+
|
|
4997
|
+
a.w6w-rel-issue-card:hover,
|
|
4998
|
+
a.w6w-rel-issue-card:focus-visible,
|
|
4999
|
+
button.w6w-rel-issue-card:hover,
|
|
5000
|
+
button.w6w-rel-issue-card:focus-visible {
|
|
5001
|
+
border-color: var(--w6w-accent);
|
|
5002
|
+
}
|
|
5003
|
+
|
|
5004
|
+
.w6w-rel-issue-head {
|
|
5005
|
+
display: flex;
|
|
5006
|
+
align-items: center;
|
|
5007
|
+
gap: var(--w6w-sp-2);
|
|
5008
|
+
}
|
|
5009
|
+
|
|
5010
|
+
.w6w-rel-issue-head-text {
|
|
5011
|
+
display: flex;
|
|
5012
|
+
flex-direction: column;
|
|
5013
|
+
gap: var(--w6w-sp-0-5);
|
|
5014
|
+
min-width: 0;
|
|
5015
|
+
}
|
|
5016
|
+
|
|
5017
|
+
.w6w-rel-issue-signals {
|
|
5018
|
+
display: flex;
|
|
5019
|
+
gap: var(--w6w-sp-4);
|
|
5020
|
+
}
|
|
5021
|
+
|
|
5022
|
+
.w6w-rel-issue-signal {
|
|
5023
|
+
display: flex;
|
|
5024
|
+
flex-direction: column;
|
|
5025
|
+
gap: var(--w6w-sp-0-5);
|
|
5026
|
+
}
|
|
5027
|
+
|
|
5028
|
+
/* --- Performance scatter — calls x p95, one point per API ----------------- */
|
|
5029
|
+
.w6w-rel-scatter svg {
|
|
5030
|
+
display: block;
|
|
5031
|
+
width: 100%;
|
|
5032
|
+
height: auto;
|
|
5033
|
+
}
|
|
5034
|
+
|
|
5035
|
+
/* SVG shapes have no fill unless one is set here; without it the plot
|
|
5036
|
+
renders as SVG's default opaque black regardless of theme. */
|
|
5037
|
+
.w6w-rel-scatter-plot-bg {
|
|
5038
|
+
fill: var(--w6w-panel-2);
|
|
5039
|
+
}
|
|
5040
|
+
|
|
5041
|
+
.w6w-rel-scatter-grid {
|
|
5042
|
+
stroke: var(--w6w-border);
|
|
5043
|
+
stroke-width: 1;
|
|
5044
|
+
}
|
|
5045
|
+
|
|
5046
|
+
.w6w-rel-scatter-axis-label {
|
|
5047
|
+
fill: var(--w6w-muted);
|
|
5048
|
+
font-size: var(--w6w-fs-xs);
|
|
5049
|
+
}
|
|
5050
|
+
|
|
5051
|
+
.w6w-rel-scatter-axis-title {
|
|
5052
|
+
fill: var(--w6w-muted);
|
|
5053
|
+
font-size: var(--w6w-fs-xs);
|
|
5054
|
+
}
|
|
5055
|
+
|
|
5056
|
+
/* The point's coloured ring — carries exec status. */
|
|
5057
|
+
.w6w-rel-scatter-ring {
|
|
5058
|
+
fill: var(--w6w-panel);
|
|
5059
|
+
stroke-width: 2;
|
|
5060
|
+
}
|
|
5061
|
+
|
|
5062
|
+
.w6w-rel-scatter-ring-ok {
|
|
5063
|
+
stroke: var(--w6w-health-ok);
|
|
5064
|
+
}
|
|
5065
|
+
|
|
5066
|
+
.w6w-rel-scatter-ring-degraded {
|
|
5067
|
+
stroke: var(--w6w-health-degraded);
|
|
5068
|
+
}
|
|
5069
|
+
|
|
5070
|
+
.w6w-rel-scatter-ring-down {
|
|
5071
|
+
stroke: var(--w6w-health-down);
|
|
5072
|
+
}
|
|
5073
|
+
|
|
5074
|
+
.w6w-rel-scatter-ring-unknown {
|
|
5075
|
+
stroke: var(--w6w-health-unknown);
|
|
5076
|
+
}
|
|
5077
|
+
|
|
5078
|
+
.w6w-rel-scatter-point-link {
|
|
5079
|
+
cursor: pointer;
|
|
5080
|
+
}
|
|
5081
|
+
|
|
5082
|
+
.w6w-rel-scatter-point-link:hover .w6w-rel-scatter-ring,
|
|
5083
|
+
.w6w-rel-scatter-point-link:focus-visible .w6w-rel-scatter-ring {
|
|
5084
|
+
stroke-width: 3;
|
|
5085
|
+
}
|
|
5086
|
+
|
|
5087
|
+
.w6w-rel-scatter-point {
|
|
5088
|
+
stroke: var(--w6w-panel);
|
|
5089
|
+
stroke-width: 1.5;
|
|
5090
|
+
fill-opacity: 0.85;
|
|
5091
|
+
}
|
|
5092
|
+
|
|
5093
|
+
.w6w-rel-scatter-point-ok {
|
|
5094
|
+
fill: var(--w6w-health-ok);
|
|
5095
|
+
}
|
|
5096
|
+
|
|
5097
|
+
.w6w-rel-scatter-point-degraded {
|
|
5098
|
+
fill: var(--w6w-health-degraded);
|
|
5099
|
+
}
|
|
5100
|
+
|
|
5101
|
+
.w6w-rel-scatter-point-down {
|
|
5102
|
+
fill: var(--w6w-health-down);
|
|
5103
|
+
}
|
|
5104
|
+
|
|
5105
|
+
.w6w-rel-scatter-point-unknown {
|
|
5106
|
+
fill: var(--w6w-health-unknown);
|
|
5107
|
+
}
|
|
5108
|
+
|
|
5109
|
+
.w6w-rel-scatter-note {
|
|
5110
|
+
margin: var(--w6w-sp-1) 0 0;
|
|
5111
|
+
}
|
|
5112
|
+
|
|
5113
|
+
/* --- The full roster — one real <table> ------------------------------------ */
|
|
5114
|
+
.w6w-rel-table-wrap {
|
|
5115
|
+
overflow-x: auto;
|
|
5116
|
+
}
|
|
5117
|
+
|
|
5118
|
+
.w6w-rel-table {
|
|
5119
|
+
width: 100%;
|
|
5120
|
+
border-collapse: collapse;
|
|
5121
|
+
}
|
|
5122
|
+
|
|
5123
|
+
.w6w-rel-table th {
|
|
5124
|
+
padding: var(--w6w-sp-2) var(--w6w-sp-3);
|
|
5125
|
+
text-align: left;
|
|
5126
|
+
font-size: var(--w6w-fs-xs);
|
|
5127
|
+
font-weight: var(--w6w-fw-semibold);
|
|
5128
|
+
color: var(--w6w-muted);
|
|
5129
|
+
border-bottom: 1px solid var(--w6w-border);
|
|
5130
|
+
white-space: nowrap;
|
|
5131
|
+
}
|
|
5132
|
+
|
|
5133
|
+
.w6w-rel-table td {
|
|
5134
|
+
padding: var(--w6w-sp-2-5) var(--w6w-sp-3);
|
|
5135
|
+
border-bottom: 1px solid var(--w6w-border);
|
|
5136
|
+
vertical-align: top;
|
|
5137
|
+
}
|
|
5138
|
+
|
|
5139
|
+
/* Inside a compact card there is no rule under the last row. */
|
|
5140
|
+
.w6w-rel-card .w6w-rel-table tbody tr:last-child td {
|
|
5141
|
+
border-bottom: none;
|
|
5142
|
+
}
|
|
5143
|
+
|
|
5144
|
+
.w6w-rel-table tbody tr:hover {
|
|
5145
|
+
background: var(--w6w-panel-2);
|
|
5146
|
+
}
|
|
5147
|
+
|
|
5148
|
+
/* A row's own stripe — same tokens and escalation as the issue card; both the
|
|
5149
|
+
tier and the state that select the token are decided server-side. */
|
|
5150
|
+
.w6w-rel-tr.w6w-rel-attention {
|
|
5151
|
+
box-shadow: inset 3px 0 0 var(--w6w-health-degraded);
|
|
5152
|
+
}
|
|
5153
|
+
|
|
5154
|
+
.w6w-rel-tr.w6w-rel-attention:has(.w6w-health-pill-down) {
|
|
5155
|
+
box-shadow: inset 3px 0 0 var(--w6w-health-down);
|
|
5156
|
+
}
|
|
5157
|
+
|
|
5158
|
+
.w6w-rel-tr[data-attention=recent] {
|
|
5159
|
+
box-shadow: inset 3px 0 0 var(--w6w-health-unknown);
|
|
5160
|
+
}
|
|
5161
|
+
|
|
5162
|
+
.w6w-rel-open {
|
|
5163
|
+
display: flex;
|
|
5164
|
+
align-items: center;
|
|
5165
|
+
gap: var(--w6w-sp-2);
|
|
5166
|
+
color: inherit;
|
|
5167
|
+
text-decoration: none;
|
|
5168
|
+
/* button reset (the cell is a <button> when only `onOpen` is given) */
|
|
5169
|
+
font: inherit;
|
|
5170
|
+
text-align: left;
|
|
5171
|
+
background: none;
|
|
5172
|
+
border: 0;
|
|
5173
|
+
padding: 0;
|
|
5174
|
+
}
|
|
5175
|
+
|
|
5176
|
+
a.w6w-rel-open,
|
|
5177
|
+
button.w6w-rel-open {
|
|
5178
|
+
cursor: pointer;
|
|
5179
|
+
}
|
|
5180
|
+
|
|
5181
|
+
.w6w-rel-td-service-text {
|
|
5182
|
+
display: flex;
|
|
5183
|
+
flex-direction: column;
|
|
5184
|
+
gap: var(--w6w-sp-0-5);
|
|
5185
|
+
min-width: 0;
|
|
5186
|
+
}
|
|
5187
|
+
|
|
5188
|
+
.w6w-rel-td-service strong {
|
|
5189
|
+
overflow-wrap: anywhere;
|
|
5190
|
+
}
|
|
5191
|
+
|
|
5192
|
+
a.w6w-rel-open:hover strong,
|
|
5193
|
+
a.w6w-rel-open:focus-visible strong,
|
|
5194
|
+
button.w6w-rel-open:hover strong,
|
|
5195
|
+
button.w6w-rel-open:focus-visible strong {
|
|
5196
|
+
color: var(--w6w-accent);
|
|
5197
|
+
}
|
|
5198
|
+
|
|
5199
|
+
.w6w-rel-td-uptime {
|
|
5200
|
+
min-width: 220px;
|
|
5201
|
+
}
|
|
5202
|
+
|
|
5203
|
+
.w6w-rel-td-uptime .w6w-uptime-strip {
|
|
5204
|
+
max-width: 260px;
|
|
5205
|
+
}
|
|
5206
|
+
|
|
5207
|
+
/* A single short value ("397 ms" / "—"); no caption, whose varying length
|
|
5208
|
+
destabilised this column's `auto` layout. */
|
|
5209
|
+
.w6w-rel-td-p95 {
|
|
5210
|
+
white-space: nowrap;
|
|
5211
|
+
}
|
|
5212
|
+
|
|
5213
|
+
/* Both signals stacked as one line each ("Ops: <pill>" / "API: <pill>") rather
|
|
5214
|
+
than two columns, so the table fits a smaller screen without scrolling. */
|
|
5215
|
+
.w6w-rel-td-status {
|
|
5216
|
+
display: flex;
|
|
5217
|
+
flex-direction: column;
|
|
5218
|
+
gap: var(--w6w-sp-1);
|
|
5219
|
+
min-width: 140px;
|
|
5220
|
+
}
|
|
5221
|
+
|
|
5222
|
+
.w6w-rel-status-row {
|
|
5223
|
+
display: flex;
|
|
5224
|
+
align-items: center;
|
|
5225
|
+
flex-wrap: wrap;
|
|
5226
|
+
gap: var(--w6w-sp-1-5);
|
|
5227
|
+
}
|
|
5228
|
+
|
|
5229
|
+
.w6w-rel-status-label {
|
|
5230
|
+
min-width: 28px;
|
|
5231
|
+
}
|
|
5232
|
+
|
|
5233
|
+
/* Within a status ROW the signal reads inline, beside its label — the issue
|
|
5234
|
+
card's own use of `.w6w-rel-signal` (label above pill) is unaffected. */
|
|
5235
|
+
.w6w-rel-status-row .w6w-rel-signal {
|
|
5236
|
+
flex-direction: row;
|
|
5237
|
+
align-items: center;
|
|
5238
|
+
flex-wrap: wrap;
|
|
5239
|
+
}
|
|
5240
|
+
|
|
5241
|
+
/* One labelled signal inside a state cell/card — label ABOVE its pill, so two
|
|
5242
|
+
labelled pills in a narrow column do not wrap unpredictably. */
|
|
5243
|
+
.w6w-rel-signal {
|
|
5244
|
+
display: flex;
|
|
5245
|
+
flex-direction: column;
|
|
5246
|
+
align-items: flex-start;
|
|
5247
|
+
gap: var(--w6w-sp-0-5);
|
|
5248
|
+
min-width: 0;
|
|
5249
|
+
}
|
|
5250
|
+
|
|
5251
|
+
.w6w-rel-vendor-msg {
|
|
5252
|
+
color: var(--w6w-muted);
|
|
5253
|
+
/* The API's own incident title — clamped, full text in the row's `title`, so
|
|
5254
|
+
one verbose status page cannot stretch a board row. */
|
|
5255
|
+
display: -webkit-box;
|
|
5256
|
+
-webkit-line-clamp: 2;
|
|
5257
|
+
-webkit-box-orient: vertical;
|
|
5258
|
+
overflow: hidden;
|
|
5259
|
+
overflow-wrap: anywhere;
|
|
5260
|
+
}
|
|
5261
|
+
|
|
5262
|
+
/* A service the account never called: no strip, just a note. */
|
|
5263
|
+
.w6w-rel-idle-note {
|
|
5264
|
+
font-size: var(--w6w-fs-xs);
|
|
5265
|
+
font-style: italic;
|
|
5266
|
+
color: var(--w6w-text);
|
|
5267
|
+
}
|
|
5268
|
+
|
|
5269
|
+
.w6w-rel-allclear {
|
|
5270
|
+
margin-bottom: var(--w6w-sp-4);
|
|
5271
|
+
}
|
|
5272
|
+
|
|
5273
|
+
.w6w-rel-allclear p {
|
|
5274
|
+
margin: 0 0 var(--w6w-sp-1-5);
|
|
5275
|
+
}
|
|
5276
|
+
|
|
5277
|
+
@media (max-width: 900px) {
|
|
5278
|
+
/* The table scrolls inside `.w6w-rel-table-wrap` rather than reflowing —
|
|
5279
|
+
4 columns of pills and a strip cannot usefully stack. */
|
|
5280
|
+
.w6w-rel-table {
|
|
5281
|
+
min-width: 600px;
|
|
5282
|
+
}
|
|
5283
|
+
}
|
|
5284
|
+
/* "Show all services →" when only `onShowAll` is given: a <button> that reads as the link. */
|
|
5285
|
+
.w6w-rel-show-all {
|
|
5286
|
+
font: inherit;
|
|
5287
|
+
background: none;
|
|
5288
|
+
border: 0;
|
|
5289
|
+
padding: 0;
|
|
5290
|
+
color: inherit;
|
|
5291
|
+
cursor: pointer;
|
|
5292
|
+
}
|
|
5293
|
+
|
|
5294
|
+
.w6w-rel-show-all:hover,
|
|
5295
|
+
.w6w-rel-show-all:focus-visible {
|
|
5296
|
+
color: var(--w6w-accent);
|
|
5297
|
+
}
|
|
5298
|
+
|
|
5299
|
+
.w6w-callable-list {
|
|
5300
|
+
display: flex;
|
|
5301
|
+
flex-direction: column;
|
|
5302
|
+
gap: var(--w6w-sp-4);
|
|
5303
|
+
}
|
|
5304
|
+
|
|
5305
|
+
.w6w-callable-list-head {
|
|
5306
|
+
display: flex;
|
|
5307
|
+
justify-content: space-between;
|
|
5308
|
+
align-items: flex-start;
|
|
5309
|
+
gap: var(--w6w-sp-4);
|
|
5310
|
+
}
|
|
5311
|
+
|
|
5312
|
+
.w6w-callable-list-heading {
|
|
5313
|
+
display: flex;
|
|
5314
|
+
flex-direction: column;
|
|
5315
|
+
gap: var(--w6w-sp-1);
|
|
5316
|
+
min-width: 0;
|
|
5317
|
+
}
|
|
5318
|
+
|
|
5319
|
+
.w6w-callable-list-title {
|
|
5320
|
+
margin: 0;
|
|
5321
|
+
}
|
|
5322
|
+
|
|
5323
|
+
.w6w-callable-list-description {
|
|
5324
|
+
margin: 0;
|
|
5325
|
+
}
|
|
5326
|
+
|
|
5327
|
+
.w6w-callable-list-toggle {
|
|
5328
|
+
display: flex;
|
|
5329
|
+
align-items: center;
|
|
5330
|
+
gap: var(--w6w-sp-2);
|
|
5331
|
+
cursor: pointer;
|
|
5332
|
+
}
|
|
5333
|
+
|
|
5334
|
+
.w6w-callable-list-actions {
|
|
5335
|
+
display: flex;
|
|
5336
|
+
gap: var(--w6w-sp-2);
|
|
5337
|
+
flex-shrink: 0;
|
|
5338
|
+
white-space: nowrap;
|
|
5339
|
+
}
|
|
5340
|
+
|
|
5341
|
+
.w6w-callable-list-body {
|
|
5342
|
+
border: 1px solid var(--w6w-border);
|
|
5343
|
+
border-radius: 8px;
|
|
5344
|
+
padding: var(--w6w-sp-2);
|
|
5345
|
+
}
|
|
5346
|
+
|
|
5347
|
+
.w6w-callable-list-rows {
|
|
5348
|
+
list-style: none;
|
|
5349
|
+
margin: 0;
|
|
5350
|
+
padding: 0;
|
|
5351
|
+
display: flex;
|
|
5352
|
+
flex-direction: column;
|
|
5353
|
+
gap: var(--w6w-sp-1);
|
|
5354
|
+
}
|
|
5355
|
+
|
|
5356
|
+
.w6w-callable-list-trail {
|
|
5357
|
+
display: inline-flex;
|
|
5358
|
+
align-items: center;
|
|
5359
|
+
gap: var(--w6w-sp-2);
|
|
5360
|
+
}
|
|
5361
|
+
|
|
5362
|
+
.w6w-callable-list-badge {
|
|
5363
|
+
padding: var(--w6w-sp-0-5) var(--w6w-sp-2);
|
|
5364
|
+
border-radius: 999px;
|
|
5365
|
+
border: 1px solid var(--w6w-border);
|
|
5366
|
+
color: var(--w6w-muted);
|
|
5367
|
+
font-size: var(--w6w-fs-xs);
|
|
5368
|
+
}
|
|
5369
|
+
|
|
5370
|
+
/* Connections (D-12u): ConnectionList, ConnectionHeader and the state tags they share. */
|
|
5371
|
+
.w6w-connection-list {
|
|
5372
|
+
display: flex;
|
|
5373
|
+
flex-direction: column;
|
|
5374
|
+
gap: var(--w6w-sp-3);
|
|
5375
|
+
}
|
|
5376
|
+
|
|
5377
|
+
.w6w-connection-list-head {
|
|
5378
|
+
display: flex;
|
|
5379
|
+
justify-content: space-between;
|
|
5380
|
+
align-items: flex-start;
|
|
5381
|
+
gap: var(--w6w-sp-4);
|
|
5382
|
+
}
|
|
5383
|
+
|
|
5384
|
+
.w6w-connection-list-heading {
|
|
5385
|
+
min-width: 0;
|
|
5386
|
+
}
|
|
5387
|
+
|
|
5388
|
+
.w6w-connection-list-actions {
|
|
5389
|
+
display: flex;
|
|
5390
|
+
gap: var(--w6w-sp-2);
|
|
5391
|
+
flex-shrink: 0;
|
|
5392
|
+
}
|
|
5393
|
+
|
|
5394
|
+
.w6w-connection-rows {
|
|
5395
|
+
list-style: none;
|
|
5396
|
+
margin: 0;
|
|
5397
|
+
padding: 0;
|
|
5398
|
+
display: flex;
|
|
5399
|
+
flex-direction: column;
|
|
5400
|
+
gap: var(--w6w-sp-1);
|
|
5401
|
+
}
|
|
5402
|
+
|
|
5403
|
+
.w6w-connection-row {
|
|
5404
|
+
display: flex;
|
|
5405
|
+
align-items: center;
|
|
5406
|
+
gap: var(--w6w-sp-2);
|
|
5407
|
+
}
|
|
5408
|
+
|
|
5409
|
+
.w6w-connection-row-main {
|
|
5410
|
+
flex: 1;
|
|
5411
|
+
min-width: 0;
|
|
5412
|
+
}
|
|
5413
|
+
|
|
5414
|
+
.w6w-connection-row-actions {
|
|
5415
|
+
display: flex;
|
|
5416
|
+
gap: var(--w6w-sp-1-5);
|
|
5417
|
+
flex-shrink: 0;
|
|
5418
|
+
}
|
|
5419
|
+
|
|
5420
|
+
.w6w-connection-name {
|
|
5421
|
+
margin-right: var(--w6w-sp-2);
|
|
5422
|
+
}
|
|
5423
|
+
|
|
5424
|
+
/* State tags (connected / needs attention / invalid). */
|
|
5425
|
+
.w6w-connection-tag {
|
|
5426
|
+
display: inline-block;
|
|
5427
|
+
background: var(--w6w-panel-2);
|
|
5428
|
+
border: 1px solid var(--w6w-border);
|
|
5429
|
+
border-radius: 999px;
|
|
5430
|
+
padding: var(--w6w-sp-0-5) var(--w6w-sp-2);
|
|
5431
|
+
font-size: var(--w6w-fs-xs);
|
|
5432
|
+
margin-right: var(--w6w-sp-1);
|
|
5433
|
+
}
|
|
5434
|
+
|
|
5435
|
+
.w6w-connection-tag-warn {
|
|
5436
|
+
color: #ffb86b;
|
|
5437
|
+
border-color: #ffb86b;
|
|
5438
|
+
}
|
|
5439
|
+
|
|
5440
|
+
.w6w-connection-tag-danger {
|
|
5441
|
+
color: var(--w6w-danger);
|
|
5442
|
+
border-color: var(--w6w-danger);
|
|
5443
|
+
}
|
|
5444
|
+
|
|
5445
|
+
/* ConnectionHeader */
|
|
5446
|
+
.w6w-connection-header {
|
|
5447
|
+
display: flex;
|
|
5448
|
+
align-items: center;
|
|
5449
|
+
gap: var(--w6w-sp-3);
|
|
5450
|
+
}
|
|
5451
|
+
|
|
5452
|
+
.w6w-connection-header-main {
|
|
5453
|
+
flex: 1;
|
|
5454
|
+
min-width: 0;
|
|
5455
|
+
}
|
|
5456
|
+
|
|
5457
|
+
.w6w-connection-header-title {
|
|
5458
|
+
margin: 0;
|
|
5459
|
+
}
|
|
5460
|
+
|
|
5461
|
+
.w6w-connection-header-meta {
|
|
5462
|
+
margin: 0;
|
|
5463
|
+
}
|
|
5464
|
+
|
|
5465
|
+
.w6w-connection-header-actions {
|
|
5466
|
+
display: flex;
|
|
5467
|
+
gap: var(--w6w-sp-1-5);
|
|
5468
|
+
align-items: center;
|
|
5469
|
+
}
|
|
5470
|
+
|
|
5471
|
+
/* The id's copy button appears on hover/focus only. */
|
|
5472
|
+
.w6w-connection-id-copy.w6w-copyable {
|
|
5473
|
+
display: inline-flex;
|
|
5474
|
+
width: auto;
|
|
5475
|
+
min-width: 0;
|
|
5476
|
+
vertical-align: middle;
|
|
5477
|
+
}
|
|
5478
|
+
|
|
5479
|
+
.w6w-connection-id-copy .w6w-copyable-btn {
|
|
5480
|
+
opacity: 0;
|
|
5481
|
+
}
|
|
5482
|
+
|
|
5483
|
+
.w6w-connection-id-copy:hover .w6w-copyable-btn,
|
|
5484
|
+
.w6w-connection-id-copy:focus-within .w6w-copyable-btn {
|
|
5485
|
+
opacity: 1;
|
|
5486
|
+
}
|