@clayui/css 3.40.1 → 3.44.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 (91) hide show
  1. package/lib/css/atlas.css +1369 -1347
  2. package/lib/css/atlas.css.map +1 -1
  3. package/lib/css/base.css +1196 -1146
  4. package/lib/css/base.css.map +1 -1
  5. package/lib/css/bootstrap.css.map +1 -1
  6. package/lib/css/cadmin.css +1104 -1097
  7. package/lib/css/cadmin.css.map +1 -1
  8. package/lib/images/icons/date-time.svg +12 -0
  9. package/lib/images/icons/filter.svg +1 -1
  10. package/lib/images/icons/icons.svg +1 -1
  11. package/package.json +2 -2
  12. package/src/images/icons/date-time.svg +12 -0
  13. package/src/images/icons/filter.svg +1 -1
  14. package/src/scss/_mixins.scss +2 -0
  15. package/src/scss/atlas/variables/_application-bar.scss +32 -12
  16. package/src/scss/atlas/variables/_buttons.scss +2 -31
  17. package/src/scss/atlas/variables/_forms.scss +33 -1
  18. package/src/scss/atlas/variables/_globals.scss +13 -0
  19. package/src/scss/atlas/variables/_management-bar.scss +53 -21
  20. package/src/scss/atlas/variables/_navigation-bar.scss +104 -18
  21. package/src/scss/atlas/variables/_navs.scss +20 -15
  22. package/src/scss/atlas/variables/_pagination.scss +2 -0
  23. package/src/scss/atlas/variables/_sidebar.scss +1 -1
  24. package/src/scss/cadmin/components/_dropdowns.scss +4 -0
  25. package/src/scss/cadmin/components/_form-validation.scss +10 -237
  26. package/src/scss/cadmin/components/_input-groups.scss +12 -312
  27. package/src/scss/cadmin/components/_navs.scss +35 -113
  28. package/src/scss/cadmin/components/_pagination.scss +20 -236
  29. package/src/scss/cadmin/components/_popovers.scss +31 -252
  30. package/src/scss/cadmin/components/_reboot.scss +1 -8
  31. package/src/scss/cadmin/components/_toggle-switch.scss +20 -358
  32. package/src/scss/cadmin/components/_tooltip.scss +29 -167
  33. package/src/scss/cadmin/components/_utilities-functional-important.scss +4 -3
  34. package/src/scss/cadmin/variables/_alerts.scss +3 -2
  35. package/src/scss/cadmin/variables/_dropdowns.scss +31 -2
  36. package/src/scss/cadmin/variables/_forms.scss +719 -7
  37. package/src/scss/cadmin/variables/_globals.scss +14 -0
  38. package/src/scss/cadmin/variables/_management-bar.scss +70 -30
  39. package/src/scss/cadmin/variables/_navigation-bar.scss +118 -22
  40. package/src/scss/cadmin/variables/_navs.scss +270 -53
  41. package/src/scss/cadmin/variables/_pagination.scss +274 -68
  42. package/src/scss/cadmin/variables/_popovers.scss +410 -0
  43. package/src/scss/cadmin/variables/_sidebar.scss +17 -5
  44. package/src/scss/cadmin/variables/_toggle-switch.scss +404 -1
  45. package/src/scss/cadmin/variables/_tooltip.scss +299 -0
  46. package/src/scss/components/_button-groups.scss +6 -6
  47. package/src/scss/components/_buttons.scss +87 -49
  48. package/src/scss/components/_cards.scss +16 -116
  49. package/src/scss/components/_dropdowns.scss +4 -0
  50. package/src/scss/components/_form-validation.scss +8 -237
  51. package/src/scss/components/_input-groups.scss +12 -308
  52. package/src/scss/components/_multi-step-nav.scss +12 -8
  53. package/src/scss/components/_navs.scss +45 -128
  54. package/src/scss/components/_pagination.scss +18 -234
  55. package/src/scss/components/_popovers.scss +30 -237
  56. package/src/scss/components/_reboot.scss +1 -8
  57. package/src/scss/components/_toggle-switch.scss +36 -351
  58. package/src/scss/components/_tooltip.scss +29 -164
  59. package/src/scss/functions/_global-functions.scss +18 -0
  60. package/src/scss/functions/_lx-icons-generated.scss +3 -1
  61. package/src/scss/mixins/_buttons.scss +674 -472
  62. package/src/scss/mixins/_cards.scss +746 -560
  63. package/src/scss/mixins/_close.scss +0 -1
  64. package/src/scss/mixins/_custom-forms.scss +442 -409
  65. package/src/scss/mixins/_dropdown-menu.scss +483 -406
  66. package/src/scss/mixins/_forms.scss +751 -260
  67. package/src/scss/mixins/_globals.scss +7 -0
  68. package/src/scss/mixins/_input-groups.scss +405 -11
  69. package/src/scss/mixins/_labels.scss +320 -296
  70. package/src/scss/mixins/_links.scss +645 -414
  71. package/src/scss/mixins/_nav.scss +202 -131
  72. package/src/scss/mixins/_navbar.scss +791 -140
  73. package/src/scss/mixins/_pagination.scss +422 -0
  74. package/src/scss/mixins/_popovers.scss +90 -0
  75. package/src/scss/mixins/_toggle-switch.scss +1140 -14
  76. package/src/scss/mixins/_tooltip.scss +70 -0
  77. package/src/scss/variables/_alerts.scss +1 -0
  78. package/src/scss/variables/_application-bar.scss +18 -6
  79. package/src/scss/variables/_buttons.scss +26 -3
  80. package/src/scss/variables/_cards.scss +273 -1
  81. package/src/scss/variables/_dropdowns.scss +31 -2
  82. package/src/scss/variables/_forms.scss +700 -23
  83. package/src/scss/variables/_globals.scss +13 -0
  84. package/src/scss/variables/_management-bar.scss +45 -12
  85. package/src/scss/variables/_navigation-bar.scss +95 -14
  86. package/src/scss/variables/_navs.scss +266 -33
  87. package/src/scss/variables/_pagination.scss +261 -61
  88. package/src/scss/variables/_popovers.scss +392 -0
  89. package/src/scss/variables/_sidebar.scss +17 -5
  90. package/src/scss/variables/_toggle-switch.scss +404 -5
  91. package/src/scss/variables/_tooltip.scss +299 -0
