@clayui/css 3.39.0 → 3.42.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.
Files changed (109) hide show
  1. package/lib/css/atlas.css +1127 -1387
  2. package/lib/css/atlas.css.map +1 -1
  3. package/lib/css/base.css +908 -1138
  4. package/lib/css/base.css.map +1 -1
  5. package/lib/css/bootstrap.css.map +1 -1
  6. package/lib/css/cadmin.css +1021 -1148
  7. package/lib/css/cadmin.css.map +1 -1
  8. package/lib/images/icons/filter.svg +1 -1
  9. package/lib/images/icons/icons.svg +1 -1
  10. package/package.json +2 -2
  11. package/src/images/icons/filter.svg +1 -1
  12. package/src/scss/_mixins.scss +2 -0
  13. package/src/scss/atlas/variables/_alerts.scss +10 -0
  14. package/src/scss/atlas/variables/_application-bar.scss +32 -12
  15. package/src/scss/atlas/variables/_breadcrumbs.scss +4 -2
  16. package/src/scss/atlas/variables/_cards.scss +2 -2
  17. package/src/scss/atlas/variables/_dropdowns.scss +179 -12
  18. package/src/scss/atlas/variables/_forms.scss +33 -1
  19. package/src/scss/atlas/variables/_globals.scss +13 -0
  20. package/src/scss/atlas/variables/_labels.scss +88 -56
  21. package/src/scss/atlas/variables/_management-bar.scss +53 -21
  22. package/src/scss/atlas/variables/_navigation-bar.scss +104 -18
  23. package/src/scss/atlas/variables/_navs.scss +20 -8
  24. package/src/scss/atlas/variables/_pagination.scss +4 -2
  25. package/src/scss/atlas/variables/_sheets.scss +4 -2
  26. package/src/scss/atlas/variables/_sidebar.scss +1 -1
  27. package/src/scss/atlas/variables/_tables.scss +58 -28
  28. package/src/scss/cadmin/components/_alerts.scss +1 -17
  29. package/src/scss/cadmin/components/_cards.scss +12 -14
  30. package/src/scss/cadmin/components/_dropdowns.scss +66 -196
  31. package/src/scss/cadmin/components/_form-validation.scss +10 -237
  32. package/src/scss/cadmin/components/_icons.scss +1 -6
  33. package/src/scss/cadmin/components/_input-groups.scss +17 -14
  34. package/src/scss/cadmin/components/_pagination.scss +20 -236
  35. package/src/scss/cadmin/components/_popovers.scss +31 -252
  36. package/src/scss/cadmin/components/_reboot.scss +1 -8
  37. package/src/scss/cadmin/components/_toggle-switch.scss +20 -358
  38. package/src/scss/cadmin/components/_tooltip.scss +29 -167
  39. package/src/scss/cadmin/components/_type.scss +9 -1
  40. package/src/scss/cadmin/variables/_alerts.scss +35 -11
  41. package/src/scss/cadmin/variables/_breadcrumbs.scss +10 -6
  42. package/src/scss/cadmin/variables/_cards.scss +91 -23
  43. package/src/scss/cadmin/variables/_dropdowns.scss +440 -71
  44. package/src/scss/cadmin/variables/_forms.scss +353 -2
  45. package/src/scss/cadmin/variables/_globals.scss +14 -0
  46. package/src/scss/cadmin/variables/_icons.scss +15 -2
  47. package/src/scss/cadmin/variables/_labels.scss +104 -72
  48. package/src/scss/cadmin/variables/_links.scss +9 -7
  49. package/src/scss/cadmin/variables/_management-bar.scss +70 -30
  50. package/src/scss/cadmin/variables/_navigation-bar.scss +118 -22
  51. package/src/scss/cadmin/variables/_pagination.scss +274 -68
  52. package/src/scss/cadmin/variables/_popovers.scss +410 -0
  53. package/src/scss/cadmin/variables/_sidebar.scss +17 -5
  54. package/src/scss/cadmin/variables/_toggle-switch.scss +404 -1
  55. package/src/scss/cadmin/variables/_tooltip.scss +299 -0
  56. package/src/scss/cadmin/variables/_type.scss +3 -0
  57. package/src/scss/components/_alerts.scss +5 -17
  58. package/src/scss/components/_button-groups.scss +6 -6
  59. package/src/scss/components/_cards.scss +5 -5
  60. package/src/scss/components/_dropdowns.scss +52 -200
  61. package/src/scss/components/_form-validation.scss +8 -237
  62. package/src/scss/components/_forms.scss +61 -4
  63. package/src/scss/components/_icons.scss +4 -9
  64. package/src/scss/components/_input-groups.scss +17 -14
  65. package/src/scss/components/_multi-step-nav.scss +12 -8
  66. package/src/scss/components/_pagination.scss +18 -234
  67. package/src/scss/components/_popovers.scss +30 -237
  68. package/src/scss/components/_reboot.scss +3 -39
  69. package/src/scss/components/_toggle-switch.scss +36 -351
  70. package/src/scss/components/_tooltip.scss +29 -164
  71. package/src/scss/components/_type.scss +9 -1
  72. package/src/scss/functions/_global-functions.scss +18 -0
  73. package/src/scss/functions/_lx-icons-generated.scss +1 -1
  74. package/src/scss/mixins/_alerts.scss +25 -0
  75. package/src/scss/mixins/_buttons.scss +827 -384
  76. package/src/scss/mixins/_cards.scss +610 -114
  77. package/src/scss/mixins/_close.scss +0 -1
  78. package/src/scss/mixins/_custom-forms.scss +46 -34
  79. package/src/scss/mixins/_dropdown-menu.scss +139 -53
  80. package/src/scss/mixins/_forms.scss +686 -252
  81. package/src/scss/mixins/_globals.scss +244 -234
  82. package/src/scss/mixins/_labels.scss +1 -1
  83. package/src/scss/mixins/_links.scss +795 -329
  84. package/src/scss/mixins/_navbar.scss +759 -140
  85. package/src/scss/mixins/_pagination.scss +422 -0
  86. package/src/scss/mixins/_popovers.scss +90 -0
  87. package/src/scss/mixins/_toggle-switch.scss +1140 -14
  88. package/src/scss/mixins/_tooltip.scss +70 -0
  89. package/src/scss/variables/_alerts.scss +34 -10
  90. package/src/scss/variables/_application-bar.scss +18 -6
  91. package/src/scss/variables/_breadcrumbs.scss +8 -4
  92. package/src/scss/variables/_cards.scss +40 -2
  93. package/src/scss/variables/_dropdowns.scss +570 -62
  94. package/src/scss/variables/_forms.scss +303 -1
  95. package/src/scss/variables/_globals.scss +53 -0
  96. package/src/scss/variables/_icons.scss +60 -9
  97. package/src/scss/variables/_labels.scss +120 -88
  98. package/src/scss/variables/_links.scss +15 -13
  99. package/src/scss/variables/_management-bar.scss +45 -12
  100. package/src/scss/variables/_navigation-bar.scss +95 -14
  101. package/src/scss/variables/_navs.scss +33 -13
  102. package/src/scss/variables/_pagination.scss +267 -65
  103. package/src/scss/variables/_popovers.scss +392 -0
  104. package/src/scss/variables/_sheets.scss +4 -2
  105. package/src/scss/variables/_sidebar.scss +17 -5
  106. package/src/scss/variables/_tables.scss +24 -8
  107. package/src/scss/variables/_toggle-switch.scss +404 -5
  108. package/src/scss/variables/_tooltip.scss +299 -0
  109. package/src/scss/variables/_type.scss +3 -0
