@vanduo-oss/framework 1.3.4 → 1.3.7

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/vanduo.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! Vanduo v1.3.4 | Built: 2026-04-14T21:21:55.517Z | git:73e3db5 | development */
1
+ /*! Vanduo v1.3.7 | Built: 2026-04-18T12:05:32.603Z | git:20b2d08 | development */
2
2
  *, :before, :after {
3
3
  box-sizing: border-box;
4
4
  }
@@ -53169,7 +53169,7 @@ select[multiple].vd-input option, select[multiple] option, .select-input[multipl
53169
53169
  --card-bg: var(--color-white);
53170
53170
  --card-bg-filled: var(--bg-secondary);
53171
53171
  --card-shadow: var(--shadow-sm);
53172
- --card-shadow-elevated: var(--shadow-sm);
53172
+ --card-shadow-elevated: var(--shadow-md);
53173
53173
  --card-glow-color: var(--primary-2);
53174
53174
  --card-glow-border-color: var(--primary-3);
53175
53175
  }
@@ -53177,6 +53177,7 @@ select[multiple].vd-input option, select[multiple] option, .select-input[multipl
53177
53177
  [data-theme="dark"] {
53178
53178
  --card-bg: var(--bg-secondary);
53179
53179
  --card-bg-filled: var(--bg-primary);
53180
+ --card-shadow-elevated: var(--shadow-lg);
53180
53181
  --card-glow-color: var(--primary-3);
53181
53182
  --card-glow-border-color: var(--primary-4);
53182
53183
  }
@@ -53185,6 +53186,7 @@ select[multiple].vd-input option, select[multiple] option, .select-input[multipl
53185
53186
  :root:not([data-theme]) {
53186
53187
  --card-bg: var(--bg-secondary);
53187
53188
  --card-bg-filled: var(--bg-primary);
53189
+ --card-shadow-elevated: var(--shadow-lg);
53188
53190
  --card-glow-color: var(--primary-3);
53189
53191
  --card-glow-border-color: var(--primary-4);
53190
53192
  }
@@ -53212,6 +53214,12 @@ select[multiple].vd-input option, select[multiple] option, .select-input[multipl
53212
53214
 
53213
53215
  .vd-card-elevated, .vd-card {
53214
53216
  box-shadow: var(--card-shadow-elevated);
53217
+ transition: box-shadow .2s, transform .2s;
53218
+ }
53219
+
53220
+ .vd-card:not(a):not(.vd-card-outlined):not(.vd-card-filled):not(.vd-card-glass):not(.vd-card-glow):hover {
53221
+ box-shadow: var(--shadow-lg);
53222
+ transform: translateY(-1px);
53215
53223
  }
53216
53224
 
53217
53225
  .vd-card-outlined {
@@ -53422,6 +53430,197 @@ a.vd-card:active {
53422
53430
  }
53423
53431
  }
53424
53432
 
53433
+ .vd-expanding-cards {
53434
+ flex-direction: row;
53435
+ align-items: stretch;
53436
+ width: calc(100% - 100px);
53437
+ min-width: 600px;
53438
+ max-width: 900px;
53439
+ height: 400px;
53440
+ display: flex;
53441
+ overflow: hidden;
53442
+ }
53443
+
53444
+ .vd-expanding-card {
53445
+ cursor: pointer;
53446
+ background: var(--vd-expanding-card-bg, var(--vd-expanding-card-bg-default, #e6e9ed));
53447
+ background-position: center;
53448
+ background-size: auto 120%;
53449
+ border-radius: 30px;
53450
+ flex-grow: 1;
53451
+ min-width: 60px;
53452
+ margin: 10px;
53453
+ transition: all .5s cubic-bezier(.05, .61, .41, .95);
53454
+ position: relative;
53455
+ overflow: hidden;
53456
+ }
53457
+
53458
+ .vd-expanding-card:first-child {
53459
+ --vd-expanding-card-bg-default: #ed5565;
53460
+ }
53461
+
53462
+ .vd-expanding-card:nth-child(2) {
53463
+ --vd-expanding-card-bg-default: #fc6e51;
53464
+ }
53465
+
53466
+ .vd-expanding-card:nth-child(3) {
53467
+ --vd-expanding-card-bg-default: #ffce54;
53468
+ }
53469
+
53470
+ .vd-expanding-card:nth-child(4) {
53471
+ --vd-expanding-card-bg-default: #2ecc71;
53472
+ }
53473
+
53474
+ .vd-expanding-card:nth-child(5) {
53475
+ --vd-expanding-card-bg-default: #5d9cec;
53476
+ }
53477
+
53478
+ .vd-expanding-card:nth-child(6) {
53479
+ --vd-expanding-card-bg-default: #ac92ec;
53480
+ }
53481
+
53482
+ .vd-expanding-card.is-active {
53483
+ background-size: auto 100%;
53484
+ border-radius: 40px;
53485
+ flex-grow: 10000;
53486
+ max-width: 600px;
53487
+ margin: 0;
53488
+ transform: scale(1);
53489
+ }
53490
+
53491
+ .vd-expanding-card.is-active .vd-expanding-card-shadow {
53492
+ box-shadow: inset 0 -120px 120px -120px #000, inset 0 -120px 120px -100px #000;
53493
+ }
53494
+
53495
+ .vd-expanding-card.is-active .vd-expanding-card-label {
53496
+ bottom: 20px;
53497
+ left: 20px;
53498
+ }
53499
+
53500
+ .vd-expanding-card.is-active .vd-expanding-card-info > div {
53501
+ opacity: 1;
53502
+ left: 0;
53503
+ }
53504
+
53505
+ .vd-expanding-card:not(.is-active) {
53506
+ border-radius: 30px;
53507
+ flex-grow: 1;
53508
+ }
53509
+
53510
+ .vd-expanding-card:not(.is-active) .vd-expanding-card-shadow {
53511
+ bottom: -40px;
53512
+ box-shadow: inset 0 -120px 0 -120px #000, inset 0 -120px 0 -100px #000;
53513
+ }
53514
+
53515
+ .vd-expanding-card:not(.is-active) .vd-expanding-card-label {
53516
+ bottom: 10px;
53517
+ left: 10px;
53518
+ }
53519
+
53520
+ .vd-expanding-card:not(.is-active) .vd-expanding-card-info > div {
53521
+ opacity: 0;
53522
+ left: 20px;
53523
+ }
53524
+
53525
+ .vd-expanding-card-shadow {
53526
+ height: 120px;
53527
+ transition: all .5s cubic-bezier(.05, .61, .41, .95);
53528
+ position: absolute;
53529
+ bottom: 0;
53530
+ left: 0;
53531
+ right: 0;
53532
+ }
53533
+
53534
+ .vd-expanding-card-label {
53535
+ height: 40px;
53536
+ transition: all .5s cubic-bezier(.05, .61, .41, .95);
53537
+ display: flex;
53538
+ position: absolute;
53539
+ right: 0;
53540
+ }
53541
+
53542
+ .vd-expanding-card-icon {
53543
+ min-width: 40px;
53544
+ max-width: 40px;
53545
+ height: 40px;
53546
+ color: var(--vd-expanding-card-bg-default, var(--color-primary, #3b82f6));
53547
+ background-color: #fff;
53548
+ border-radius: 100%;
53549
+ flex-direction: row;
53550
+ justify-content: center;
53551
+ align-items: center;
53552
+ display: flex;
53553
+ }
53554
+
53555
+ .vd-expanding-card-info {
53556
+ color: #fff;
53557
+ white-space: pre;
53558
+ flex-direction: column;
53559
+ justify-content: center;
53560
+ margin-left: 10px;
53561
+ display: flex;
53562
+ }
53563
+
53564
+ .vd-expanding-card-info > div {
53565
+ transition: all .5s cubic-bezier(.05, .61, .41, .95), opacity .5s ease-out;
53566
+ position: relative;
53567
+ }
53568
+
53569
+ .vd-expanding-card-title {
53570
+ font-size: 1.2rem;
53571
+ font-weight: bold;
53572
+ }
53573
+
53574
+ .vd-expanding-card-subtitle {
53575
+ transition-delay: .1s;
53576
+ }
53577
+
53578
+ @media screen and (width <= 718px) {
53579
+ .vd-expanding-cards {
53580
+ min-width: 520px;
53581
+ }
53582
+
53583
+ .vd-expanding-card:nth-child(5) {
53584
+ display: none;
53585
+ }
53586
+ }
53587
+
53588
+ @media screen and (width <= 638px) {
53589
+ .vd-expanding-cards {
53590
+ min-width: 440px;
53591
+ }
53592
+
53593
+ .vd-expanding-card:nth-child(4) {
53594
+ display: none;
53595
+ }
53596
+ }
53597
+
53598
+ @media screen and (width <= 558px) {
53599
+ .vd-expanding-cards {
53600
+ min-width: 360px;
53601
+ }
53602
+
53603
+ .vd-expanding-card:nth-child(3) {
53604
+ display: none;
53605
+ }
53606
+ }
53607
+
53608
+ @media screen and (width <= 478px) {
53609
+ .vd-expanding-cards {
53610
+ min-width: 280px;
53611
+ }
53612
+
53613
+ .vd-expanding-card:nth-child(2) {
53614
+ display: none;
53615
+ }
53616
+ }
53617
+
53618
+ @media (prefers-reduced-motion: reduce) {
53619
+ .vd-expanding-card, .vd-expanding-card-shadow, .vd-expanding-card-label, .vd-expanding-card-info > div {
53620
+ transition: none !important;
53621
+ }
53622
+ }
53623
+
53425
53624
  :root {
53426
53625
  --navbar-bg: var(--color-white);
53427
53626
  --navbar-bg-dark: var(--bg-dark);
@@ -54385,11 +54584,11 @@ a.vd-card:active {
54385
54584
  }
54386
54585
 
54387
54586
  :root {
54388
- --tooltip-bg: var(--color-gray-900);
54389
- --tooltip-bg-light: var(--color-white);
54587
+ --tooltip-bg: var(--color-white);
54588
+ --tooltip-bg-light: var(--color-gray-100);
54390
54589
  --tooltip-bg-dark: var(--color-gray-900);
54391
- --tooltip-text-color: var(--color-white);
54392
- --tooltip-text-color-light: var(--color-gray-900);
54590
+ --tooltip-text-color: var(--color-gray-900);
54591
+ --tooltip-text-color-light: var(--color-gray-800);
54393
54592
  --tooltip-text-color-dark: var(--color-white);
54394
54593
  --tooltip-padding-y: .5rem;
54395
54594
  --tooltip-padding-x: .8125rem;
@@ -54408,16 +54607,16 @@ a.vd-card:active {
54408
54607
  }
54409
54608
 
54410
54609
  [data-theme="dark"] {
54411
- --tooltip-bg: var(--color-gray-100);
54412
- --tooltip-text-color: var(--color-gray-900);
54610
+ --tooltip-bg: var(--color-gray-900);
54611
+ --tooltip-text-color: var(--color-white);
54413
54612
  --tooltip-bg-light: var(--color-gray-800);
54414
54613
  --tooltip-text-color-light: var(--color-gray-100);
54415
54614
  }
54416
54615
 
54417
54616
  @media (prefers-color-scheme: dark) {
54418
54617
  :root:not([data-theme]) {
54419
- --tooltip-bg: var(--color-gray-100);
54420
- --tooltip-text-color: var(--color-gray-900);
54618
+ --tooltip-bg: var(--color-gray-900);
54619
+ --tooltip-text-color: var(--color-white);
54421
54620
  --tooltip-bg-light: var(--color-gray-800);
54422
54621
  --tooltip-text-color-light: var(--color-gray-100);
54423
54622
  }
@@ -61942,6 +62141,220 @@ input.vd-doc-search-input {
61942
62141
  }
61943
62142
  }
61944
62143
 
62144
+ :root {
62145
+ --morph-duration: .75s;
62146
+ --morph-easing: cubic-bezier(.2, .8, .35, 1);
62147
+ --morph-blur-peak: 11px;
62148
+ --morph-wave-color: var(--color-primary, #3b82f6);
62149
+ }
62150
+
62151
+ .vd-morph, [data-vd-morph] {
62152
+ cursor: pointer;
62153
+ -webkit-tap-highlight-color: transparent;
62154
+ position: relative;
62155
+ overflow: hidden;
62156
+ }
62157
+
62158
+ .vd-morph-wave {
62159
+ background: radial-gradient(circle at 32% 28%,
62160
+ #ffffff8c 0%,
62161
+ #ffffff2e 18%,
62162
+ transparent 38%),
62163
+ radial-gradient(circle at 68% 70%,
62164
+ #ffffff4d 0%,
62165
+ transparent 30%),
62166
+ radial-gradient(circle at 50% 50%,
62167
+ color-mix(in srgb, var(--morph-wave-color) 96%, #a8d8ff) 0%,
62168
+ color-mix(in srgb, var(--morph-wave-color) 82%, #7ec8ff) 35%,
62169
+ color-mix(in srgb, var(--morph-wave-color) 70%, #5ba4f5) 65%,
62170
+ color-mix(in srgb, var(--morph-wave-color) 90%, #4478f0) 100%);
62171
+ pointer-events: none;
62172
+ opacity: 0;
62173
+ will-change: width, height, opacity, filter;
62174
+ border-radius: 50%;
62175
+ position: absolute;
62176
+ transform: translate(-50%, -50%);
62177
+ }
62178
+
62179
+ .vd-morph.is-morphing .vd-morph-wave {
62180
+ animation: vd-morph-expand var(--morph-duration) var(--morph-easing) forwards;
62181
+ }
62182
+
62183
+ .vd-morph.is-morphing .vd-morph-wave:after {
62184
+ content: "";
62185
+ background: radial-gradient(circle at 50% 50%,
62186
+ color-mix(in srgb, var(--morph-wave-color) 70%, #b0e0ff) 0%,
62187
+ color-mix(in srgb, var(--morph-wave-color) 50%, #88c0ff) 45%,
62188
+ transparent 80%);
62189
+ opacity: 0;
62190
+ width: 0;
62191
+ height: 0;
62192
+ animation: vd-morph-expand2 var(--morph-duration) var(--morph-easing) 80ms forwards;
62193
+ border-radius: 50%;
62194
+ position: absolute;
62195
+ top: 50%;
62196
+ left: 50%;
62197
+ transform: translate(-50%, -50%);
62198
+ }
62199
+
62200
+ @keyframes vd-morph-expand {
62201
+ 0% {
62202
+ opacity: 0;
62203
+ filter: blur() saturate(2);
62204
+ width: 0;
62205
+ height: 0;
62206
+ }
62207
+
62208
+ 6% {
62209
+ opacity: 1;
62210
+ filter: blur(1px) saturate(2.2);
62211
+ }
62212
+
62213
+ 35% {
62214
+ opacity: .92;
62215
+ filter: blur(6px) saturate(1.7);
62216
+ }
62217
+
62218
+ 68% {
62219
+ opacity: .6;
62220
+ width: 360%;
62221
+ height: 360%;
62222
+ filter: blur(var(--morph-blur-peak)) saturate(1.3);
62223
+ }
62224
+
62225
+ 100% {
62226
+ opacity: 0;
62227
+ filter: blur(7px) saturate();
62228
+ width: 360%;
62229
+ height: 360%;
62230
+ }
62231
+ }
62232
+
62233
+ @keyframes vd-morph-expand2 {
62234
+ 0% {
62235
+ opacity: 0;
62236
+ filter: blur();
62237
+ width: 0;
62238
+ height: 0;
62239
+ }
62240
+
62241
+ 10% {
62242
+ opacity: .7;
62243
+ filter: blur(3px);
62244
+ }
62245
+
62246
+ 60% {
62247
+ opacity: .38;
62248
+ filter: blur(14px);
62249
+ width: 280%;
62250
+ height: 280%;
62251
+ }
62252
+
62253
+ 100% {
62254
+ opacity: 0;
62255
+ filter: blur(10px);
62256
+ width: 280%;
62257
+ height: 280%;
62258
+ }
62259
+ }
62260
+
62261
+ .vd-morph-shine {
62262
+ pointer-events: none;
62263
+ opacity: 0;
62264
+ will-change: left, opacity;
62265
+ background: linear-gradient(105deg, #0000 0%, #ffffff1a 35%, #ffffff85 50%, #ffffff1a 65%, #0000 100%);
62266
+ width: 80%;
62267
+ height: 100%;
62268
+ position: absolute;
62269
+ top: 0;
62270
+ left: -110%;
62271
+ transform: skewX(-12deg);
62272
+ }
62273
+
62274
+ .vd-morph.is-morphing .vd-morph-shine {
62275
+ animation: .72s cubic-bezier(.3, .65, .5, 1) 40ms forwards vd-morph-shine;
62276
+ }
62277
+
62278
+ @keyframes vd-morph-shine {
62279
+ 0% {
62280
+ opacity: 0;
62281
+ left: -110%;
62282
+ }
62283
+
62284
+ 15% {
62285
+ opacity: .9;
62286
+ }
62287
+
62288
+ 72% {
62289
+ opacity: .4;
62290
+ }
62291
+
62292
+ 100% {
62293
+ opacity: 0;
62294
+ left: 130%;
62295
+ }
62296
+ }
62297
+
62298
+ .vd-morph-content {
62299
+ pointer-events: none;
62300
+ will-change: opacity, transform, filter;
62301
+ justify-content: center;
62302
+ align-items: center;
62303
+ gap: .45rem;
62304
+ display: flex;
62305
+ position: absolute;
62306
+ inset: 0;
62307
+ }
62308
+
62309
+ .vd-morph-current {
62310
+ opacity: 1;
62311
+ filter: blur();
62312
+ z-index: 2;
62313
+ transition: opacity .28s cubic-bezier(.4, 0, .6, 1), transform .28s cubic-bezier(.4, 0, .6, 1), filter .28s;
62314
+ transform: scale(1) translateY(0);
62315
+ }
62316
+
62317
+ .vd-morph-next {
62318
+ opacity: 0;
62319
+ filter: blur(3px);
62320
+ z-index: 1;
62321
+ transition: opacity .3s cubic-bezier(0, 0, .2, 1), transform .3s cubic-bezier(0, 0, .2, 1), filter .3s;
62322
+ transform: scale(.86) translateY(4px);
62323
+ }
62324
+
62325
+ .vd-morph.is-morphing .vd-morph-current {
62326
+ opacity: 0;
62327
+ filter: blur(4px);
62328
+ transition-duration: .2s;
62329
+ transition-delay: 0s;
62330
+ transform: scale(.82) translateY(-4px);
62331
+ }
62332
+
62333
+ .vd-morph.is-morphing .vd-morph-next {
62334
+ opacity: 1;
62335
+ filter: blur();
62336
+ transition-duration: .3s;
62337
+ transition-delay: .25s;
62338
+ transform: scale(1) translateY(0);
62339
+ }
62340
+
62341
+ .vd-morph-sm {
62342
+ --morph-duration: .5s;
62343
+ --morph-blur-peak: 7px;
62344
+ }
62345
+
62346
+ .vd-morph-lg {
62347
+ --morph-duration: 1s;
62348
+ --morph-blur-peak: 16px;
62349
+ }
62350
+
62351
+ @media (prefers-reduced-motion: reduce) {
62352
+ .vd-morph, .vd-morph-content, .vd-morph-wave, .vd-morph-shine {
62353
+ transition: none !important;
62354
+ animation: none !important;
62355
+ }
62356
+ }
62357
+
61945
62358
  :root {
61946
62359
  --draggable-bg: var(--color-white);
61947
62360
  --draggable-border-color: var(--border-color);
@@ -63120,6 +63533,12 @@ input.vd-doc-search-input {
63120
63533
  background: var(--dp-day-hover-bg);
63121
63534
  }
63122
63535
 
63536
+ .vd-datepicker-grid {
63537
+ gap: var(--dp-gap);
63538
+ flex-direction: column;
63539
+ display: flex;
63540
+ }
63541
+
63123
63542
  .vd-datepicker-weekdays {
63124
63543
  gap: var(--dp-gap);
63125
63544
  text-align: center;
@@ -63131,7 +63550,7 @@ input.vd-doc-search-input {
63131
63550
  display: grid;
63132
63551
  }
63133
63552
 
63134
- .vd-datepicker-days {
63553
+ .vd-datepicker-days, .vd-datepicker-row {
63135
63554
  gap: var(--dp-gap);
63136
63555
  grid-template-columns: repeat(7, 1fr);
63137
63556
  display: grid;
@@ -63625,6 +64044,47 @@ input.vd-doc-search-input {
63625
64044
  }
63626
64045
  }
63627
64046
 
64047
+ .vd-timeline-animated .vd-timeline-item {
64048
+ opacity: 0;
64049
+ transition: opacity .55s, transform .55s cubic-bezier(.2, .8, .35, 1);
64050
+ transition-delay: var(--vd-timeline-reveal-delay, 0s);
64051
+ transform: translateY(12px);
64052
+ }
64053
+
64054
+ .vd-timeline-animated .vd-timeline-item .vd-timeline-marker {
64055
+ transform-origin: center;
64056
+ transition: transform .45s cubic-bezier(.34, 1.56, .64, 1);
64057
+ transition-delay: calc(var(--vd-timeline-reveal-delay, 0s) + .12s);
64058
+ transform: scale(.4);
64059
+ }
64060
+
64061
+ .vd-timeline-animated .vd-timeline-item.is-revealed {
64062
+ opacity: 1;
64063
+ transform: none;
64064
+ }
64065
+
64066
+ .vd-timeline-animated .vd-timeline-item.is-revealed .vd-timeline-marker {
64067
+ transform: scale(1);
64068
+ }
64069
+
64070
+ @media (width >= 769px) {
64071
+ .vd-timeline-alternating.vd-timeline-animated .vd-timeline-item:nth-child(odd):not(.is-revealed) {
64072
+ transform: translate(-12px, 12px);
64073
+ }
64074
+
64075
+ .vd-timeline-alternating.vd-timeline-animated .vd-timeline-item:nth-child(2n):not(.is-revealed) {
64076
+ transform: translate(12px, 12px);
64077
+ }
64078
+ }
64079
+
64080
+ @media (prefers-reduced-motion: reduce) {
64081
+ .vd-timeline-animated .vd-timeline-item, .vd-timeline-animated .vd-timeline-item .vd-timeline-marker {
64082
+ opacity: 1;
64083
+ transition: none;
64084
+ transform: none;
64085
+ }
64086
+ }
64087
+
63628
64088
  :root {
63629
64089
  --rating-active-color: #f59e0b;
63630
64090
  --rating-inactive-color: var(--color-gray-300, #dee2e6);
@@ -64028,9 +64488,10 @@ input.vd-doc-search-input {
64028
64488
  --spotlight-tooltip-color: var(--text-primary, #212529);
64029
64489
  --spotlight-tooltip-shadow: 0 .5rem 1.3125rem #00000026;
64030
64490
  --spotlight-tooltip-padding: 1.3125rem;
64031
- --spotlight-tooltip-radius: var(--border-radius, .5rem);
64491
+ --spotlight-tooltip-radius: var(--card-border-radius, var(--btn-border-radius-lg, .5rem));
64032
64492
  --spotlight-tooltip-max-width: 21rem;
64033
64493
  --spotlight-highlight-padding: .5rem;
64494
+ --spotlight-target-radius: var(--card-border-radius, var(--btn-border-radius-lg, var(--btn-border-radius, .25rem)));
64034
64495
  --spotlight-z-index: 1080;
64035
64496
  }
64036
64497
 
@@ -64099,9 +64560,9 @@ input.vd-doc-search-input {
64099
64560
 
64100
64561
  .vd-spotlight-btn {
64101
64562
  border: 1px solid var(--border-color, #dee2e6);
64563
+ border-radius: var(--btn-border-radius-sm, .25rem);
64102
64564
  cursor: pointer;
64103
64565
  background: none;
64104
- border-radius: .25rem;
64105
64566
  padding: .3125rem .8125rem;
64106
64567
  font-size: .8125rem;
64107
64568
  transition: background .15s;
@@ -64123,10 +64584,12 @@ input.vd-doc-search-input {
64123
64584
 
64124
64585
  .vd-spotlight-target {
64125
64586
  z-index: calc(var(--spotlight-z-index) + 1);
64587
+ isolation: isolate;
64126
64588
  box-shadow: 0 0 0 var(--spotlight-highlight-padding) #0d6efd40,
64127
64589
  0 0 0 9999px var(--spotlight-overlay-bg);
64128
- border-radius: .25rem;
64129
64590
  position: relative;
64591
+ overflow: visible;
64592
+ border-radius: var(--spotlight-target-radius) !important;
64130
64593
  }
64131
64594
 
64132
64595
  :root {