@@ -205,26 +205,65 @@
205
205
  /// A mixin to create Form Control variants. You can base your variant off Bootstrap's `.form-control` class or create your own base class (e.g., `<input class="form-control my-custom-form-control" type="text" />` or `<input class="my-custom-form-control" type="text" />`).
206
206
  /// @param {Map} $map - A map of `key: value` pairs. The keys and value types are listed below:
207
207
  /// @example
208
- /// See Mixin `clay-css` for available keys to pass into the base selector
209
- /// enabled: {Bool}, // Set to false to prevent mixin styles from being output. Default: true
208
+ /// (
209
+ /// enabled: {Bool}, // Set to false to prevent mixin styles from being output. Default: true
210
+ /// // .form-control
211
+ /// placeholder: (
212
+ /// // .form-control::placeholder
213
+ /// ),
214
+ /// selection: (
215
+ /// // .form-control::-moz-selection, .form-control::selection
216
+ /// ),
217
+ /// input-group-inset-item: (
218
+ /// // .form-control ~ .input-group-inset-item
219
+ /// ),
220
+ /// hover: (
221
+ /// // .form-control:hover
222
+ /// placeholder: (
223
+ /// // .form-control:hover::placeholder
224
+ /// ),
225
+ /// input-group-inset-item: (
226
+ /// // .form-control:hover ~ .input-group-inset-item
227
+ /// ),
228
+ /// ),
229
+ /// focus: (
230
+ /// // .form-control:focus, .form-control.focus
231
+ /// placeholder: (
232
+ /// // .form-control:focus::placeholder,
233
+ /// // .form-control.focus::placeholder
234
+ /// ),
235
+ /// input-group-inset-item: (
236
+ /// // .form-control:focus ~ .input-group-inset-item,
237
+ /// // .form-control.focus ~ .input-group-inset-item
238
+ /// ),
239
+ /// ),
240
+ /// disabled: (
241
+ /// // .form-control:disabled, .form-control.disabled
242
+ /// placeholder: (
243
+ /// // .form-control:disabled::placeholder,
244
+ /// // .form-control.disabled::placeholder
245
+ /// ),
246
+ /// input-group-inset-item: (
247
+ /// // .form-control:disabled ~ .input-group-inset-item,
248
+ /// // .form-control.disabled ~ .input-group-inset-item
249
+ /// ),
250
+ /// ),
251
+ /// )
252
+ /// -=-=-=-=-=- Deprecated -=-=-=-=-=-
210
253
  /// placeholder-color: {Color | String | Null}, // deprecated after 3.7.0
211
254
  /// placeholder-opacity: {Number | String | Null}, // deprecated after 3.7.0
212
- /// placeholder: {Map | Null}, // See Mixin `clay-css` for available keys
213
255
  /// selection-bg: {Color | String | Null}, // deprecated after 3.7.0
214
256
  /// selection-color: {Color | String | Null}, // deprecated after 3.7.0
215
- /// selection: {Map | Null}, // See Mixin `clay-css` for available keys
216
257
  /// hover-bg: {Color | String | Null}, // deprecated after 3.7.0
217
258
  /// hover-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
