@sentropic/design-system-vue 0.36.43 → 0.36.45
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/dist/Badge.d.ts +34 -0
- package/dist/Badge.d.ts.map +1 -1
- package/dist/Badge.js +3 -1
- package/dist/Badge.js.map +1 -1
- package/dist/Checkbox.d.ts +11 -0
- package/dist/Checkbox.d.ts.map +1 -1
- package/dist/Checkbox.js +50 -26
- package/dist/Checkbox.js.map +1 -1
- package/dist/Collapsible.d.ts.map +1 -1
- package/dist/Collapsible.js +6 -0
- package/dist/Collapsible.js.map +1 -1
- package/dist/NavActionStack.d.ts +105 -0
- package/dist/NavActionStack.d.ts.map +1 -0
- package/dist/NavActionStack.js +109 -0
- package/dist/NavActionStack.js.map +1 -0
- package/dist/NavItem.d.ts +189 -0
- package/dist/NavItem.d.ts.map +1 -0
- package/dist/NavItem.js +121 -0
- package/dist/NavItem.js.map +1 -0
- package/dist/NavSection.d.ts +109 -0
- package/dist/NavSection.d.ts.map +1 -0
- package/dist/NavSection.js +104 -0
- package/dist/NavSection.js.map +1 -0
- package/dist/Overline.d.ts +40 -0
- package/dist/Overline.d.ts.map +1 -0
- package/dist/Overline.js +20 -0
- package/dist/Overline.js.map +1 -0
- package/dist/Search.d.ts +11 -0
- package/dist/Search.d.ts.map +1 -1
- package/dist/Search.js +2 -1
- package/dist/Search.js.map +1 -1
- package/dist/SelectableRow.d.ts.map +1 -1
- package/dist/SelectableRow.js +14 -2
- package/dist/SelectableRow.js.map +1 -1
- package/dist/StatusDot.d.ts +87 -0
- package/dist/StatusDot.d.ts.map +1 -0
- package/dist/StatusDot.js +52 -0
- package/dist/StatusDot.js.map +1 -0
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/styles.css +343 -0
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -445,6 +445,31 @@
|
|
|
445
445
|
color: var(--st-component-badge-infoText, var(--st-semantic-feedback-info));
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
+
/* Shape variants (additive). `pill` is the UNTOUCHED base `.st-badge` above —
|
|
449
|
+
no `--pill` rule exists, so a `shape="pill"` (or unset) badge renders
|
|
450
|
+
byte-identically. `--circle` overlays an equal-sided round bubble: equal
|
|
451
|
+
min-width/min-height, equal inline/block padding, centered, tabular-nums for
|
|
452
|
+
stable digit width. 3+ digit content degrades to a rounded-rect (the box
|
|
453
|
+
grows past the diameter, never clips). Every leaf falls back to a base
|
|
454
|
+
literal so a theme that emits no `--st-component-badge-circle-*` renders the
|
|
455
|
+
variant identically. */
|
|
456
|
+
.st-badge--circle {
|
|
457
|
+
border-radius: var(--st-component-badge-circle-radius, 50%);
|
|
458
|
+
box-sizing: border-box;
|
|
459
|
+
font-variant-numeric: tabular-nums;
|
|
460
|
+
justify-content: center;
|
|
461
|
+
min-width: var(--st-component-badge-circle-size, 1.25rem);
|
|
462
|
+
min-height: var(--st-component-badge-circle-size, 1.25rem);
|
|
463
|
+
padding: var(--st-component-badge-circle-padding, 0.125rem);
|
|
464
|
+
text-align: center;
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/* Density variant (additive). `md` is the UNTOUCHED base font-size; `--sm`
|
|
468
|
+
reuses the Tag `sm` scale for cross-house consistency. */
|
|
469
|
+
.st-badge--sm {
|
|
470
|
+
font-size: var(--st-component-badge-sm-fontSize, 0.6875rem);
|
|
471
|
+
}
|
|
472
|
+
|
|
448
473
|
.st-barChart {
|
|
449
474
|
color: var(--st-semantic-text-secondary);
|
|
450
475
|
display: block;
|
|
@@ -8226,6 +8251,15 @@
|
|
|
8226
8251
|
flex: 1 1 auto;
|
|
8227
8252
|
}
|
|
8228
8253
|
|
|
8254
|
+
/* Trigger trailing slot (additive). Holds a count badge / status / glyph
|
|
8255
|
+
between the title and the chevron; never grows, so the chevron stays the
|
|
8256
|
+
rightmost affordance and the title keeps `flex: 1 1 auto`. */
|
|
8257
|
+
.st-collapsible__trailing {
|
|
8258
|
+
align-items: center;
|
|
8259
|
+
display: inline-flex;
|
|
8260
|
+
flex: 0 0 auto;
|
|
8261
|
+
}
|
|
8262
|
+
|
|
8229
8263
|
.st-collapsible__icon {
|
|
8230
8264
|
align-items: center;
|
|
8231
8265
|
color: var(--st-semantic-text-secondary);
|
|
@@ -9025,6 +9059,34 @@
|
|
|
9025
9059
|
white-space: nowrap;
|
|
9026
9060
|
}
|
|
9027
9061
|
|
|
9062
|
+
/* Caption variant (additive). Rows WITHOUT a caption keep the single-line
|
|
9063
|
+
`.st-selectableRow__content` above byte-identically (no `--stacked` rule
|
|
9064
|
+
applies). `--stacked` overlays a vertical column: the primary `__label` keeps
|
|
9065
|
+
its own single-line ellipsis, and the muted `__caption` truncates
|
|
9066
|
+
independently so a long legend never pushes the row width. Every leaf falls
|
|
9067
|
+
back to a base literal so a theme that emits no
|
|
9068
|
+
`--st-component-selectableRow-caption*` renders the caption identically. */
|
|
9069
|
+
.st-selectableRow__content--stacked {
|
|
9070
|
+
display: flex;
|
|
9071
|
+
flex-direction: column;
|
|
9072
|
+
overflow: visible;
|
|
9073
|
+
white-space: normal;
|
|
9074
|
+
gap: var(--st-component-selectableRow-captionGap, 0.125rem);
|
|
9075
|
+
}
|
|
9076
|
+
|
|
9077
|
+
.st-selectableRow__label,
|
|
9078
|
+
.st-selectableRow__caption {
|
|
9079
|
+
min-width: 0;
|
|
9080
|
+
overflow: hidden;
|
|
9081
|
+
text-overflow: ellipsis;
|
|
9082
|
+
white-space: nowrap;
|
|
9083
|
+
}
|
|
9084
|
+
|
|
9085
|
+
.st-selectableRow__caption {
|
|
9086
|
+
color: var(--st-component-selectableRow-captionColor, var(--st-semantic-text-muted));
|
|
9087
|
+
font-size: var(--st-component-selectableRow-captionFontSize, 0.75rem);
|
|
9088
|
+
}
|
|
9089
|
+
|
|
9028
9090
|
@media (prefers-reduced-motion: reduce) {
|
|
9029
9091
|
.st-selectableRow {
|
|
9030
9092
|
transition: none;
|
|
@@ -17047,3 +17109,284 @@
|
|
|
17047
17109
|
font-size: 0.875rem;
|
|
17048
17110
|
line-height: 1.4;
|
|
17049
17111
|
}
|
|
17112
|
+
|
|
17113
|
+
/* ============================================================================
|
|
17114
|
+
NavSystem wave 1 — Vue parity (Overline, StatusDot, NavActionStack) +
|
|
17115
|
+
Checkbox (description/trailing) & Search (fluid) extensions.
|
|
17116
|
+
Token-only, AUCUN hex en dur — chaque var retombe sur le littéral de base.
|
|
17117
|
+
========================================================================== */
|
|
17118
|
+
|
|
17119
|
+
/* Overline — étiquette de section discrète en small-caps. */
|
|
17120
|
+
.st-overline {
|
|
17121
|
+
color: var(--st-component-overline-color, var(--st-semantic-text-secondary, inherit));
|
|
17122
|
+
display: var(--st-component-overline-display, inline-block);
|
|
17123
|
+
font-family: inherit;
|
|
17124
|
+
font-size: var(--st-component-overline-fontSize, 0.6875rem);
|
|
17125
|
+
font-weight: var(--st-component-overline-fontWeight, 600);
|
|
17126
|
+
letter-spacing: var(--st-component-overline-letterSpacing, 0.04em);
|
|
17127
|
+
line-height: var(--st-component-overline-lineHeight, 1.3);
|
|
17128
|
+
margin: 0;
|
|
17129
|
+
text-transform: var(--st-component-overline-textTransform, uppercase);
|
|
17130
|
+
}
|
|
17131
|
+
|
|
17132
|
+
/* StatusDot — pastille de statut (point coloré + label optionnel). */
|
|
17133
|
+
.st-statusDot {
|
|
17134
|
+
align-items: center;
|
|
17135
|
+
color: var(--st-semantic-text-primary, inherit);
|
|
17136
|
+
display: inline-flex;
|
|
17137
|
+
font-family: inherit;
|
|
17138
|
+
gap: var(--st-spacing-2, 0.5rem);
|
|
17139
|
+
line-height: 1;
|
|
17140
|
+
vertical-align: middle;
|
|
17141
|
+
}
|
|
17142
|
+
|
|
17143
|
+
.st-statusDot__dot {
|
|
17144
|
+
border-radius: var(--st-radius-full, 50%);
|
|
17145
|
+
box-sizing: border-box;
|
|
17146
|
+
display: inline-block;
|
|
17147
|
+
flex: none;
|
|
17148
|
+
}
|
|
17149
|
+
|
|
17150
|
+
.st-statusDot__dot--neutral {
|
|
17151
|
+
background-color: var(--st-component-statusDot-neutral, var(--st-semantic-text-secondary));
|
|
17152
|
+
color: var(--st-component-statusDot-neutral, var(--st-semantic-text-secondary));
|
|
17153
|
+
}
|
|
17154
|
+
.st-statusDot__dot--info {
|
|
17155
|
+
background-color: var(--st-component-statusDot-info, var(--st-semantic-feedback-info));
|
|
17156
|
+
color: var(--st-component-statusDot-info, var(--st-semantic-feedback-info));
|
|
17157
|
+
}
|
|
17158
|
+
.st-statusDot__dot--success {
|
|
17159
|
+
background-color: var(--st-component-statusDot-success, var(--st-semantic-feedback-success));
|
|
17160
|
+
color: var(--st-component-statusDot-success, var(--st-semantic-feedback-success));
|
|
17161
|
+
}
|
|
17162
|
+
.st-statusDot__dot--warning {
|
|
17163
|
+
background-color: var(--st-component-statusDot-warning, var(--st-semantic-feedback-warning));
|
|
17164
|
+
color: var(--st-component-statusDot-warning, var(--st-semantic-feedback-warning));
|
|
17165
|
+
}
|
|
17166
|
+
.st-statusDot__dot--error {
|
|
17167
|
+
background-color: var(--st-component-statusDot-error, var(--st-semantic-feedback-error));
|
|
17168
|
+
color: var(--st-component-statusDot-error, var(--st-semantic-feedback-error));
|
|
17169
|
+
}
|
|
17170
|
+
|
|
17171
|
+
.st-statusDot__label {
|
|
17172
|
+
color: var(--st-semantic-text-primary, inherit);
|
|
17173
|
+
font-size: var(--st-component-statusDot-labelFontSize, 0.8125rem);
|
|
17174
|
+
font-weight: var(--st-component-statusDot-labelFontWeight, 500);
|
|
17175
|
+
}
|
|
17176
|
+
|
|
17177
|
+
/* Halo « live » : box-shadow animé. currentColor = la couleur du point. */
|
|
17178
|
+
.st-statusDot__dot--pulse {
|
|
17179
|
+
animation: st-statusDot-pulse 1.6s ease-out infinite;
|
|
17180
|
+
}
|
|
17181
|
+
|
|
17182
|
+
@keyframes st-statusDot-pulse {
|
|
17183
|
+
0% {
|
|
17184
|
+
box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 55%, transparent);
|
|
17185
|
+
}
|
|
17186
|
+
70% {
|
|
17187
|
+
box-shadow: 0 0 0 var(--st-component-statusDot-pulseSpread, 0.375rem)
|
|
17188
|
+
color-mix(in srgb, currentColor 0%, transparent);
|
|
17189
|
+
}
|
|
17190
|
+
100% {
|
|
17191
|
+
box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 0%, transparent);
|
|
17192
|
+
}
|
|
17193
|
+
}
|
|
17194
|
+
|
|
17195
|
+
@media (prefers-reduced-motion: reduce) {
|
|
17196
|
+
.st-statusDot__dot--pulse {
|
|
17197
|
+
animation: none;
|
|
17198
|
+
}
|
|
17199
|
+
}
|
|
17200
|
+
|
|
17201
|
+
/* NavActionStack — pile d'actions hiérarchisées + zone sensible. */
|
|
17202
|
+
.st-navActionStack {
|
|
17203
|
+
display: flex;
|
|
17204
|
+
flex-direction: column;
|
|
17205
|
+
gap: var(--st-spacing-4, 1rem);
|
|
17206
|
+
inline-size: 100%;
|
|
17207
|
+
}
|
|
17208
|
+
|
|
17209
|
+
.st-navActionStack__actions {
|
|
17210
|
+
display: flex;
|
|
17211
|
+
gap: var(--st-spacing-2, 0.5rem);
|
|
17212
|
+
}
|
|
17213
|
+
|
|
17214
|
+
.st-navActionStack--vertical .st-navActionStack__actions {
|
|
17215
|
+
flex-direction: column;
|
|
17216
|
+
align-items: stretch;
|
|
17217
|
+
}
|
|
17218
|
+
|
|
17219
|
+
.st-navActionStack--horizontal .st-navActionStack__actions {
|
|
17220
|
+
flex-direction: row;
|
|
17221
|
+
flex-wrap: wrap;
|
|
17222
|
+
align-items: center;
|
|
17223
|
+
}
|
|
17224
|
+
|
|
17225
|
+
.st-navActionStack--vertical .st-navActionStack__item {
|
|
17226
|
+
inline-size: 100%;
|
|
17227
|
+
}
|
|
17228
|
+
|
|
17229
|
+
.st-navActionStack__danger {
|
|
17230
|
+
display: flex;
|
|
17231
|
+
flex-direction: column;
|
|
17232
|
+
gap: var(--st-spacing-2, 0.5rem);
|
|
17233
|
+
}
|
|
17234
|
+
|
|
17235
|
+
.st-navActionStack__dangerLabel {
|
|
17236
|
+
color: var(--st-component-overline-color, var(--st-semantic-text-secondary, inherit));
|
|
17237
|
+
display: inline-block;
|
|
17238
|
+
font-size: var(--st-component-overline-fontSize, 0.6875rem);
|
|
17239
|
+
font-weight: var(--st-component-overline-fontWeight, 600);
|
|
17240
|
+
letter-spacing: var(--st-component-overline-letterSpacing, 0.04em);
|
|
17241
|
+
line-height: var(--st-component-overline-lineHeight, 1.3);
|
|
17242
|
+
text-transform: var(--st-component-overline-textTransform, uppercase);
|
|
17243
|
+
}
|
|
17244
|
+
|
|
17245
|
+
.st-navActionStack .st-navActionStack__dangerAction {
|
|
17246
|
+
inline-size: 100%;
|
|
17247
|
+
}
|
|
17248
|
+
|
|
17249
|
+
/* Checkbox extension — secondary muted description + trailing slot. */
|
|
17250
|
+
.st-choice:has(.st-choice__trailing) {
|
|
17251
|
+
align-items: start;
|
|
17252
|
+
grid-template-columns: auto 1fr auto;
|
|
17253
|
+
justify-content: space-between;
|
|
17254
|
+
width: 100%;
|
|
17255
|
+
}
|
|
17256
|
+
|
|
17257
|
+
.st-choice__trailing {
|
|
17258
|
+
align-items: center;
|
|
17259
|
+
align-self: start;
|
|
17260
|
+
display: inline-flex;
|
|
17261
|
+
flex: 0 0 auto;
|
|
17262
|
+
justify-content: flex-end;
|
|
17263
|
+
}
|
|
17264
|
+
|
|
17265
|
+
.st-choice__description {
|
|
17266
|
+
color: var(--st-semantic-text-secondary);
|
|
17267
|
+
font-size: 0.8125rem;
|
|
17268
|
+
line-height: 1.4;
|
|
17269
|
+
}
|
|
17270
|
+
|
|
17271
|
+
/* Search extension — fluid lifts the field width cap. */
|
|
17272
|
+
.st-search.st-search--fluid {
|
|
17273
|
+
max-width: none;
|
|
17274
|
+
width: 100%;
|
|
17275
|
+
}
|
|
17276
|
+
|
|
17277
|
+
/* ===========================================================================
|
|
17278
|
+
NavItem — anatomie de rangée canonique du système de navigation (vague 2).
|
|
17279
|
+
Composé sur SelectableRow + ColorSwatch/StatusDot + Badge. Token-only, aucun
|
|
17280
|
+
hex en dur ; chaque var retombe sur un littéral de base.
|
|
17281
|
+
=========================================================================== */
|
|
17282
|
+
.st-navItem {
|
|
17283
|
+
display: block;
|
|
17284
|
+
inline-size: 100%;
|
|
17285
|
+
}
|
|
17286
|
+
|
|
17287
|
+
/* Indentation de PROFONDEUR : décale la rangée SelectableRow (sa tête comprise)
|
|
17288
|
+
par un padding inline-start ADDITIF à son padding de base (0.75rem). La var
|
|
17289
|
+
--st-navItem-indent est posée sur le wrapper et héritée par cascade. */
|
|
17290
|
+
.st-navItem .st-selectableRow {
|
|
17291
|
+
padding-inline-start: calc(0.75rem + var(--st-navItem-indent, 0rem));
|
|
17292
|
+
}
|
|
17293
|
+
|
|
17294
|
+
/* Échelle typographique : la graisse ET la taille DÉCROISSENT avec la
|
|
17295
|
+
profondeur, pour que la hiérarchie se lise sans relief de couleur. Chaque
|
|
17296
|
+
token retombe sur un littéral → thème silencieux = byte-identique. */
|
|
17297
|
+
.st-navItem--depth0 .st-navItem__title {
|
|
17298
|
+
font-size: var(--st-component-navItem-depth0-fontSize, 0.875rem);
|
|
17299
|
+
font-weight: var(--st-component-navItem-depth0-fontWeight, 600);
|
|
17300
|
+
}
|
|
17301
|
+
.st-navItem--depth1 .st-navItem__title {
|
|
17302
|
+
font-size: var(--st-component-navItem-depth1-fontSize, 0.8125rem);
|
|
17303
|
+
font-weight: var(--st-component-navItem-depth1-fontWeight, 500);
|
|
17304
|
+
}
|
|
17305
|
+
.st-navItem--depth2 .st-navItem__title {
|
|
17306
|
+
font-size: var(--st-component-navItem-depth2-fontSize, 0.8125rem);
|
|
17307
|
+
font-weight: var(--st-component-navItem-depth2-fontWeight, 400);
|
|
17308
|
+
}
|
|
17309
|
+
/* L3 — muted : même métrique que L2, couleur atténuée. */
|
|
17310
|
+
.st-navItem--depth3 .st-navItem__title {
|
|
17311
|
+
font-size: var(--st-component-navItem-depth3-fontSize, 0.8125rem);
|
|
17312
|
+
font-weight: var(--st-component-navItem-depth3-fontWeight, 400);
|
|
17313
|
+
color: var(--st-component-navItem-depth3-color, var(--st-semantic-text-muted));
|
|
17314
|
+
}
|
|
17315
|
+
|
|
17316
|
+
.st-navItem__title {
|
|
17317
|
+
display: block;
|
|
17318
|
+
min-width: 0;
|
|
17319
|
+
overflow: hidden;
|
|
17320
|
+
text-overflow: ellipsis;
|
|
17321
|
+
white-space: nowrap;
|
|
17322
|
+
}
|
|
17323
|
+
|
|
17324
|
+
.st-navItem__caption {
|
|
17325
|
+
display: block;
|
|
17326
|
+
min-width: 0;
|
|
17327
|
+
overflow: hidden;
|
|
17328
|
+
text-overflow: ellipsis;
|
|
17329
|
+
white-space: nowrap;
|
|
17330
|
+
}
|
|
17331
|
+
|
|
17332
|
+
/* Ton sémantique de la RANGÉE : teinte le titre par le feedback correspondant.
|
|
17333
|
+
Un « HTTP 403 » error devient rouge sémantique réel. */
|
|
17334
|
+
.st-navItem--status-info .st-navItem__title {
|
|
17335
|
+
color: var(--st-component-navItem-status-info, var(--st-semantic-feedback-info));
|
|
17336
|
+
}
|
|
17337
|
+
.st-navItem--status-success .st-navItem__title {
|
|
17338
|
+
color: var(--st-component-navItem-status-success, var(--st-semantic-feedback-success));
|
|
17339
|
+
}
|
|
17340
|
+
.st-navItem--status-warning .st-navItem__title {
|
|
17341
|
+
color: var(--st-component-navItem-status-warning, var(--st-semantic-feedback-warning));
|
|
17342
|
+
}
|
|
17343
|
+
.st-navItem--status-error .st-navItem__title {
|
|
17344
|
+
color: var(--st-component-navItem-status-error, var(--st-semantic-feedback-error));
|
|
17345
|
+
}
|
|
17346
|
+
|
|
17347
|
+
/* Séparateur token-only : une fine règle pleine largeur après la rangée. */
|
|
17348
|
+
.st-navItem__divider {
|
|
17349
|
+
border: 0;
|
|
17350
|
+
border-top: var(--st-border-width-thin, 1px) solid
|
|
17351
|
+
var(--st-component-navItem-dividerColor, var(--st-semantic-border-subtle, rgba(0, 0, 0, 0.08)));
|
|
17352
|
+
margin-block: var(--st-component-navItem-dividerGap, 0.375rem);
|
|
17353
|
+
}
|
|
17354
|
+
|
|
17355
|
+
/* ===========================================================================
|
|
17356
|
+
NavSection — en-tête de groupe d'un rail / drawer. Composé sur Overline +
|
|
17357
|
+
Collapsible + Badge. Token-only scopé.
|
|
17358
|
+
=========================================================================== */
|
|
17359
|
+
.st-navSection {
|
|
17360
|
+
inline-size: 100%;
|
|
17361
|
+
}
|
|
17362
|
+
|
|
17363
|
+
.st-navSection__header {
|
|
17364
|
+
align-items: baseline;
|
|
17365
|
+
display: flex;
|
|
17366
|
+
gap: var(--st-spacing-2, 0.5rem);
|
|
17367
|
+
justify-content: space-between;
|
|
17368
|
+
padding-block: var(--st-component-navSection-headerPaddingBlock, 0.375rem);
|
|
17369
|
+
}
|
|
17370
|
+
|
|
17371
|
+
/* Le libellé et son compteur forment un bloc ; le Badge circle s'aligne au
|
|
17372
|
+
centre vertical du texte small-caps. */
|
|
17373
|
+
.st-navSection .st-navSection__label {
|
|
17374
|
+
align-items: center;
|
|
17375
|
+
display: inline-flex;
|
|
17376
|
+
gap: var(--st-spacing-2, 0.5rem);
|
|
17377
|
+
}
|
|
17378
|
+
|
|
17379
|
+
.st-navSection .st-navSection__count {
|
|
17380
|
+
flex: 0 0 auto;
|
|
17381
|
+
}
|
|
17382
|
+
|
|
17383
|
+
/* Foyer de l'action de section : ancré à droite, ne grandit pas. */
|
|
17384
|
+
.st-navSection__action {
|
|
17385
|
+
align-items: center;
|
|
17386
|
+
display: inline-flex;
|
|
17387
|
+
flex: 0 0 auto;
|
|
17388
|
+
}
|
|
17389
|
+
|
|
17390
|
+
.st-navSection__body {
|
|
17391
|
+
display: block;
|
|
17392
|
+
}
|