@unlk/keymaster 1.6.6 → 1.6.8

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 CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.6.8] - 2026-08-17
6
+
7
+ ### Add
8
+ - OTP Field
9
+
10
+ ## [1.6.7] - 2026-08-04
11
+
12
+ ### Fix
13
+ - Button icon large style
14
+
5
15
  ## [1.6.6] - 2026-07-24
6
16
 
7
17
  ### Update
@@ -34599,6 +34599,8 @@ textarea.form-control-lg {
34599
34599
  }
34600
34600
 
34601
34601
  [class*="btn-icon-"].btn-lg, .btn-group-lg > [class*="btn-icon-"].btn, [class*="btn-icon-outline-"].btn-lg, .btn-group-lg > [class*="btn-icon-outline-"].btn {
34602
+ --bs-btn-padding-x: .75rem;
34603
+ --bs-btn-padding-y: .75rem;
34602
34604
  width: 3rem;
34603
34605
  height: 3rem;
34604
34606
  }
@@ -35219,12 +35221,12 @@ textarea.form-control-lg {
35219
35221
 
35220
35222
  .was-validated .form-check.form-check-tiled > .form-check-input:valid ~ .form-check-label, .form-check.form-check-tiled > .form-check-input.is-valid ~ .form-check-label {
35221
35223
  color: var(--bs-body-color);
35222
- border-color: var(--bs-form-valid-color);
35224
+ border-color: var(--bs-form-valid-border-color);
35223
35225
  }
35224
35226
 
35225
35227
  .was-validated .form-check.form-check-tiled > .form-check-input:valid ~ .form-check-label:before, .form-check.form-check-tiled > .form-check-input.is-valid ~ .form-check-label:before {
35226
35228
  background-color: var(--bs-form-valid-color);
35227
- border-color: var(--bs-form-valid-color);
35229
+ border-color: var(--bs-form-valid-border-color);
35228
35230
  }
35229
35231
 
35230
35232
  .was-validated .form-check-encapsulated .form-check-input:valid ~ .form-check-label, .form-check-encapsulated .form-check-input.is-valid ~ .form-check-label {
@@ -35244,14 +35246,32 @@ textarea.form-control-lg {
35244
35246
  box-shadow: var(--bs-box-shadow-inset), 0 0 0 .0625rem var(--bs-form-valid-color);
35245
35247
  }
35246
35248
 
35249
+ .was-validated .otp:has(.otp-input:valid) .otp-slot, .otp:has(.otp-input.is-valid) .otp-slot {
35250
+ border-color: var(--bs-form-valid-border-color);
35251
+ }
35252
+
35253
+ .otp:has(.otp-input:user-valid) .otp-slot {
35254
+ border-color: var(--bs-form-valid-border-color);
35255
+ }
35256
+
35257
+ .was-validated .otp:has(.otp-input:valid) .otp-slot.otp-slot-active, .otp:has(.otp-input.is-valid) .otp-slot.otp-slot-active {
35258
+ border-color: var(--bs-form-valid-border-color);
35259
+ box-shadow: 0 0 0 .25rem rgba(var(--bs-success-rgb), .25);
35260
+ }
35261
+
35262
+ .otp:has(.otp-input:user-valid) .otp-slot.otp-slot-active {
35263
+ border-color: var(--bs-form-valid-border-color);
35264
+ box-shadow: 0 0 0 .25rem rgba(var(--bs-success-rgb), .25);
35265
+ }
35266
+
35247
35267
  .was-validated .form-check.form-check-tiled > .form-check-input:invalid ~ .form-check-label, .form-check.form-check-tiled > .form-check-input.is-invalid ~ .form-check-label {
35248
35268
  color: var(--bs-body-color);
35249
- border-color: var(--bs-form-invalid-color);
35269
+ border-color: var(--bs-form-invalid-border-color);
35250
35270
  }
35251
35271
 
35252
35272
  .was-validated .form-check.form-check-tiled > .form-check-input:invalid ~ .form-check-label:before, .form-check.form-check-tiled > .form-check-input.is-invalid ~ .form-check-label:before {
35253
35273
  background-color: var(--bs-form-invalid-color);
35254
- border-color: var(--bs-form-invalid-color);
35274
+ border-color: var(--bs-form-invalid-border-color);
35255
35275
  }
35256
35276
 
35257
35277
  .was-validated .form-check-encapsulated .form-check-input:invalid ~ .form-check-label, .form-check-encapsulated .form-check-input.is-invalid ~ .form-check-label {
@@ -35271,6 +35291,24 @@ textarea.form-control-lg {
35271
35291
  box-shadow: var(--bs-box-shadow-inset), 0 0 0 .0625rem var(--bs-form-invalid-color);
35272
35292
  }
35273
35293
 
35294
+ .was-validated .otp:has(.otp-input:invalid) .otp-slot, .otp:has(.otp-input.is-invalid) .otp-slot {
35295
+ border-color: var(--bs-form-invalid-border-color);
35296
+ }
35297
+
35298
+ .otp:has(.otp-input:user-invalid) .otp-slot {
35299
+ border-color: var(--bs-form-invalid-border-color);
35300
+ }
35301
+
35302
+ .was-validated .otp:has(.otp-input:invalid) .otp-slot.otp-slot-active, .otp:has(.otp-input.is-invalid) .otp-slot.otp-slot-active {
35303
+ border-color: var(--bs-form-invalid-border-color);
35304
+ box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25);
35305
+ }
35306
+
35307
+ .otp:has(.otp-input:user-invalid) .otp-slot.otp-slot-active {
35308
+ border-color: var(--bs-form-invalid-border-color);
35309
+ box-shadow: 0 0 0 .25rem rgba(var(--bs-danger-rgb), .25);
35310
+ }
35311
+
35274
35312
  .form-control {
35275
35313
  box-shadow: none;
35276
35314
  }
@@ -35490,6 +35528,139 @@ textarea.form-control-lg {
35490
35528
  transform: scale(.85) translateY(-.5rem) translateX(.15rem);
35491
35529
  }
35492
35530
 
35531
+ .otp-wrapper {
35532
+ flex-direction: column;
35533
+ align-items: flex-start;
35534
+ gap: .375rem;
35535
+ display: flex;
35536
+ }
35537
+
35538
+ .otp {
35539
+ display: inline-block;
35540
+ position: relative;
35541
+ }
35542
+
35543
+ .otp .otp-input {
35544
+ white-space: nowrap;
35545
+ pointer-events: none;
35546
+ opacity: 0;
35547
+ width: 1px;
35548
+ height: 1px;
35549
+ position: absolute;
35550
+ overflow: hidden;
35551
+ }
35552
+
35553
+ .otp .otp-slots {
35554
+ cursor: text;
35555
+ -webkit-user-select: none;
35556
+ user-select: none;
35557
+ align-items: center;
35558
+ gap: .375rem;
35559
+ display: flex;
35560
+ }
35561
+
35562
+ .otp .otp-group {
35563
+ gap: .375rem;
35564
+ display: flex;
35565
+ }
35566
+
35567
+ .otp .otp-slot {
35568
+ width: calc(1.5em + 1rem);
35569
+ height: calc(1.5em + 1rem);
35570
+ color: var(--bs-body-color);
35571
+ background-color: var(--bs-body-bg);
35572
+ border-radius: var(--bs-border-radius-xs);
35573
+ border: .125rem solid #6e727a;
35574
+ justify-content: center;
35575
+ align-items: center;
35576
+ font-size: 1rem;
35577
+ font-weight: 600;
35578
+ transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
35579
+ display: flex;
35580
+ }
35581
+
35582
+ @media (prefers-reduced-motion: reduce) {
35583
+ .otp .otp-slot {
35584
+ transition: none;
35585
+ }
35586
+ }
35587
+
35588
+ .otp .otp-slot.otp-slot-active {
35589
+ border-color: #02f;
35590
+ outline: 0;
35591
+ box-shadow: 0 0 0 .25rem #0022ff40;
35592
+ }
35593
+
35594
+ .otp .otp-slot.otp-slot-active .otp-cursor {
35595
+ animation: 1s step-end infinite otp-blink;
35596
+ }
35597
+
35598
+ .otp .otp-slot.otp-slot-filled .otp-cursor {
35599
+ display: none;
35600
+ }
35601
+
35602
+ .otp .otp-char {
35603
+ line-height: 1;
35604
+ }
35605
+
35606
+ .otp .otp-cursor {
35607
+ opacity: 0;
35608
+ background-color: currentColor;
35609
+ width: 1px;
35610
+ height: 1.25em;
35611
+ position: absolute;
35612
+ }
35613
+
35614
+ .otp .otp-separator {
35615
+ color: var(--bs-secondary-color);
35616
+ margin: 0 .25rem;
35617
+ font-size: 1rem;
35618
+ line-height: calc(1.5em + 1rem);
35619
+ }
35620
+
35621
+ .otp:has(.otp-slots.disabled) .otp-slots {
35622
+ pointer-events: none;
35623
+ cursor: default;
35624
+ }
35625
+
35626
+ .otp:has(.otp-slots.disabled) .otp-slot {
35627
+ background-color: var(--bs-secondary-bg);
35628
+ }
35629
+
35630
+ .otp.otp-sm .otp-slot {
35631
+ border-radius: var(--bs-border-radius-xs);
35632
+ width: calc(1.5em + .75rem);
35633
+ height: calc(1.5em + .75rem);
35634
+ font-size: .875rem;
35635
+ }
35636
+
35637
+ .otp.otp-sm .otp-separator {
35638
+ font-size: .875rem;
35639
+ line-height: calc(1.5em + .75rem);
35640
+ }
35641
+
35642
+ .otp.otp-lg .otp-slot {
35643
+ border-radius: var(--bs-border-radius-sm);
35644
+ width: calc(1.5em + 1.25rem);
35645
+ height: calc(1.5em + 1.25rem);
35646
+ font-size: 1.125rem;
35647
+ }
35648
+
35649
+ .otp.otp-lg .otp-separator {
35650
+ font-size: 1.125rem;
35651
+ line-height: calc(1.5em + 1.25rem);
35652
+ }
35653
+
35654
+ @keyframes otp-blink {
35655
+ 0%, 100% {
35656
+ opacity: 1;
35657
+ }
35658
+
35659
+ 50% {
35660
+ opacity: 0;
35661
+ }
35662
+ }
35663
+
35493
35664
  .pagination {
35494
35665
  border-radius: var(--bs-border-radius-xs);
35495
35666
  background-color: #f2f4ff;