218
259
  /// hover-box-shadow: {String | List | Null}, // deprecated after 3.7.0
219
260
  /// hover-color: {Color | String | Null}, // deprecated after 3.7.0
220
261
  /// hover-placeholder-color: {Color | String | Null}, // deprecated after 3.7.0
221
- /// hover: {Map | Null}, // See Mixin `clay-css` for available keys
222
262
  /// focus-bg: {Color | String | Null}, // deprecated after 3.7.0
223
263
  /// focus-bg-image: {String | List | Null}, // deprecated after 3.7.0
224
264
  /// focus-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
225
265
  /// focus-box-shadow: {String | List | Null}, // deprecated after 3.7.0
226
266
  /// focus-color: {Color | String | Null}, // deprecated after 3.7.0
227
- /// focus: {Map | Null}, // See Mixin `clay-css` for available keys
228
267
  /// focus-placeholder-color: {Color | String | Null}, // deprecated after 3.7.0
229
268
  /// focus-placeholder: {Map | Null}, // See Mixin `clay-css` for available keys
230
269
  /// readonly-bg: {Color | String | Null}, // deprecated after v2.18.0
@@ -242,288 +281,325 @@
242
281
  /// disabled-color: {Color | String | Null}, // deprecated after 3.7.0
243
282
  /// disabled-cursor: {String | Null}, // deprecated after 3.7.0
244
283
  /// disabled-opacity: {Number | String | Null}, // deprecated after 3.7.0
245
- /// disabled: {Map | Null}, // See Mixin `clay-css` for available keys
246
284
  /// disabled-placeholder-color: {Color | String | Null}, // deprecated after 3.7.0
247
285
  /// disabled-placeholder: {Map | Null}, // See Mixin `clay-css` for available keys
248
- /// @todo
249
- /// - Add @example
250
- /// - Add @link to documentation
251
286
 
