softui-css 1.0.8 → 1.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/dist/softui.css CHANGED
@@ -1719,8 +1719,8 @@ a.sui-btn-warning:visited {
1719
1719
  transform: scaleX(1);
1720
1720
  }
1721
1721
 
1722
- .sui-tab-list-underlined + .sui-tab-panel > .sui-card:only-child,
1723
- .sui-tab-list-underlined ~ .sui-tab-panel > .sui-card:only-child {
1722
+ .sui-tab-list-underlined + .sui-tab-panel > .sui-card:only-child.sui-tab-flush,
1723
+ .sui-tab-list-underlined ~ .sui-tab-panel > .sui-card:only-child.sui-tab-flush {
1724
1724
  border-top-left-radius: 0;
1725
1725
  border-top-right-radius: 0;
1726
1726
  }
@@ -7828,3 +7828,844 @@ a.sui-btn-warning:visited {
7828
7828
  width: 100%;
7829
7829
  }
7830
7830
  }
7831
+
7832
+ /* ===========================================
7833
+ Sidebar
7834
+ =========================================== */
7835
+ .sui-sidebar {
7836
+ --sui-sidebar-width: 260px;
7837
+ width: var(--sui-sidebar-width);
7838
+ flex-shrink: 0;
7839
+ display: flex;
7840
+ flex-direction: column;
7841
+ background: var(--sui-bg);
7842
+ box-shadow: var(--sui-shadow);
7843
+ overflow: hidden;
7844
+ transition: width 0.2s ease;
7845
+ }
7846
+
7847
+ /* --- Sticky behaviour --- */
7848
+ .sui-sidebar-sticky {
7849
+ position: sticky;
7850
+ top: 0;
7851
+ align-self: flex-start;
7852
+ height: 100vh;
7853
+ }
7854
+
7855
+ /* Offset for a fixed navbar above */
7856
+ .sui-sidebar-sticky.sui-sidebar-nav-offset {
7857
+ top: 56px;
7858
+ height: calc(100vh - 56px);
7859
+ }
7860
+
7861
+ /* --- Header / Content / Footer --- */
7862
+ .sui-sidebar-header {
7863
+ flex-shrink: 0;
7864
+ padding: 20px 16px 12px;
7865
+ }
7866
+
7867
+ .sui-sidebar-header-toggle {
7868
+ display: flex;
7869
+ align-items: center;
7870
+ justify-content: space-between;
7871
+ }
7872
+
7873
+ .sui-sidebar-brand {
7874
+ display: flex;
7875
+ align-items: center;
7876
+ gap: 10px;
7877
+ min-width: 0;
7878
+ font-weight: 700;
7879
+ font-size: 14px;
7880
+ white-space: nowrap;
7881
+ overflow: hidden;
7882
+ }
7883
+
7884
+ .sui-sidebar-content {
7885
+ flex: 1;
7886
+ overflow-x: hidden;
7887
+ overflow-y: auto;
7888
+ padding: 12px 16px;
7889
+ }
7890
+
7891
+ .sui-sidebar-header + .sui-sidebar-divider + .sui-sidebar-content,
7892
+ .sui-sidebar-header + .sui-sidebar-content {
7893
+ padding-top: 4px;
7894
+ }
7895
+
7896
+ .sui-sidebar-footer {
7897
+ flex-shrink: 0;
7898
+ padding: 12px 16px 20px;
7899
+ margin-top: auto;
7900
+ }
7901
+
7902
+ /* --- Groups --- */
7903
+ .sui-sidebar-group {
7904
+ margin-bottom: 8px;
7905
+ }
7906
+
7907
+ .sui-sidebar-group-label {
7908
+ font-size: 11px;
7909
+ font-weight: 700;
7910
+ text-transform: uppercase;
7911
+ letter-spacing: 1px;
7912
+ color: var(--sui-text-muted);
7913
+ padding: 8px 12px 4px;
7914
+ margin: 0;
7915
+ }
7916
+
7917
+ /* --- Nav list --- */
7918
+ .sui-sidebar-nav {
7919
+ list-style: none;
7920
+ padding: 0;
7921
+ margin: 0;
7922
+ }
7923
+
7924
+ .sui-sidebar-nav li a,
7925
+ .sui-sidebar-nav li button {
7926
+ position: relative;
7927
+ display: flex;
7928
+ align-items: center;
7929
+ gap: 10px;
7930
+ width: 100%;
7931
+ padding: 9px 12px;
7932
+ border: none;
7933
+ background: none;
7934
+ border-radius: var(--sui-radius-sm);
7935
+ color: var(--sui-text-muted);
7936
+ text-decoration: none;
7937
+ font-family: var(--sui-font);
7938
+ font-size: 14px;
7939
+ cursor: pointer;
7940
+ transition: var(--sui-transition);
7941
+ }
7942
+
7943
+ .sui-sidebar-nav li a:hover,
7944
+ .sui-sidebar-nav li button:hover {
7945
+ background: rgba(91, 84, 224, 0.06);
7946
+ color: var(--sui-text);
7947
+ }
7948
+
7949
+ .sui-sidebar-nav li a.active,
7950
+ .sui-sidebar-nav li button.active {
7951
+ background: rgba(91, 84, 224, 0.1);
7952
+ color: var(--sui-primary);
7953
+ font-weight: 600;
7954
+ box-shadow: var(--sui-shadow-inset-sm);
7955
+ }
7956
+
7957
+ [data-theme="dark"] .sui-sidebar-nav li a:hover,
7958
+ [data-theme="dark"] .sui-sidebar-nav li button:hover {
7959
+ background: rgba(124, 107, 255, 0.1);
7960
+ }
7961
+
7962
+ [data-theme="dark"] .sui-sidebar-nav li a.active,
7963
+ [data-theme="dark"] .sui-sidebar-nav li button.active {
7964
+ background: rgba(124, 107, 255, 0.15);
7965
+ }
7966
+
7967
+ /* Nav item icon */
7968
+ .sui-sidebar-nav li svg {
7969
+ width: 18px;
7970
+ height: 18px;
7971
+ flex-shrink: 0;
7972
+ opacity: 0.7;
7973
+ }
7974
+
7975
+ .sui-sidebar-nav li a.active svg,
7976
+ .sui-sidebar-nav li button.active svg {
7977
+ opacity: 1;
7978
+ }
7979
+
7980
+ /* Nav item badge (right-aligned) */
7981
+ .sui-sidebar-nav li .sui-sidebar-badge {
7982
+ margin-left: auto;
7983
+ font-size: 11px;
7984
+ font-weight: 600;
7985
+ padding: 2px 8px;
7986
+ border-radius: var(--sui-radius-full);
7987
+ background: rgba(91, 84, 224, 0.1);
7988
+ color: var(--sui-primary);
7989
+ }
7990
+
7991
+ /* --- Divider --- */
7992
+ .sui-sidebar-divider {
7993
+ height: 1px;
7994
+ background: var(--sui-bg-dark);
7995
+ margin: 8px 12px;
7996
+ border: none;
7997
+ }
7998
+
7999
+ /* --- Width variants --- */
8000
+ .sui-sidebar-sm {
8001
+ --sui-sidebar-width: 200px;
8002
+ }
8003
+
8004
+ .sui-sidebar-lg {
8005
+ --sui-sidebar-width: 300px;
8006
+ }
8007
+
8008
+ /* --- Border variant (no shadow) --- */
8009
+ .sui-sidebar-bordered {
8010
+ box-shadow: none;
8011
+ border-right: 1px solid var(--sui-bg-dark);
8012
+ }
8013
+
8014
+ /* --- Inset variant (flat, blends with page) --- */
8015
+ .sui-sidebar-inset {
8016
+ box-shadow: none;
8017
+ background: transparent;
8018
+ }
8019
+
8020
+ /* --- Compact variant (docs-style, tighter spacing) --- */
8021
+ .sui-sidebar-compact {
8022
+ --sui-sidebar-width: 220px;
8023
+ }
8024
+
8025
+ .sui-sidebar-compact .sui-sidebar-content {
8026
+ padding: 12px 10px;
8027
+ }
8028
+
8029
+ .sui-sidebar-compact .sui-sidebar-group-label {
8030
+ font-size: 10px;
8031
+ padding: 12px 12px 4px;
8032
+ color: var(--sui-text-light);
8033
+ }
8034
+
8035
+ .sui-sidebar-compact .sui-sidebar-group-label:first-child {
8036
+ padding-top: 0;
8037
+ }
8038
+
8039
+ .sui-sidebar-compact .sui-sidebar-nav li a,
8040
+ .sui-sidebar-compact .sui-sidebar-nav li button {
8041
+ padding: 7px 12px;
8042
+ font-size: 13px;
8043
+ border-radius: var(--sui-radius-xs);
8044
+ }
8045
+
8046
+ .sui-sidebar-compact .sui-sidebar-nav li a.active,
8047
+ .sui-sidebar-compact .sui-sidebar-nav li button.active {
8048
+ box-shadow: none;
8049
+ }
8050
+
8051
+ /* --- Collapsed (icon-only) --- */
8052
+ .sui-sidebar-collapsed {
8053
+ --sui-sidebar-width: 64px;
8054
+ }
8055
+
8056
+ .sui-sidebar-collapsed .sui-sidebar-header,
8057
+ .sui-sidebar-collapsed .sui-sidebar-content,
8058
+ .sui-sidebar-collapsed .sui-sidebar-footer {
8059
+ padding-left: 8px;
8060
+ padding-right: 8px;
8061
+ }
8062
+
8063
+ .sui-sidebar-collapsed .sui-sidebar-group-label,
8064
+ .sui-sidebar-collapsed .sui-sidebar-badge,
8065
+ .sui-sidebar-collapsed .sui-sidebar-nav li span:not(.sui-sidebar-icon) {
8066
+ display: none;
8067
+ }
8068
+
8069
+ .sui-sidebar-collapsed .sui-sidebar-nav li a,
8070
+ .sui-sidebar-collapsed .sui-sidebar-nav li button {
8071
+ justify-content: center;
8072
+ padding: 10px;
8073
+ gap: 0;
8074
+ }
8075
+
8076
+ .sui-sidebar-collapsed .sui-sidebar-nav li svg {
8077
+ width: 20px;
8078
+ height: 20px;
8079
+ opacity: 0.85;
8080
+ }
8081
+
8082
+ .sui-sidebar-collapsed .sui-sidebar-divider {
8083
+ margin: 8px 4px;
8084
+ }
8085
+
8086
+ /* --- Collapsible (animated collapse/expand) --- */
8087
+ .sui-sidebar-collapsible {
8088
+ transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
8089
+ }
8090
+
8091
+ .sui-sidebar-collapsible .sui-sidebar-header,
8092
+ .sui-sidebar-collapsible .sui-sidebar-content,
8093
+ .sui-sidebar-collapsible .sui-sidebar-footer {
8094
+ transition: padding 0.25s ease;
8095
+ }
8096
+
8097
+ .sui-sidebar-collapsible .sui-sidebar-nav li a,
8098
+ .sui-sidebar-collapsible .sui-sidebar-nav li button {
8099
+ transition: padding 0.25s ease, gap 0.25s ease, color 0.15s ease, background 0.15s ease;
8100
+ }
8101
+
8102
+ .sui-sidebar-collapsible .sui-sidebar-group-label {
8103
+ transition: opacity 0.15s ease, max-height 0.25s ease, margin 0.25s ease;
8104
+ max-height: 30px;
8105
+ overflow: hidden;
8106
+ }
8107
+
8108
+ .sui-sidebar-collapsible .sui-sidebar-nav li span:not(.sui-sidebar-icon),
8109
+ .sui-sidebar-collapsible .sui-sidebar-badge {
8110
+ display: inline-block;
8111
+ overflow: hidden;
8112
+ white-space: nowrap;
8113
+ max-width: 180px;
8114
+ transition: opacity 0.15s ease, max-width 0.25s ease, padding 0.25s ease, margin 0.25s ease;
8115
+ }
8116
+
8117
+ .sui-sidebar-collapsible .sui-sidebar-header span,
8118
+ .sui-sidebar-collapsible .sui-sidebar-footer span {
8119
+ display: inline-block;
8120
+ overflow: hidden;
8121
+ white-space: nowrap;
8122
+ max-width: 180px;
8123
+ transition: opacity 0.15s ease, max-width 0.25s ease;
8124
+ }
8125
+
8126
+ .sui-sidebar-collapsible .sui-sidebar-divider {
8127
+ transition: margin 0.25s ease;
8128
+ }
8129
+
8130
+ /* Override static display:none for collapsible — use animated properties instead */
8131
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-group-label {
8132
+ display: block;
8133
+ opacity: 0;
8134
+ max-height: 0;
8135
+ margin: 0;
8136
+ }
8137
+
8138
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-badge,
8139
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-nav li span:not(.sui-sidebar-icon) {
8140
+ position: absolute;
8141
+ opacity: 0;
8142
+ pointer-events: none;
8143
+ }
8144
+
8145
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-header span,
8146
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-footer span {
8147
+ position: absolute;
8148
+ opacity: 0;
8149
+ pointer-events: none;
8150
+ }
8151
+
8152
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-header > *:not(.sui-sidebar-toggle) {
8153
+ display: none;
8154
+ }
8155
+
8156
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-header {
8157
+ display: flex;
8158
+ justify-content: center;
8159
+ }
8160
+
8161
+ .sui-sidebar-collapsible.sui-sidebar-collapsed .sui-sidebar-footer {
8162
+ display: flex;
8163
+ justify-content: center;
8164
+ }
8165
+
8166
+ /* Toggle button */
8167
+ .sui-sidebar-toggle {
8168
+ display: inline-flex;
8169
+ align-items: center;
8170
+ justify-content: center;
8171
+ width: 28px;
8172
+ height: 28px;
8173
+ padding: 0;
8174
+ border: 1px solid var(--sui-bg-dark);
8175
+ background: var(--sui-bg);
8176
+ border-radius: var(--sui-radius-xs);
8177
+ cursor: pointer;
8178
+ color: var(--sui-text-muted);
8179
+ transition: var(--sui-transition);
8180
+ flex-shrink: 0;
8181
+ }
8182
+
8183
+ .sui-sidebar-toggle:hover {
8184
+ color: var(--sui-text);
8185
+ border-color: var(--sui-primary);
8186
+ }
8187
+
8188
+ .sui-sidebar-toggle svg {
8189
+ width: 16px;
8190
+ height: 16px;
8191
+ transition: transform 0.25s ease;
8192
+ }
8193
+
8194
+ .sui-sidebar-collapsed .sui-sidebar-toggle svg {
8195
+ transform: rotate(180deg);
8196
+ }
8197
+
8198
+ /* --- Trigger button --- */
8199
+ .sui-sidebar-trigger {
8200
+ display: inline-flex;
8201
+ align-items: center;
8202
+ justify-content: center;
8203
+ width: 32px;
8204
+ height: 32px;
8205
+ padding: 0;
8206
+ border: 1px solid var(--sui-bg-dark);
8207
+ background: var(--sui-bg);
8208
+ border-radius: var(--sui-radius-xs);
8209
+ cursor: pointer;
8210
+ color: var(--sui-text-muted);
8211
+ transition: var(--sui-transition);
8212
+ }
8213
+
8214
+ .sui-sidebar-trigger:hover {
8215
+ color: var(--sui-text);
8216
+ border-color: var(--sui-primary);
8217
+ }
8218
+
8219
+ /* --- Responsive --- */
8220
+ @media (max-width: 900px) {
8221
+ .sui-sidebar {
8222
+ display: none;
8223
+ }
8224
+
8225
+ .sui-sidebar.sui-sidebar-mobile-open {
8226
+ display: flex;
8227
+ position: fixed;
8228
+ top: 0;
8229
+ left: 0;
8230
+ width: 280px;
8231
+ height: 100vh;
8232
+ z-index: 200;
8233
+ box-shadow: 8px 0 24px rgba(0, 0, 0, 0.15);
8234
+ }
8235
+ }
8236
+
8237
+ /* Sidebar overlay for mobile */
8238
+ .sui-sidebar-overlay {
8239
+ display: none;
8240
+ }
8241
+
8242
+ @media (max-width: 900px) {
8243
+ .sui-sidebar-overlay {
8244
+ position: fixed;
8245
+ inset: 0;
8246
+ background: rgba(0, 0, 0, 0.4);
8247
+ z-index: 199;
8248
+ opacity: 0;
8249
+ pointer-events: none;
8250
+ transition: opacity 0.3s ease;
8251
+ }
8252
+
8253
+ .sui-sidebar-overlay.open {
8254
+ display: block;
8255
+ opacity: 1;
8256
+ pointer-events: auto;
8257
+ }
8258
+ }
8259
+
8260
+ /* ===========================================
8261
+ Timeline
8262
+ =========================================== */
8263
+ .sui-timeline {
8264
+ display: flex;
8265
+ flex-direction: column;
8266
+ padding: 8px 0;
8267
+ position: relative;
8268
+ }
8269
+
8270
+ .sui-timeline-item {
8271
+ display: flex;
8272
+ align-items: flex-start;
8273
+ position: relative;
8274
+ min-height: 70px;
8275
+ }
8276
+
8277
+ .sui-timeline-item:last-child .sui-timeline-connector {
8278
+ display: none;
8279
+ }
8280
+
8281
+ /* --- Separator (dot + connector column) --- */
8282
+ .sui-timeline-separator {
8283
+ display: flex;
8284
+ flex-direction: column;
8285
+ align-items: center;
8286
+ align-self: stretch;
8287
+ flex-shrink: 0;
8288
+ margin-right: 20px;
8289
+ }
8290
+
8291
+ /* --- Dot --- */
8292
+ .sui-timeline-dot {
8293
+ width: 14px;
8294
+ height: 14px;
8295
+ border-radius: 50%;
8296
+ background: var(--sui-bg-dark);
8297
+ box-shadow: var(--sui-shadow-raised-sm);
8298
+ flex-shrink: 0;
8299
+ position: relative;
8300
+ z-index: 1;
8301
+ transition: var(--sui-transition);
8302
+ }
8303
+
8304
+ /* Inset dot */
8305
+ .sui-timeline-dot-inset {
8306
+ background: var(--sui-bg);
8307
+ box-shadow: var(--sui-shadow-inset-sm);
8308
+ }
8309
+
8310
+ .sui-timeline-dot-inset.sui-timeline-dot-primary { background: rgba(91, 84, 224, 0.15); box-shadow: var(--sui-shadow-inset-sm); }
8311
+ .sui-timeline-dot-inset.sui-timeline-dot-success { background: rgba(45, 206, 137, 0.15); box-shadow: var(--sui-shadow-inset-sm); }
8312
+ .sui-timeline-dot-inset.sui-timeline-dot-danger { background: rgba(231, 76, 111, 0.15); box-shadow: var(--sui-shadow-inset-sm); }
8313
+ .sui-timeline-dot-inset.sui-timeline-dot-warning { background: rgba(245, 166, 35, 0.15); box-shadow: var(--sui-shadow-inset-sm); }
8314
+ .sui-timeline-dot-inset.sui-timeline-dot-info { background: rgba(54, 163, 247, 0.15); box-shadow: var(--sui-shadow-inset-sm); }
8315
+
8316
+ /* --- Connector --- */
8317
+ .sui-timeline-connector {
8318
+ width: 2px;
8319
+ flex: 1;
8320
+ min-height: 24px;
8321
+ background: var(--sui-bg-dark);
8322
+ box-shadow: var(--sui-shadow-inset-sm);
8323
+ border-radius: 1px;
8324
+ margin: 4px 0;
8325
+ }
8326
+
8327
+ /* --- Content --- */
8328
+ .sui-timeline-content {
8329
+ flex: 1;
8330
+ padding-bottom: 24px;
8331
+ min-width: 0;
8332
+ }
8333
+
8334
+ .sui-timeline-content h6 {
8335
+ font-size: 14px;
8336
+ font-weight: 600;
8337
+ color: var(--sui-text);
8338
+ margin: -2px 0 4px;
8339
+ line-height: 1.3;
8340
+ }
8341
+
8342
+ .sui-timeline-content p {
8343
+ font-size: 13px;
8344
+ color: var(--sui-text-muted);
8345
+ margin: 0;
8346
+ line-height: 1.5;
8347
+ }
8348
+
8349
+ /* --- Opposite content --- */
8350
+ .sui-timeline-opposite {
8351
+ flex: 1;
8352
+ text-align: right;
8353
+ padding-right: 20px;
8354
+ padding-bottom: 24px;
8355
+ font-size: 13px;
8356
+ color: var(--sui-text-muted);
8357
+ min-width: 0;
8358
+ }
8359
+
8360
+ /* ===========================================
8361
+ Timeline — Right Aligned
8362
+ =========================================== */
8363
+ .sui-timeline-right .sui-timeline-item {
8364
+ flex-direction: row-reverse;
8365
+ }
8366
+
8367
+ .sui-timeline-right .sui-timeline-separator {
8368
+ margin-right: 0;
8369
+ margin-left: 20px;
8370
+ }
8371
+
8372
+ .sui-timeline-right .sui-timeline-content {
8373
+ text-align: right;
8374
+ }
8375
+
8376
+ /* ===========================================
8377
+ Timeline — Alternating
8378
+ =========================================== */
8379
+ .sui-timeline-alternate .sui-timeline-separator {
8380
+ margin: 0 20px;
8381
+ }
8382
+
8383
+ .sui-timeline-alternate .sui-timeline-content {
8384
+ flex: 1;
8385
+ min-width: 0;
8386
+ }
8387
+
8388
+ .sui-timeline-alternate .sui-timeline-opposite {
8389
+ flex: 1;
8390
+ min-width: 0;
8391
+ padding-right: 0;
8392
+ }
8393
+
8394
+ /* Odd items: opposite left, content right */
8395
+ .sui-timeline-alternate .sui-timeline-item .sui-timeline-opposite {
8396
+ text-align: right;
8397
+ }
8398
+
8399
+ .sui-timeline-alternate .sui-timeline-item .sui-timeline-content {
8400
+ text-align: left;
8401
+ }
8402
+
8403
+ /* Even items: flip to content on left */
8404
+ .sui-timeline-alternate .sui-timeline-item:nth-child(even) {
8405
+ flex-direction: row-reverse;
8406
+ }
8407
+
8408
+ .sui-timeline-alternate .sui-timeline-item:nth-child(even) .sui-timeline-opposite {
8409
+ text-align: left;
8410
+ }
8411
+
8412
+ .sui-timeline-alternate .sui-timeline-item:nth-child(even) .sui-timeline-content {
8413
+ text-align: right;
8414
+ }
8415
+
8416
+ /* When no opposite div exists, use pseudo spacer */
8417
+ .sui-timeline-alternate .sui-timeline-item::before {
8418
+ content: '';
8419
+ flex: 1;
8420
+ }
8421
+
8422
+ .sui-timeline-alternate .sui-timeline-item:has(.sui-timeline-opposite)::before {
8423
+ display: none;
8424
+ }
8425
+
8426
+ .sui-timeline-alternate .sui-timeline-item:nth-child(even):not(:has(.sui-timeline-opposite)) .sui-timeline-content {
8427
+ text-align: right;
8428
+ }
8429
+
8430
+ /* ===========================================
8431
+ Timeline — Colored Dots
8432
+ =========================================== */
8433
+ .sui-timeline-dot-primary {
8434
+ background: var(--sui-primary);
8435
+ box-shadow: 3px 3px 8px rgba(91, 84, 224, 0.4), -3px -3px 8px var(--sui-shadow-light);
8436
+ }
8437
+
8438
+ .sui-timeline-dot-success {
8439
+ background: var(--sui-success);
8440
+ box-shadow: 3px 3px 8px rgba(45, 206, 137, 0.3), -3px -3px 8px var(--sui-shadow-light);
8441
+ }
8442
+
8443
+ .sui-timeline-dot-danger {
8444
+ background: var(--sui-danger);
8445
+ box-shadow: 3px 3px 8px rgba(231, 76, 111, 0.3), -3px -3px 8px var(--sui-shadow-light);
8446
+ }
8447
+
8448
+ .sui-timeline-dot-warning {
8449
+ background: var(--sui-warning);
8450
+ box-shadow: 3px 3px 8px rgba(245, 166, 35, 0.3), -3px -3px 8px var(--sui-shadow-light);
8451
+ }
8452
+
8453
+ .sui-timeline-dot-info {
8454
+ background: var(--sui-info);
8455
+ box-shadow: 3px 3px 8px rgba(54, 163, 247, 0.3), -3px -3px 8px var(--sui-shadow-light);
8456
+ }
8457
+
8458
+ /* ===========================================
8459
+ Timeline — Outlined Dots
8460
+ =========================================== */
8461
+ .sui-timeline-dot-outline {
8462
+ background: transparent;
8463
+ box-shadow: none;
8464
+ border: 2px solid var(--sui-bg-dark);
8465
+ }
8466
+
8467
+ .sui-timeline-dot-outline.sui-timeline-dot-primary {
8468
+ border-color: var(--sui-primary);
8469
+ background: transparent;
8470
+ box-shadow: none;
8471
+ }
8472
+
8473
+ .sui-timeline-dot-outline.sui-timeline-dot-success {
8474
+ border-color: var(--sui-success);
8475
+ background: transparent;
8476
+ box-shadow: none;
8477
+ }
8478
+
8479
+ .sui-timeline-dot-outline.sui-timeline-dot-danger {
8480
+ border-color: var(--sui-danger);
8481
+ background: transparent;
8482
+ box-shadow: none;
8483
+ }
8484
+
8485
+ .sui-timeline-dot-outline.sui-timeline-dot-warning {
8486
+ border-color: var(--sui-warning);
8487
+ background: transparent;
8488
+ box-shadow: none;
8489
+ }
8490
+
8491
+ .sui-timeline-dot-outline.sui-timeline-dot-info {
8492
+ border-color: var(--sui-info);
8493
+ background: transparent;
8494
+ box-shadow: none;
8495
+ }
8496
+
8497
+ /* ===========================================
8498
+ Timeline — Icon Dots
8499
+ =========================================== */
8500
+ .sui-timeline-dot-icon {
8501
+ width: 36px;
8502
+ height: 36px;
8503
+ display: flex;
8504
+ align-items: center;
8505
+ justify-content: center;
8506
+ background: var(--sui-bg);
8507
+ box-shadow: var(--sui-shadow-raised-sm);
8508
+ }
8509
+
8510
+ .sui-timeline-dot-icon svg {
8511
+ width: 18px;
8512
+ height: 18px;
8513
+ stroke: var(--sui-text-muted);
8514
+ fill: none;
8515
+ stroke-width: 2;
8516
+ stroke-linecap: round;
8517
+ stroke-linejoin: round;
8518
+ }
8519
+
8520
+ .sui-timeline-dot-icon.sui-timeline-dot-primary {
8521
+ background: var(--sui-primary);
8522
+ }
8523
+ .sui-timeline-dot-icon.sui-timeline-dot-primary svg { stroke: #fff; }
8524
+
8525
+ .sui-timeline-dot-icon.sui-timeline-dot-success {
8526
+ background: var(--sui-success);
8527
+ }
8528
+ .sui-timeline-dot-icon.sui-timeline-dot-success svg { stroke: #fff; }
8529
+
8530
+ .sui-timeline-dot-icon.sui-timeline-dot-danger {
8531
+ background: var(--sui-danger);
8532
+ }
8533
+ .sui-timeline-dot-icon.sui-timeline-dot-danger svg { stroke: #fff; }
8534
+
8535
+ .sui-timeline-dot-icon.sui-timeline-dot-warning {
8536
+ background: var(--sui-warning);
8537
+ }
8538
+ .sui-timeline-dot-icon.sui-timeline-dot-warning svg { stroke: #fff; }
8539
+
8540
+ .sui-timeline-dot-icon.sui-timeline-dot-info {
8541
+ background: var(--sui-info);
8542
+ }
8543
+ .sui-timeline-dot-icon.sui-timeline-dot-info svg { stroke: #fff; }
8544
+
8545
+ /* Outlined icon dots */
8546
+ .sui-timeline-dot-icon.sui-timeline-dot-outline {
8547
+ background: transparent;
8548
+ box-shadow: none;
8549
+ border: 2px solid var(--sui-bg-dark);
8550
+ }
8551
+
8552
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-primary {
8553
+ border-color: var(--sui-primary);
8554
+ background: transparent;
8555
+ box-shadow: none;
8556
+ }
8557
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-primary svg { stroke: var(--sui-primary); }
8558
+
8559
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-success {
8560
+ border-color: var(--sui-success);
8561
+ background: transparent;
8562
+ box-shadow: none;
8563
+ }
8564
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-success svg { stroke: var(--sui-success); }
8565
+
8566
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-danger {
8567
+ border-color: var(--sui-danger);
8568
+ background: transparent;
8569
+ box-shadow: none;
8570
+ }
8571
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-danger svg { stroke: var(--sui-danger); }
8572
+
8573
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-warning {
8574
+ border-color: var(--sui-warning);
8575
+ background: transparent;
8576
+ box-shadow: none;
8577
+ }
8578
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-warning svg { stroke: var(--sui-warning); }
8579
+
8580
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-info {
8581
+ border-color: var(--sui-info);
8582
+ background: transparent;
8583
+ box-shadow: none;
8584
+ }
8585
+ .sui-timeline-dot-icon.sui-timeline-dot-outline.sui-timeline-dot-info svg { stroke: var(--sui-info); }
8586
+
8587
+ /* Adjust content alignment for icon dots */
8588
+ .sui-timeline-item:has(.sui-timeline-dot-icon) .sui-timeline-content h6 {
8589
+ margin-top: 7px;
8590
+ }
8591
+ .sui-timeline-item:has(.sui-timeline-dot-icon) .sui-timeline-opposite {
8592
+ padding-top: 8px;
8593
+ }
8594
+
8595
+ /* ===========================================
8596
+ Timeline — Compact
8597
+ =========================================== */
8598
+ .sui-timeline-compact .sui-timeline-item {
8599
+ min-height: 48px;
8600
+ }
8601
+
8602
+ .sui-timeline-compact .sui-timeline-dot {
8603
+ width: 10px;
8604
+ height: 10px;
8605
+ }
8606
+
8607
+ .sui-timeline-compact .sui-timeline-dot-icon {
8608
+ width: 28px;
8609
+ height: 28px;
8610
+ }
8611
+
8612
+ .sui-timeline-compact .sui-timeline-dot-icon svg {
8613
+ width: 14px;
8614
+ height: 14px;
8615
+ }
8616
+
8617
+ .sui-timeline-compact .sui-timeline-connector {
8618
+ min-height: 16px;
8619
+ margin: 4px 0;
8620
+ }
8621
+
8622
+ .sui-timeline-compact .sui-timeline-content {
8623
+ padding-bottom: 14px;
8624
+ }
8625
+
8626
+ .sui-timeline-compact .sui-timeline-content h6 {
8627
+ font-size: 13px;
8628
+ }
8629
+
8630
+ .sui-timeline-compact .sui-timeline-content p {
8631
+ font-size: 12px;
8632
+ }
8633
+
8634
+ .sui-timeline-compact .sui-timeline-opposite {
8635
+ padding-bottom: 14px;
8636
+ font-size: 12px;
8637
+ }
8638
+
8639
+ .sui-timeline-compact .sui-timeline-separator {
8640
+ margin-right: 14px;
8641
+ }
8642
+
8643
+ /* ===========================================
8644
+ Timeline — Responsive
8645
+ =========================================== */
8646
+ @media (max-width: 600px) {
8647
+ .sui-timeline-alternate .sui-timeline-item,
8648
+ .sui-timeline-alternate .sui-timeline-item:nth-child(even) {
8649
+ flex-direction: row;
8650
+ }
8651
+
8652
+ .sui-timeline-alternate .sui-timeline-item::before {
8653
+ display: none;
8654
+ }
8655
+
8656
+ .sui-timeline-alternate .sui-timeline-separator {
8657
+ margin: 0 16px 0 0;
8658
+ }
8659
+
8660
+ .sui-timeline-alternate .sui-timeline-content,
8661
+ .sui-timeline-alternate .sui-timeline-item:nth-child(even) .sui-timeline-content {
8662
+ text-align: left;
8663
+ padding-left: 0;
8664
+ padding-right: 0;
8665
+ }
8666
+
8667
+ .sui-timeline-alternate .sui-timeline-opposite,
8668
+ .sui-timeline-alternate .sui-timeline-item:nth-child(even) .sui-timeline-opposite {
8669
+ display: none;
8670
+ }
8671
+ }