@@ -250,280 +250,299 @@
250
250
  /// - Add @link to documentation
251
251
 
252
252
  @mixin clay-form-control-variant($map) {
253
- $enabled: setter(map-get($map, enabled), true);
254
-
255
- $base: setter($map, ());
256
- $base: map-merge(
257
- $map,
258
- (
259
- background-color:
260
- setter(map-get($map, bg), map-get($map, background-color)),
261
- background-clip:
262
- setter(map-get($map, bg-clip), map-get($map, background-clip)),
263
- background-image:
264
- setter(map-get($map, bg-image), map-get($map, background-image)),
265
- background-position:
266
- setter(
267
- map-get($map, bg-position),
268
- map-get($map, background-position)
269
- ),
270
- background-repeat:
271
- setter(
272
- map-get($map, bg-repeat),
273
- map-get($map, background-repeat)
274
- ),
275
- background-size:
276
- setter(map-get($map, bg-size), map-get($map, background-size)),
277
- )
278
- );
279
-
280
- $placeholder: setter(map-get($map, placeholder), ());
281
- $placeholder: map-deep-merge(
282
- $placeholder,
283
- (
284
- color:
285
- setter(
286
- map-get($map, placeholder-color),
287
- map-get($placeholder, color)
288
- ),
289
- opacity:
290
- setter(
291
- map-get($map, placeholder-opacity),
292
- map-get($placeholder, opacity)
293
- ),
294
- )
295
- );
296
-
297
- $selection: setter(map-get($map, selection), ());
298
- $selection: map-deep-merge(
299
- $selection,
300
- (
301
- background-color:
302
- setter(
303
- map-get($map, selection-bg),
304
- map-get($selection, background-color)
305
- ),
306
- color:
307
- setter(
308
- map-get($map, selection-color),
309
- map-get($selection, color)
310
- ),
311
- )
312
- );
253
+ @if (type-of($map) == 'map') {
254
+ $enabled: setter(map-get($map, enabled), true);
255
+
256
+ $base: setter($map, ());
257
+ $base: map-merge(
258
+ $map,
259
+ (
260
+ background-color:
261
+ setter(map-get($map, bg), map-get($map, background-color)),
262
+ background-clip:
263
+ setter(
264
+ map-get($map, bg-clip),
265
+ map-get($map, background-clip)
266
+ ),
267
+ background-image:
268
+ setter(
269
+ map-get($map, bg-image),
270
+ map-get($map, background-image)
271
+ ),
272
+ background-position:
273
+ setter(
274
+ map-get($map, bg-position),
275
+ map-get($map, background-position)
276
+ ),
277
+ background-repeat:
278
+ setter(
279
+ map-get($map, bg-repeat),
280
+ map-get($map, background-repeat)
281
+ ),
282
+ background-size:
283
+ setter(
284
+ map-get($map, bg-size),
285
+ map-get($map, background-size)
286
+ ),
287
+ )
288
+ );
313
289
 
314
- $hover: setter(map-get($map, hover), ());
315
- $hover: map-deep-merge(
316
- $hover,
317
- (
318
- background-color:
319
- setter(
320
- map-get($map, hover-bg),
321
- map-get($hover, background-color)
322
- ),
323
- border-color:
324
- setter(
325
- map-get($map, hover-border-color),
326
- map-get($hover, border-color)
327
- ),
328
- box-shadow:
329
- setter(
330
- map-get($map, hover-box-shadow),
331
- map-get($hover, box-shadow)
332
- ),
333
- color: setter(map-get($map, hover-color), map-get($hover, color)),
334
- )
335
- );
290
+ $placeholder: setter(map-get($map, placeholder), ());
291
+ $placeholder: map-deep-merge(
292
+ $placeholder,
293
+ (
294
+ color:
295
+ setter(
296
+ map-get($map, placeholder-color),
297
+ map-get($placeholder, color)
298
+ ),
299
+ opacity:
300
+ setter(
301
+ map-get($map, placeholder-opacity),
302
+ map-get($placeholder, opacity)
303
+ ),
304
+ )
305
+ );
336
306
 
337
- $old-hover-placeholder: setter(map-get($map, hover-placeholder), ());
338
- $hover-placeholder: setter(map-get($hover, placeholder), ());
339
- $hover-placeholder: map-deep-merge(
340
- $hover-placeholder,
341
- $old-hover-placeholder
342
- );
343
- $hover-placeholder: map-deep-merge(
344
- $hover-placeholder,
345
- (
346
- color:
347
- setter(
348
- map-get($map, hover-placeholder-color),
349
- map-get($hover-placeholder, color)
350
- ),
351
- )
352
- );
307
+ $selection: setter(map-get($map, selection), ());
308
+ $selection: map-deep-merge(
309
+ $selection,
310
+ (
311
+ background-color:
312
+ setter(
313
+ map-get($map, selection-bg),
314
+ map-get($selection, background-color)
315
+ ),
316
+ color:
317
+ setter(
318
+ map-get($map, selection-color),
319
+ map-get($selection, color)
320
+ ),
321
+ )
322
+ );
353
323
 
354
- $focus: setter(map-get($map, focus), ());
355
- $focus: map-deep-merge(
356
- $focus,
357
- (
358
- background-color:
359
- setter(
360
- map-get($map, focus-bg),
361
- map-get($focus, background-color)
362
- ),
363
- background-image:
364
- setter(
365
- map-get($map, focus-bg-image),
366
- map-get($focus, background-image)
367
- ),
368
- border-color:
369
- setter(
370
- map-get($map, focus-border-color),
371
- map-get($focus, border-color)
372
- ),
373
- box-shadow:
374
- setter(
375
- map-get($map, focus-box-shadow),
376
- map-get($focus, box-shadow)
377
- ),
378
- color: setter(map-get($map, focus-color), map-get($focus, color)),
379
- )
380
- );
324
+ $hover: setter(map-get($map, hover), ());
325
+ $hover: map-deep-merge(
326
+ $hover,
327
+ (
328
+ background-color:
329
+ setter(
330
+ map-get($map, hover-bg),
331
+ map-get($hover, background-color)
332
+ ),
333
+ border-color:
334
+ setter(
335
+ map-get($map, hover-border-color),
336
+ map-get($hover, border-color)
337
+ ),
338
+ box-shadow:
339
+ setter(
340
+ map-get($map, hover-box-shadow),
341
+ map-get($hover, box-shadow)
342
+ ),
343
+ color:
344
+ setter(map-get($map, hover-color), map-get($hover, color)),
345
+ )
346
+ );
381
347
 
382
- $old-focus-placeholder: setter(map-get($map, focus-placeholder), ());
383
- $focus-placeholder: setter(map-get($focus, placeholder), ());
384
- $focus-placeholder: map-deep-merge(
385
- $focus-placeholder,
386
- $old-focus-placeholder
387
- );
388
- $focus-placeholder: map-deep-merge(
389
- $focus-placeholder,
390
- (
391
- color:
392
- setter(
393
- map-get($map, focus-placeholder-color),
394
- map-get($focus-placeholder, color)
395
- ),
396
- )
397
- );
348
+ $old-hover-placeholder: setter(map-get($map, hover-placeholder), ());
349
+ $hover-placeholder: setter(map-get($hover, placeholder), ());
350
+ $hover-placeholder: map-deep-merge(
351
+ $hover-placeholder,
352
+ $old-hover-placeholder
353
+ );
354
+ $hover-placeholder: map-deep-merge(
355
+ $hover-placeholder,
356
+ (
357
+ color:
358
+ setter(
359
+ map-get($map, hover-placeholder-color),
360
+ map-get($hover-placeholder, color)
361
+ ),
362
+ )
363
+ );
398
364
 
399
- // deprecated after v2.18.0 [readonly] can have hover focus styles, declare a separate selector and use `clay-form-control-variant` mixin (e.g., `.form-control[readonly] { @include clay-form-control-variant($the-readonly-map); }`).
365
+ $focus: setter(map-get($map, focus), ());
366
+ $focus: map-deep-merge(
367
+ $focus,
368
+ (
369
+ background-color:
370
+ setter(
371
+ map-get($map, focus-bg),
372
+ map-get($focus, background-color)
373
+ ),
374
+ background-image:
375
+ setter(
376
+ map-get($map, focus-bg-image),
377
+ map-get($focus, background-image)
378
+ ),
379
+ border-color:
380
+ setter(
381
+ map-get($map, focus-border-color),
382
+ map-get($focus, border-color)
383
+ ),
384
+ box-shadow:
385
+ setter(
386
+ map-get($map, focus-box-shadow),
387
+ map-get($focus, box-shadow)
388
+ ),
389
+ color:
390
+ setter(map-get($map, focus-color), map-get($focus, color)),
391
+ )
392
+ );
400
393
 
401
- $readonly-bg: map-get($map, readonly-bg);
402
- $readonly-bg-image: map-get($map, readonly-bg-image);
403
- $readonly-border-color: map-get($map, readonly-border-color);
404
- $readonly-box-shadow: map-get($map, readonly-box-shadow);
405
- $readonly-color: map-get($map, readonly-color);
406
- $readonly-cursor: map-get($map, readonly-cursor);
407
- $readonly-opacity: map-get($map, readonly-opacity);
408
- $readonly-placeholder-color: map-get($map, readonly-placeholder-color);
394
+ $old-focus-placeholder: setter(map-get($map, focus-placeholder), ());
395
+ $focus-placeholder: setter(map-get($focus, placeholder), ());
396
+ $focus-placeholder: map-deep-merge(
397
+ $focus-placeholder,
398
+ $old-focus-placeholder
399
+ );
400
+ $focus-placeholder: map-deep-merge(
401
+ $focus-placeholder,
402
+ (
403
+ color:
404
+ setter(
405
+ map-get($map, focus-placeholder-color),
406
+ map-get($focus-placeholder, color)
407
+ ),
408
+ )
409
+ );
409
410
 
410
- $disabled: setter(map-get($map, disabled), ());
411
- $disabled: map-deep-merge(
412
- $disabled,
413
- (
414
- background-color:
415
- setter(
416
- map-get($map, disabled-bg),
417
- map-get($disabled, background-color)
418
- ),
419
- background-image:
420
- setter(
421
- map-get($map, disabled-bg-image),
422
- map-get($disabled, background-image)
423
- ),
424
- border-color:
425
- setter(
426
- map-get($map, disabled-border-color),
427
- map-get($disabled, border-color)
428
- ),
429
- box-shadow:
430
- setter(
431
- map-get($map, disabled-box-shadow),
432
- map-get($disabled, box-shadow)
433
- ),
434
- color:
435
- setter(map-get($map, disabled-color), map-get($disabled, color)),
436
- cursor:
437
- setter(
438
- map-get($map, disabled-cursor),
439
- map-get($disabled, cursor)
440
- ),
441
- opacity:
442
- setter(
443
- map-get($map, disabled-opacity),
444
- map-get($disabled, opacity)
445
- ),
446
- )
447
- );
411
+ // deprecated after v2.18.0 [readonly] can have hover focus styles, declare a separate selector and use `clay-form-control-variant` mixin (e.g., `.form-control[readonly] { @include clay-form-control-variant($the-readonly-map); }`).
412
+
413
+ $readonly-bg: map-get($map, readonly-bg);
414
+ $readonly-bg-image: map-get($map, readonly-bg-image);
415
+ $readonly-border-color: map-get($map, readonly-border-color);
416
+ $readonly-box-shadow: map-get($map, readonly-box-shadow);
417
+ $readonly-color: map-get($map, readonly-color);
418
+ $readonly-cursor: map-get($map, readonly-cursor);
419
+ $readonly-opacity: map-get($map, readonly-opacity);
420
+ $readonly-placeholder-color: map-get($map, readonly-placeholder-color);
421
+
422
+ $disabled: setter(map-get($map, disabled), ());
423
+ $disabled: map-deep-merge(
424
+ $disabled,
425
+ (
426
+ background-color:
427
+ setter(
428
+ map-get($map, disabled-bg),
429
+ map-get($disabled, background-color)
430
+ ),
431
+ background-image:
432
+ setter(
433
+ map-get($map, disabled-bg-image),
434
+ map-get($disabled, background-image)
435
+ ),
436
+ border-color:
437
+ setter(
438
+ map-get($map, disabled-border-color),
439
+ map-get($disabled, border-color)
440
+ ),
441
+ box-shadow:
442
+ setter(
443
+ map-get($map, disabled-box-shadow),
444
+ map-get($disabled, box-shadow)
445
+ ),
446
+ color:
447
+ setter(
448
+ map-get($map, disabled-color),
449
+ map-get($disabled, color)
450
+ ),
451
+ cursor:
452
+ setter(
453
+ map-get($map, disabled-cursor),
454
+ map-get($disabled, cursor)
455
+ ),
456
+ opacity:
457
+ setter(
458
+ map-get($map, disabled-opacity),
459
+ map-get($disabled, opacity)
460
+ ),
461
+ )
462
+ );
448
463
 
449
- $old-disabled-placeholder: setter(map-get($map, disabled-placeholder), ());
450
- $disabled-placeholder: setter(map-get($disabled, placeholder), ());
451
- $disabled-placeholder: map-deep-merge(
452
- $disabled-placeholder,
453
- $old-disabled-placeholder
454
- );
455
- $disabled-placeholder: map-deep-merge(
456
- $disabled-placeholder,
457
- (
458
- color:
459
- setter(
460
- map-get($map, disabled-placeholder-color),
461
- map-get($disabled-placeholder, color)
462
- ),
463
- )
464
- );
464
+ $old-disabled-placeholder: setter(
465
+ map-get($map, disabled-placeholder),
466
+ ()
467
+ );
468
+ $disabled-placeholder: setter(map-get($disabled, placeholder), ());
469
+ $disabled-placeholder: map-deep-merge(
470
+ $disabled-placeholder,
471
+ $old-disabled-placeholder
472
+ );
473
+ $disabled-placeholder: map-deep-merge(
474
+ $disabled-placeholder,
475
+ (
476
+ color:
477
+ setter(
478
+ map-get($map, disabled-placeholder-color),
479
+ map-get($disabled-placeholder, color)
480
+ ),
481
+ )
482
+ );
465
483
 
466
- @if ($enabled) {
467
- @include clay-css($base);
484
+ @if ($enabled) {
485
+ @include clay-css($base);
468
486
 
469
- &::placeholder {
470
- // opacity: 1, override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
487
+ &::placeholder {
488
+ // opacity: 1, override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
471
489
 
472
- @include clay-css($placeholder);
473
- }
490
+ @include clay-css($placeholder);
491
+ }
474
492
 
475
- &::-moz-selection,
476
- &::selection {
477
- @include clay-css($selection);
478
- }
493
+ &::-moz-selection,
494
+ &::selection {
495
+ @include clay-css($selection);
496
+ }
479
497
 
480
- &:hover {
481
- @include clay-css($hover);
498
+ &:hover {
499
+ @include clay-css($hover);
482
500
 
483
- &::placeholder {
484
- @include clay-css($hover-placeholder);
501
+ &::placeholder {
502
+ @include clay-css($hover-placeholder);
503
+ }
485
504
  }
486
- }
487
505
 
488
- &:focus,
489
- &.focus {
490
- @include clay-css($focus);
506
+ &:focus,
507
+ &.focus {
508
+ @include clay-css($focus);
491
509
 
492
- &::placeholder {
493
- @include clay-css($focus-placeholder);
510
+ &::placeholder {
511
+ @include clay-css($focus-placeholder);
512
+ }
494
513
  }
495
- }
496
514
 
497
- // @deprecated after v2.18.0 [readonly] can have hover focus styles, declare a separate selector and use `clay-form-control-variant` mixin (e.g., `.form-control[readonly] { @include clay-form-control-variant($the-readonly-map); }`).
515
+ // @deprecated after v2.18.0 [readonly] can have hover focus styles, declare a separate selector and use `clay-form-control-variant` mixin (e.g., `.form-control[readonly] { @include clay-form-control-variant($the-readonly-map); }`).
498
516
 
499
- &[readonly] {
500
- background-color: $readonly-bg;
501
- background-image: $readonly-bg-image;
502
- border-color: $readonly-border-color;
503
- box-shadow: $readonly-box-shadow;
504
- color: $readonly-color;
505
- cursor: $readonly-cursor;
506
- opacity: $readonly-opacity;
517
+ &[readonly] {
518
+ background-color: $readonly-bg;
519
+ background-image: $readonly-bg-image;
520
+ border-color: $readonly-border-color;
521
+ box-shadow: $readonly-box-shadow;
522
+ color: $readonly-color;
523
+ cursor: $readonly-cursor;
524
+ opacity: $readonly-opacity;
507
525
 
508
- &::placeholder {
509
- color: $readonly-placeholder-color;
526
+ &::placeholder {
527
+ color: $readonly-placeholder-color;
528
+ }
510
529
  }
511
- }
512
530
 
513
- // Disabled
514
- // HTML5 says that controls under a fieldset > legend:first-child won't be
515
- // disabled if the fieldset is disabled. Due to implementation difficulty, we
516
- // don't honor that edge case; we style them as disabled anyway.
531
+ // Disabled
532
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
533
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
534
+ // don't honor that edge case; we style them as disabled anyway.
517
535
 
518
- &:disabled,
519
- &.disabled {
520
- // `opacity: 1;` iOS fix for unreadable disabled content;
521
- // see https://github.com/twbs/bootstrap/issues/11655.
536
+ &:disabled,
537
+ &.disabled {
538
+ // `opacity: 1;` iOS fix for unreadable disabled content;
539
+ // see https://github.com/twbs/bootstrap/issues/11655.
522
540
 
523
- @include clay-css($disabled);
541
+ @include clay-css($disabled);
524
542
 
525
- &::placeholder {
526
- @include clay-css($disabled-placeholder);
543
+ &::placeholder {
544
+ @include clay-css($disabled-placeholder);
545
+ }
527
546
  }
528
547
  }
529
548
  }
@@ -532,18 +551,62 @@
532
551
  /// A mixin to create Select Form Control variants. You can base your variant off Bootstrap's `select.form-control` selector or create your own base class (e.g., `<select class="form-control my-custom-form-control"></select>` or `<select class="my-custom-form-control"></select>`).
533
552
  /// @param {Map} $map - A map of `key: value` pairs. The keys and value types are listed below:
534
553
  /// @example
535
- /// See Mixin `clay-css` for available keys to pass into the base selector
554
+ /// (
555
+ /// enabled: {Bool}, // Set to false to prevent mixin styles from being output. Default: true
556
+ /// // select.form-control
557
+ /// hover: (
558
+ /// // select.form-control:hover
559
+ /// option: (
560
+ /// // select.form-control:hover > option
561
+ /// checked: (
562
+ /// // select.form-control:hover > option:checked
563
+ /// ),
564
+ /// ),
565
+ /// ),
566
+ /// focus: (
567
+ /// // select.form-control:focus,
568
+ /// // select.form-control.focus
569
+ /// option: (
570
+ /// // select.form-control:focus > option,
571
+ /// // select.form-control.focus > option
572
+ /// checked: (
573
+ /// // select.form-control:focus > option:checked,
574
+ /// // select.form-control.focus > option:checked
575
+ /// ),
576
+ /// ),
577
+ /// ),
578
+ /// disabled: (
579
+ /// // select.form-control:disabled,
580
+ /// // select.form-control.disabled
581
+ /// option: (
582
+ /// // select.form-control:disabled > option,
583
+ /// // select.form-control.disabled > option
584
+ /// checked: (
585
+ /// // select.form-control:disabled > option:checked,
586
+ /// // select.form-control.disabled > option:checked
587
+ /// ),
588
+ /// ),
589
+ /// ),
590
+ /// option: (
591
+ /// // select.form-control option
592
+ /// checked: (
593
+ /// // select.form-control option:checked
594
+ /// ),
595
+ /// ),
596
+ /// firefox-only: (
597
+ /// // Same selectors as above scoped only for firefox browsers
598
+ /// ),
599
+ /// )
600
+ /// -=-=-=-=-=- Deprecated -=-=-=-=-=-
536
601
  /// hover-bg: {Color | String | Null}, // deprecated after 3.7.0
537
602
  /// hover-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
538
603
  /// hover-box-shadow: {String | List | Null}, // deprecated after 3.7.0
539
604
  /// hover-color: {Color | String | Null}, // deprecated after 3.7.0
540
- /// hover: {Map | Null}, // See Mixin `clay-css` for available keys
541
605
  /// focus-bg: {Color | String | Null}, // deprecated after 3.7.0
542
606
  /// focus-bg-image: {String | List | Null}, // deprecated after 3.7.0
543
607
  /// focus-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
544
608
  /// focus-box-shadow: {String | List | Null}, // deprecated after 3.7.0
545
609
  /// focus-color: {Color | String | Null}, // deprecated after 3.7.0
546
- /// focus: {Map | Null}, // See Mixin `clay-css` for available keys
547
610
  /// disabled-bg: {Color | String | Null}, // deprecated after 3.7.0
548
611
  /// disabled-bg-image: {String | List | Null}, // deprecated after 3.7.0
549
612
  /// disabled-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
@@ -551,7 +614,6 @@
551
614
  /// disabled-color: {Color | String | Null}, // deprecated after 3.7.0
552
615
  /// disabled-cursor: {String | Null}, // deprecated after 3.7.0
553
616
  /// disabled-opacity: {Number | String | Null}, // deprecated after 3.7.0
554
- /// disabled: {Map | Null}, // See Mixin `clay-css` for available keys
555
617
  /// @todo
556
618
  /// - Add @example
557
619
  /// - Add @link to documentation
@@ -702,11 +764,27 @@
702
764
 
703
765
  &:hover {
704
766
  @include clay-css($hover);
767
+
768
+ > option {
769
+ @include clay-css(map-get($hover, option));
770
+
771
+ &:checked {
772
+ @include clay-css(map-deep-get($hover, option, checked));
773
+ }
774
+ }
705
775
  }
706
776
 
707
777
  &:focus,
708
778
  &.focus {
709
779
  @include clay-css($focus);
780
+
781
+ > option {
782
+ @include clay-css(map-get($focus, option));
783
+
784
+ &:checked {
785
+ @include clay-css(map-deep-get($focus, option, checked));
786
+ }
787
+ }
710
788
  }
711
789
 
712
790
  &:disabled,
@@ -715,11 +793,367 @@
715
793
 
716
794
  > option {
717
795
  @include clay-css($disabled-option);
796
+
797
+ &:checked {
798
+ @include clay-css(map-get($disabled-option, checked));
799
+ }
718
800
  }
719
801
  }
720
802
 
721
803
  option {
722
804
  @include clay-css($option);
805
+
806
+ &:checked {
807
+ @include clay-css(map-get($option, checked));
808
+ }
809
+ }
810
+
811
+ @if (map-get($map, firefox-only)) {
812
+ @-moz-document url-prefix() {
813
+ @include clay-css(map-get($map, firefox-only));
814
+
815
+ &:hover {
816
+ @include clay-css(map-deep-get($map, firefox-only, hover));
817
+
818
+ > option {
819
+ @include clay-css(
820
+ map-deep-get($map, firefox-only, hover, option)
821
+ );
822
+
823
+ &:checked {
824
+ @include clay-css(
825
+ map-deep-get(
826
+ $map,
827
+ firefox-only,
828
+ hover,
829
+ option,
830
+ checked
831
+ )
832
+ );
833
+ }
834
+ }
835
+ }
836
+
837
+ &:focus,
838
+ &.focus {
839
+ @include clay-css(map-deep-get($map, firefox-only, focus));
840
+
841
+ > option {
842
+ @include clay-css(
843
+ map-deep-get($map, firefox-only, focus, option)
844
+ );
845
+
846
+ &:checked {
847
+ @include clay-css(
848
+ map-deep-get(
849
+ $map,
850
+ firefox-only,
851
+ focus,
852
+ option,
853
+ checked
854
+ )
855
+ );
856
+ }
857
+ }
858
+ }
859
+
860
+ &:disabled,
861
+ &.disabled {
862
+ @include clay-css(
863
+ map-deep-get($map, firefox-only, disabled)
864
+ );
865
+
866
+ > option {
867
+ @include clay-css(
868
+ map-deep-get($map, firefox-only, disabled, option)
869
+ );
870
+
871
+ &:checked {
872
+ @include clay-css(
873
+ map-deep-get(
874
+ $map,
875
+ firefox-only,
876
+ disabled,
877
+ option,
878
+ checked
879
+ )
880
+ );
881
+ }
882
+ }
883
+ }
884
+
885
+ option {
886
+ @include clay-css(map-deep-get($map, firefox-only, option));
887
+
888
+ &:checked {
889
+ @include clay-css(
890
+ map-deep-get($map, firefox-only, option, checked)
891
+ );
892
+ }
893
+ }
894
+ }
895
+ }
896
+ }
897
+ }
898
+
899
+ /// A mixin to create Form Validation variants (e.g., `.has-error`).
900
+ /// @param {Map} $map - A map of `key: value` pairs. The keys and value types are listed below:
901
+ /// @example
902
+ /// (
903
+ /// enabled: {Bool}, // Set to false to prevent mixin styles from being output. Default: true
904
+ /// label: (
905
+ /// // .has-error label
906
+ /// ),
907
+ /// custom-control-label: (
908
+ /// // .has-error .custom-control-label, .has-error .form-check-label
909
+ /// ),
910
+ /// form-control: (
911
+ /// // .has-error .form-control
912
+ /// readonly: (
913
+ /// // .has-error .form-control[readonly]
914
+ /// ),
915
+ /// ),
916
+ /// form-feedback-group: (
917
+ /// // .has-error .form-feedback-group
918
+ /// ),
919
+ /// form-feedback-item: (
920
+ /// // .has-error .form-feedback-item
921
+ /// ),
922
+ /// form-feedback-indicator: (
923
+ /// // .has-error .form-feedback-indicator
924
+ /// ),
925
+ /// form-feedback-text: (
926
+ /// // .has-error .form-feedback-text
927
+ /// ),
928
+ /// select: (
929
+ /// // N/A
930
+ /// form-control: (
931
+ /// // .has-error select.form-control
932
+ /// multiple: (
933
+ /// // .has-error select.form-control[multiple]
934
+ /// ),
935
+ /// size: (
936
+ /// // .has-error select.form-control[size]
937
+ /// ),
938
+ /// ),
939
+ /// ),
940
+ /// input-group-item: (
941
+ /// // .has-error .input-group-item
942
+ /// hover: (
943
+ /// // .has-error .input-group-item:hover
944
+ /// input-group-inset: (
945
+ /// // .has-error .input-group-item:hover .input-group-inset
946
+ /// input-group-inset-item: (
947
+ /// // .has-error .input-group-item:hover .input-group-inset ~ .input-group-inset-item
948
+ /// ),
949
+ /// ),
950
+ /// ),
951
+ /// focus: (
952
+ /// // .has-error .input-group-item.focus
953
+ /// input-group-inset: (
954
+ /// // .has-error .input-group-item.focus .input-group-inset
955
+ /// input-group-inset-item: (
956
+ /// // .has-error .input-group-item.focus .input-group-inset ~ .input-group-inset-item
957
+ /// ),
958
+ /// ),
959
+ /// ),
960
+ /// input-group-inset: (
961
+ /// // .has-error .input-group-inset
962
+ /// input-group-inset-item: (
963
+ /// // .has-error .input-group-inset ~ .input-group-inset-item
964
+ /// ),
965
+ /// hover: (
966
+ /// // .has-error .input-group-inset:hover
967
+ /// input-group-inset-item: (
968
+ /// // .has-error .input-group-inset:hover ~ .input-group-inset-item
969
+ /// ),
970
+ /// ),
971
+ /// focus: (
972
+ /// // .has-error .input-group-inset:focus
973
+ /// input-group-inset-item: (
974
+ /// // .has-error .input-group-inset:focus ~ .input-group-inset-item
975
+ /// ),
976
+ /// ),
977
+ /// ),
978
+ /// ),
979
+ /// )
980
+
981
+ @mixin clay-form-validation-variant($map) {
982
+ $enabled: setter(map-get($map, enabled), true);
983
+
984
+ @if ($enabled) {
985
+ @include clay-css($map);
986
+
987
+ label {
988
+ @include clay-css(map-get($map, label));
989
+ }
990
+
991
+ .custom-control-label,
992
+ .form-check-label {
993
+ @include clay-css(map-get($map, custom-control-label));
994
+ }
995
+
996
+ .form-control {
997
+ @include clay-form-control-variant(map-get($map, form-control));
998
+ }
999
+
1000
+ .form-control[readonly] {
1001
+ @include clay-form-control-variant(
1002
+ map-deep-get($map, form-control, readonly)
1003
+ );
1004
+ }
1005
+
1006
+ .form-feedback-group {
1007
+ @include clay-css(map-get($map, form-feedback-group));
1008
+ }
1009
+
1010
+ .form-feedback-item {
1011
+ @include clay-css(map-get($map, form-feedback-item));
1012
+ }
1013
+
1014
+ .form-feedback-indicator {
1015
+ @include clay-css(map-get($map, form-feedback-indicator));
1016
+ }
1017
+
1018
+ .form-feedback-text {
1019
+ @include clay-css(map-get($map, form-feedback-text));
1020
+ }
1021
+
1022
+ select.form-control {
1023
+ @include clay-select-variant(
1024
+ map-deep-get($map, select, form-control)
1025
+ );
1026
+
1027
+ &[size] {
1028
+ @include clay-select-variant(
1029
+ map-deep-get($map, select, form-control, size)
1030
+ );
1031
+ }
1032
+
1033
+ &[multiple] {
1034
+ @include clay-select-variant(
1035
+ map-deep-get($map, select, form-control, multiple)
1036
+ );
1037
+ }
1038
+ }
1039
+
1040
+ .input-group-item {
1041
+ @include clay-css(map-get($map, input-group-item));
1042
+
1043
+ &:hover {
1044
+ .input-group-inset {
1045
+ @include clay-css(
1046
+ map-deep-get(
1047
+ $map,
1048
+ input-group-item,
1049
+ hover,
1050
+ input-group-inset
1051
+ )
1052
+ );
1053
+
1054
+ ~ .input-group-inset-item {
1055
+ @include clay-css(
1056
+ map-deep-get(
1057
+ $map,
1058
+ input-group-item,
1059
+ hover,
1060
+ input-group-inset,
1061
+ input-group-inset-item
1062
+ )
1063
+ );
1064
+ }
1065
+ }
1066
+ }
1067
+
1068
+ &.focus {
1069
+ @include clay-css(map-deep-get($map, input-group-item, focus));
1070
+
1071
+ .input-group-inset {
1072
+ @include clay-css(
1073
+ map-deep-get(
1074
+ $map,
1075
+ input-group-item,
1076
+ focus,
1077
+ input-group-inset
1078
+ )
1079
+ );
1080
+
1081
+ ~ .input-group-inset-item {
1082
+ @include clay-css(
1083
+ map-deep-get(
1084
+ $map,
1085
+ input-group-item,
1086
+ focus,
1087
+ input-group-inset,
1088
+ input-group-inset-item
1089
+ )
1090
+ );
1091
+ }
1092
+ }
1093
+ }
1094
+
1095
+ .input-group-inset {
1096
+ @include clay-css(
1097
+ map-deep-get($map, input-group-item, input-group-inset)
1098
+ );
1099
+
1100
+ ~ .input-group-inset-item {
1101
+ @include clay-css(
1102
+ map-deep-get(
1103
+ $map,
1104
+ input-group-item,
1105
+ input-group-inset,
1106
+ input-group-inset-item
1107
+ )
1108
+ );
1109
+ }
1110
+
1111
+ &:hover {
1112
+ @include clay-css(
1113
+ map-deep-get(
1114
+ $map,
1115
+ input-group-item,
1116
+ input-group-inset,
1117
+ hover
1118
+ )
1119
+ );
1120
+
1121
+ ~ .input-group-inset-item {
1122
+ @include clay-css(
1123
+ map-deep-get(
1124
+ $map,
1125
+ input-group-item,
1126
+ input-group-inset,
1127
+ hover,
1128
+ input-group-inset-item
1129
+ )
1130
+ );
1131
+ }
1132
+ }
1133
+
1134
+ &:focus {
1135
+ @include clay-css(
1136
+ map-deep-get(
1137
+ $map,
1138
+ input-group-item,
1139
+ input-group-inset,
1140
+ focus
1141
+ )
1142
+ );
1143
+
1144
+ ~ .input-group-inset-item {
1145
+ @include clay-css(
1146
+ map-deep-get(
1147
+ $map,
1148
+ input-group-item,
1149
+ input-group-inset,
1150
+ focus,
1151
+ input-group-inset-item
1152
+ )
1153
+ );
1154
+ }
1155
+ }
1156
+ }
723
1157
  }
724
1158
  }
725
1159
  }