252
287
  @mixin clay-form-control-variant($map) {
253
- $enabled: setter(map-get($map, enabled), true);
288
+ @if (type-of($map) == 'map') {
289
+ $enabled: setter(map-get($map, enabled), true);
290
+
291
+ $base: setter($map, ());
292
+ $base: map-merge(
293
+ $map,
294
+ (
295
+ background-color:
296
+ setter(map-get($map, bg), map-get($map, background-color)),
297
+ background-clip:
298
+ setter(
299
+ map-get($map, bg-clip),
300
+ map-get($map, background-clip)
301
+ ),
302
+ background-image:
303
+ setter(
304
+ map-get($map, bg-image),
305
+ map-get($map, background-image)
306
+ ),
307
+ background-position:
308
+ setter(
309
+ map-get($map, bg-position),
310
+ map-get($map, background-position)
311
+ ),
312
+ background-repeat:
313
+ setter(
314
+ map-get($map, bg-repeat),
315
+ map-get($map, background-repeat)
316
+ ),
317
+ background-size:
318
+ setter(
319
+ map-get($map, bg-size),
320
+ map-get($map, background-size)
321
+ ),
322
+ )
323
+ );
254
324
 
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
- );
325
+ $placeholder: setter(map-get($map, placeholder), ());
326
+ $placeholder: map-deep-merge(
327
+ $placeholder,
328
+ (
329
+ color:
330
+ setter(
331
+ map-get($map, placeholder-color),
332
+ map-get($placeholder, color)
333
+ ),
334
+ opacity:
335
+ setter(
336
+ map-get($map, placeholder-opacity),
337
+ map-get($placeholder, opacity)
338
+ ),
339
+ )
340
+ );
279
341
 
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
- );
342
+ $selection: setter(map-get($map, selection), ());
343
+ $selection: map-deep-merge(
344
+ $selection,
345
+ (
346
+ background-color:
347
+ setter(
348
+ map-get($map, selection-bg),
349
+ map-get($selection, background-color)
350
+ ),
351
+ color:
352
+ setter(
353
+ map-get($map, selection-color),
354
+ map-get($selection, color)
355
+ ),
356
+ )
357
+ );
296
358
 
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
- );
359
+ $hover: setter(map-get($map, hover), ());
360
+ $hover: map-deep-merge(
361
+ $hover,
362
+ (
363
+ background-color:
364
+ setter(
365
+ map-get($map, hover-bg),
366
+ map-get($hover, background-color)
367
+ ),
368
+ border-color:
369
+ setter(
370
+ map-get($map, hover-border-color),
371
+ map-get($hover, border-color)
372
+ ),
373
+ box-shadow:
374
+ setter(
375
+ map-get($map, hover-box-shadow),
376
+ map-get($hover, box-shadow)
377
+ ),
378
+ color:
379
+ setter(map-get($map, hover-color), map-get($hover, color)),
380
+ )
381
+ );
313
382
 
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
- );
383
+ $old-hover-placeholder: setter(map-get($map, hover-placeholder), ());
384
+ $hover-placeholder: setter(map-get($hover, placeholder), ());
385
+ $hover-placeholder: map-deep-merge(
386
+ $hover-placeholder,
387
+ $old-hover-placeholder
388
+ );
389
+ $hover-placeholder: map-deep-merge(
390
+ $hover-placeholder,
391
+ (
392
+ color:
393
+ setter(
394
+ map-get($map, hover-placeholder-color),
395
+ map-get($hover-placeholder, color)
396
+ ),
397
+ )
398
+ );
336
399
 
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
- );
400
+ $focus: setter(map-get($map, focus), ());
401
+ $focus: map-deep-merge(
402
+ $focus,
403
+ (
404
+ background-color:
405
+ setter(
406
+ map-get($map, focus-bg),
407
+ map-get($focus, background-color)
408
+ ),
409
+ background-image:
410
+ setter(
411
+ map-get($map, focus-bg-image),
412
+ map-get($focus, background-image)
413
+ ),
414
+ border-color:
415
+ setter(
416
+ map-get($map, focus-border-color),
417
+ map-get($focus, border-color)
418
+ ),
419
+ box-shadow:
420
+ setter(
421
+ map-get($map, focus-box-shadow),
422
+ map-get($focus, box-shadow)
423
+ ),
424
+ color:
425
+ setter(map-get($map, focus-color), map-get($focus, color)),
426
+ )
427
+ );
353
428
 
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
- );
429
+ $old-focus-placeholder: setter(map-get($map, focus-placeholder), ());
430
+ $focus-placeholder: setter(map-get($focus, placeholder), ());
431
+ $focus-placeholder: map-deep-merge(
432
+ $focus-placeholder,
433
+ $old-focus-placeholder
434
+ );
435
+ $focus-placeholder: map-deep-merge(
436
+ $focus-placeholder,
437
+ (
438
+ color:
439
+ setter(
440
+ map-get($map, focus-placeholder-color),
441
+ map-get($focus-placeholder, color)
442
+ ),
443
+ )
444
+ );
381
445
 
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
- );
446
+ // 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); }`).
447
+
448
+ $readonly-bg: map-get($map, readonly-bg);
449
+ $readonly-bg-image: map-get($map, readonly-bg-image);
450
+ $readonly-border-color: map-get($map, readonly-border-color);
451
+ $readonly-box-shadow: map-get($map, readonly-box-shadow);
452
+ $readonly-color: map-get($map, readonly-color);
453
+ $readonly-cursor: map-get($map, readonly-cursor);
454
+ $readonly-opacity: map-get($map, readonly-opacity);
455
+ $readonly-placeholder-color: map-get($map, readonly-placeholder-color);
456
+
457
+ $disabled: setter(map-get($map, disabled), ());
458
+ $disabled: map-deep-merge(
459
+ $disabled,
460
+ (
461
+ background-color:
462
+ setter(
463
+ map-get($map, disabled-bg),
464
+ map-get($disabled, background-color)
465
+ ),
466
+ background-image:
467
+ setter(
468
+ map-get($map, disabled-bg-image),
469
+ map-get($disabled, background-image)
470
+ ),
471
+ border-color:
472
+ setter(
473
+ map-get($map, disabled-border-color),
474
+ map-get($disabled, border-color)
475
+ ),
476
+ box-shadow:
477
+ setter(
478
+ map-get($map, disabled-box-shadow),
479
+ map-get($disabled, box-shadow)
480
+ ),
481
+ color:
482
+ setter(
483
+ map-get($map, disabled-color),
484
+ map-get($disabled, color)
485
+ ),
486
+ cursor:
487
+ setter(
488
+ map-get($map, disabled-cursor),
489
+ map-get($disabled, cursor)
490
+ ),
491
+ opacity:
492
+ setter(
493
+ map-get($map, disabled-opacity),
494
+ map-get($disabled, opacity)
495
+ ),
496
+ )
497
+ );
398
498
 
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); }`).
499
+ $old-disabled-placeholder: setter(
500
+ map-get($map, disabled-placeholder),
501
+ ()
502
+ );
503
+ $disabled-placeholder: setter(map-get($disabled, placeholder), ());
504
+ $disabled-placeholder: map-deep-merge(
505
+ $disabled-placeholder,
506
+ $old-disabled-placeholder
507
+ );
508
+ $disabled-placeholder: map-deep-merge(
509
+ $disabled-placeholder,
510
+ (
511
+ color:
512
+ setter(
513
+ map-get($map, disabled-placeholder-color),
514
+ map-get($disabled-placeholder, color)
515
+ ),
516
+ )
517
+ );
400
518
 
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);
519
+ @if ($enabled) {
520
+ @include clay-css($base);
409
521
 
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
- );
448
-
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
- );
522
+ &::placeholder {
523
+ // opacity: 1, override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
465
524
 
466
- @if ($enabled) {
467
- @include clay-css($base);
525
+ @include clay-css($placeholder);
526
+ }
468
527
 
469
- &::placeholder {
470
- // opacity: 1, override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.
528
+ &::-moz-selection,
529
+ &::selection {
530
+ @include clay-css($selection);
531
+ }
471
532
 
472
- @include clay-css($placeholder);
473
- }
533
+ ~ .input-group-inset-item {
534
+ @include clay-css(map-deep-get($map, input-group-inset-item));
535
+ }
474
536
 
475
- &::-moz-selection,
476
- &::selection {
477
- @include clay-css($selection);
478
- }
537
+ &:hover {
538
+ @include clay-css($hover);
479
539
 
480
- &:hover {
481
- @include clay-css($hover);
540
+ &::placeholder {
541
+ @include clay-css($hover-placeholder);
542
+ }
482
543
 
483
- &::placeholder {
484
- @include clay-css($hover-placeholder);
544
+ ~ .input-group-inset-item {
545
+ @include clay-css(
546
+ map-deep-get($map, hover, input-group-inset-item)
547
+ );
548
+ }
485
549
  }
486
- }
487
550
 
488
- &:focus,
489
- &.focus {
490
- @include clay-css($focus);
551
+ &:focus,
552
+ &.focus {
553
+ @include clay-css($focus);
491
554
 
492
- &::placeholder {
493
- @include clay-css($focus-placeholder);
555
+ &::placeholder {
556
+ @include clay-css($focus-placeholder);
557
+ }
558
+
559
+ ~ .input-group-inset-item {
560
+ @include clay-css(
561
+ map-deep-get($map, focus, input-group-inset-item)
562
+ );
563
+ }
494
564
  }
495
- }
496
565
 
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); }`).
566
+ // @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
567
 
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;
568
+ &[readonly] {
569
+ background-color: $readonly-bg;
570
+ background-image: $readonly-bg-image;
571
+ border-color: $readonly-border-color;
572
+ box-shadow: $readonly-box-shadow;
573
+ color: $readonly-color;
574
+ cursor: $readonly-cursor;
575
+ opacity: $readonly-opacity;
507
576
 
508
- &::placeholder {
509
- color: $readonly-placeholder-color;
577
+ &::placeholder {
578
+ color: $readonly-placeholder-color;
579
+ }
510
580
  }
511
- }
512
581
 
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.
582
+ // Disabled
583
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
584
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
585
+ // don't honor that edge case; we style them as disabled anyway.
517
586
 
518
- &:disabled,
519
- &.disabled {
520
- // `opacity: 1;` iOS fix for unreadable disabled content;
521
- // see https://github.com/twbs/bootstrap/issues/11655.
587
+ &:disabled,
588
+ &.disabled {
589
+ // `opacity: 1;` iOS fix for unreadable disabled content;
590
+ // see https://github.com/twbs/bootstrap/issues/11655.
522
591
 
523
- @include clay-css($disabled);
592
+ @include clay-css($disabled);
524
593
 
525
- &::placeholder {
526
- @include clay-css($disabled-placeholder);
594
+ &::placeholder {
595
+ @include clay-css($disabled-placeholder);
596
+ }
597
+
598
+ ~ .input-group-inset-item {
599
+ @include clay-css(
600
+ map-deep-get($map, disabled, input-group-inset-item)
601
+ );
602
+ }
527
603
  }
528
604
  }
529
605
  }
@@ -532,18 +608,62 @@
532
608
  /// 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
609
  /// @param {Map} $map - A map of `key: value` pairs. The keys and value types are listed below:
534
610
  /// @example
535
- /// See Mixin `clay-css` for available keys to pass into the base selector
611
+ /// (
612
+ /// enabled: {Bool}, // Set to false to prevent mixin styles from being output. Default: true
613
+ /// // select.form-control
614
+ /// hover: (
615
+ /// // select.form-control:hover
616
+ /// option: (
617
+ /// // select.form-control:hover > option
618
+ /// checked: (
619
+ /// // select.form-control:hover > option:checked
620
+ /// ),
621
+ /// ),
622
+ /// ),
623
+ /// focus: (
624
+ /// // select.form-control:focus,
625
+ /// // select.form-control.focus
626
+ /// option: (
627
+ /// // select.form-control:focus > option,
628
+ /// // select.form-control.focus > option
629
+ /// checked: (
630
+ /// // select.form-control:focus > option:checked,
631
+ /// // select.form-control.focus > option:checked
632
+ /// ),
633
+ /// ),
634
+ /// ),
635
+ /// disabled: (
636
+ /// // select.form-control:disabled,
637
+ /// // select.form-control.disabled
638
+ /// option: (
639
+ /// // select.form-control:disabled > option,
640
+ /// // select.form-control.disabled > option
641
+ /// checked: (
642
+ /// // select.form-control:disabled > option:checked,
643
+ /// // select.form-control.disabled > option:checked
644
+ /// ),
645
+ /// ),
646
+ /// ),
647
+ /// option: (
648
+ /// // select.form-control option
649
+ /// checked: (
650
+ /// // select.form-control option:checked
651
+ /// ),
652
+ /// ),
653
+ /// firefox-only: (
654
+ /// // Same selectors as above scoped only for firefox browsers
655
+ /// ),
656
+ /// )
657
+ /// -=-=-=-=-=- Deprecated -=-=-=-=-=-
536
658
  /// hover-bg: {Color | String | Null}, // deprecated after 3.7.0
537
659
  /// hover-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
538
660
  /// hover-box-shadow: {String | List | Null}, // deprecated after 3.7.0
539
661
  /// hover-color: {Color | String | Null}, // deprecated after 3.7.0
540
- /// hover: {Map | Null}, // See Mixin `clay-css` for available keys
541
662
  /// focus-bg: {Color | String | Null}, // deprecated after 3.7.0
542
663
  /// focus-bg-image: {String | List | Null}, // deprecated after 3.7.0
543
664
  /// focus-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
544
665
  /// focus-box-shadow: {String | List | Null}, // deprecated after 3.7.0
545
666
  /// focus-color: {Color | String | Null}, // deprecated after 3.7.0
546
- /// focus: {Map | Null}, // See Mixin `clay-css` for available keys
547
667
  /// disabled-bg: {Color | String | Null}, // deprecated after 3.7.0
548
668
  /// disabled-bg-image: {String | List | Null}, // deprecated after 3.7.0
549
669
  /// disabled-border-color: {Color | String | List | Null}, // deprecated after 3.7.0
@@ -551,7 +671,6 @@
551
671
  /// disabled-color: {Color | String | Null}, // deprecated after 3.7.0
552
672
  /// disabled-cursor: {String | Null}, // deprecated after 3.7.0
553
673
  /// disabled-opacity: {Number | String | Null}, // deprecated after 3.7.0
554
- /// disabled: {Map | Null}, // See Mixin `clay-css` for available keys
555
674
  /// @todo
556
675
  /// - Add @example
557
676
  /// - Add @link to documentation
@@ -702,11 +821,27 @@
702
821
 
703
822
  &:hover {
704
823
  @include clay-css($hover);
824
+
825
+ > option {
826
+ @include clay-css(map-get($hover, option));
827
+
828
+ &:checked {
829
+ @include clay-css(map-deep-get($hover, option, checked));
830
+ }
831
+ }
705
832
  }
706
833
 
707
834
  &:focus,
708
835
  &.focus {
709
836
  @include clay-css($focus);
837
+
838
+ > option {
839
+ @include clay-css(map-get($focus, option));
840
+
841
+ &:checked {
842
+ @include clay-css(map-deep-get($focus, option, checked));
843
+ }
844
+ }
710
845
  }
711
846
 
712
847
  &:disabled,
@@ -715,11 +850,367 @@
715
850
 
716
851
  > option {
717
852
  @include clay-css($disabled-option);
853
+
854
+ &:checked {
855
+ @include clay-css(map-get($disabled-option, checked));
856
+ }
718
857
  }
719
858
  }
720
859
 
721
860
  option {
722
861
  @include clay-css($option);
862
+
863
+ &:checked {
864
+ @include clay-css(map-get($option, checked));
865
+ }
866
+ }
867
+
868
+ @if (map-get($map, firefox-only)) {
869
+ @-moz-document url-prefix() {
870
+ @include clay-css(map-get($map, firefox-only));
871
+
872
+ &:hover {
873
+ @include clay-css(map-deep-get($map, firefox-only, hover));
874
+
875
+ > option {
876
+ @include clay-css(
877
+ map-deep-get($map, firefox-only, hover, option)
878
+ );
879
+
880
+ &:checked {
881
+ @include clay-css(
882
+ map-deep-get(
883
+ $map,
884
+ firefox-only,
885
+ hover,
886
+ option,
887
+ checked
888
+ )
889
+ );
890
+ }
891
+ }
892
+ }
893
+
894
+ &:focus,
895
+ &.focus {
896
+ @include clay-css(map-deep-get($map, firefox-only, focus));
897
+
898
+ > option {
899
+ @include clay-css(
900
+ map-deep-get($map, firefox-only, focus, option)
901
+ );
902
+
903
+ &:checked {
904
+ @include clay-css(
905
+ map-deep-get(
906
+ $map,
907
+ firefox-only,
908
+ focus,
909
+ option,
910
+ checked
911
+ )
912
+ );
913
+ }
914
+ }
915
+ }
916
+
917
+ &:disabled,
918
+ &.disabled {
919
+ @include clay-css(
920
+ map-deep-get($map, firefox-only, disabled)
921
+ );
922
+
923
+ > option {
924
+ @include clay-css(
925
+ map-deep-get($map, firefox-only, disabled, option)
926
+ );
927
+
928
+ &:checked {
929
+ @include clay-css(
930
+ map-deep-get(
931
+ $map,
932
+ firefox-only,
933
+ disabled,
934
+ option,
935
+ checked
936
+ )
937
+ );
938
+ }
939
+ }
940
+ }
941
+
942
+ option {
943
+ @include clay-css(map-deep-get($map, firefox-only, option));
944
+
945
+ &:checked {
946
+ @include clay-css(
947
+ map-deep-get($map, firefox-only, option, checked)
948
+ );
949
+ }
950
+ }
951
+ }
952
+ }
953
+ }
954
+ }
955
+
956
+ /// A mixin to create Form Validation variants (e.g., `.has-error`).
957
+ /// @param {Map} $map - A map of `key: value` pairs. The keys and value types are listed below:
958
+ /// @example
959
+ /// (
960
+ /// enabled: {Bool}, // Set to false to prevent mixin styles from being output. Default: true
961
+ /// label: (
962
+ /// // .has-error label
963
+ /// ),
964
+ /// custom-control-label: (
965
+ /// // .has-error .custom-control-label, .has-error .form-check-label
966
+ /// ),
967
+ /// form-control: (
968
+ /// // .has-error .form-control
969
+ /// readonly: (
970
+ /// // .has-error .form-control[readonly]
971
+ /// ),
972
+ /// ),
973
+ /// form-feedback-group: (
974
+ /// // .has-error .form-feedback-group
975
+ /// ),
976
+ /// form-feedback-item: (
977
+ /// // .has-error .form-feedback-item
978
+ /// ),
979
+ /// form-feedback-indicator: (
980
+ /// // .has-error .form-feedback-indicator
981
+ /// ),
982
+ /// form-feedback-text: (
983
+ /// // .has-error .form-feedback-text
984
+ /// ),
985
+ /// select: (
986
+ /// // N/A
987
+ /// form-control: (
988
+ /// // .has-error select.form-control
989
+ /// multiple: (
990
+ /// // .has-error select.form-control[multiple]
991
+ /// ),
992
+ /// size: (
993
+ /// // .has-error select.form-control[size]
994
+ /// ),
995
+ /// ),
996
+ /// ),
997
+ /// input-group-item: (
998
+ /// // .has-error .input-group-item
999
+ /// hover: (
1000
+ /// // .has-error .input-group-item:hover
1001
+ /// input-group-inset: (
1002
+ /// // .has-error .input-group-item:hover .input-group-inset
1003
+ /// input-group-inset-item: (
1004
+ /// // .has-error .input-group-item:hover .input-group-inset ~ .input-group-inset-item
1005
+ /// ),
1006
+ /// ),
1007
+ /// ),
1008
+ /// focus: (
1009
+ /// // .has-error .input-group-item.focus
1010
+ /// input-group-inset: (
1011
+ /// // .has-error .input-group-item.focus .input-group-inset
1012
+ /// input-group-inset-item: (
1013
+ /// // .has-error .input-group-item.focus .input-group-inset ~ .input-group-inset-item
1014
+ /// ),
1015
+ /// ),
1016
+ /// ),
1017
+ /// input-group-inset: (
1018
+ /// // .has-error .input-group-inset
1019
+ /// input-group-inset-item: (
1020
+ /// // .has-error .input-group-inset ~ .input-group-inset-item
1021
+ /// ),
1022
+ /// hover: (
1023
+ /// // .has-error .input-group-inset:hover
1024
+ /// input-group-inset-item: (
1025
+ /// // .has-error .input-group-inset:hover ~ .input-group-inset-item
1026
+ /// ),
1027
+ /// ),
1028
+ /// focus: (
1029
+ /// // .has-error .input-group-inset:focus
1030
+ /// input-group-inset-item: (
1031
+ /// // .has-error .input-group-inset:focus ~ .input-group-inset-item
1032
+ /// ),
1033
+ /// ),
1034
+ /// ),
1035
+ /// ),
1036
+ /// )
1037
+
1038
+ @mixin clay-form-validation-variant($map) {
1039
+ $enabled: setter(map-get($map, enabled), true);
1040
+
1041
+ @if ($enabled) {
1042
+ @include clay-css($map);
1043
+
1044
+ label {
1045
+ @include clay-css(map-get($map, label));
1046
+ }
1047
+
1048
+ .custom-control-label,
1049
+ .form-check-label {
1050
+ @include clay-css(map-get($map, custom-control-label));
1051
+ }
1052
+
1053
+ .form-control {
1054
+ @include clay-form-control-variant(map-get($map, form-control));
1055
+ }
1056
+
1057
+ .form-control[readonly] {
1058
+ @include clay-form-control-variant(
1059
+ map-deep-get($map, form-control, readonly)
1060
+ );
1061
+ }
1062
+
1063
+ .form-feedback-group {
1064
+ @include clay-css(map-get($map, form-feedback-group));
1065
+ }
1066
+
1067
+ .form-feedback-item {
1068
+ @include clay-css(map-get($map, form-feedback-item));
1069
+ }
1070
+
1071
+ .form-feedback-indicator {
1072
+ @include clay-css(map-get($map, form-feedback-indicator));
1073
+ }
1074
+
1075
+ .form-feedback-text {
1076
+ @include clay-css(map-get($map, form-feedback-text));
1077
+ }
1078
+
1079
+ select.form-control {
1080
+ @include clay-select-variant(
1081
+ map-deep-get($map, select, form-control)
1082
+ );
1083
+
1084
+ &[size] {
1085
+ @include clay-select-variant(
1086
+ map-deep-get($map, select, form-control, size)
1087
+ );
1088
+ }
1089
+
1090
+ &[multiple] {
1091
+ @include clay-select-variant(
1092
+ map-deep-get($map, select, form-control, multiple)
1093
+ );
1094
+ }
1095
+ }
1096
+
1097
+ .input-group-item {
1098
+ @include clay-css(map-get($map, input-group-item));
1099
+
1100
+ &:hover {
1101
+ .input-group-inset {
1102
+ @include clay-css(
1103
+ map-deep-get(
1104
+ $map,
1105
+ input-group-item,
1106
+ hover,
1107
+ input-group-inset
1108
+ )
1109
+ );
1110
+
1111
+ ~ .input-group-inset-item {
1112
+ @include clay-css(
1113
+ map-deep-get(
1114
+ $map,
1115
+ input-group-item,
1116
+ hover,
1117
+ input-group-inset,
1118
+ input-group-inset-item
1119
+ )
1120
+ );
1121
+ }
1122
+ }
1123
+ }
1124
+
1125
+ &.focus {
1126
+ @include clay-css(map-deep-get($map, input-group-item, focus));
1127
+
1128
+ .input-group-inset {
1129
+ @include clay-css(
1130
+ map-deep-get(
1131
+ $map,
1132
+ input-group-item,
1133
+ focus,
1134
+ input-group-inset
1135
+ )
1136
+ );
1137
+
1138
+ ~ .input-group-inset-item {
1139
+ @include clay-css(
1140
+ map-deep-get(
1141
+ $map,
1142
+ input-group-item,
1143
+ focus,
1144
+ input-group-inset,
1145
+ input-group-inset-item
1146
+ )
1147
+ );
1148
+ }
1149
+ }
1150
+ }
1151
+
1152
+ .input-group-inset {
1153
+ @include clay-css(
1154
+ map-deep-get($map, input-group-item, input-group-inset)
1155
+ );
1156
+
1157
+ ~ .input-group-inset-item {
1158
+ @include clay-css(
1159
+ map-deep-get(
1160
+ $map,
1161
+ input-group-item,
1162
+ input-group-inset,
1163
+ input-group-inset-item
1164
+ )
1165
+ );
1166
+ }
1167
+
1168
+ &:hover {
1169
+ @include clay-css(
1170
+ map-deep-get(
1171
+ $map,
1172
+ input-group-item,
1173
+ input-group-inset,
1174
+ hover
1175
+ )
1176
+ );
1177
+
1178
+ ~ .input-group-inset-item {
1179
+ @include clay-css(
1180
+ map-deep-get(
1181
+ $map,
1182
+ input-group-item,
1183
+ input-group-inset,
1184
+ hover,
1185
+ input-group-inset-item
1186
+ )
1187
+ );
1188
+ }
1189
+ }
1190
+
1191
+ &:focus {
1192
+ @include clay-css(
1193
+ map-deep-get(
1194
+ $map,
1195
+ input-group-item,
1196
+ input-group-inset,
1197
+ focus
1198
+ )
1199
+ );
1200
+
1201
+ ~ .input-group-inset-item {
1202
+ @include clay-css(
1203
+ map-deep-get(
1204
+ $map,
1205
+ input-group-item,
1206
+ input-group-inset,
1207
+ focus,
1208
+ input-group-inset-item
1209
+ )
1210
+ );
1211
+ }
1212
+ }
1213
+ }
723
1214
  }
724
1215
  }
725
1216
  }